Portál AbcLinuxu, 11. května 2025 04:29
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUARADE (šlo to i s -j SNAT --to x.x.x.x)
Potom jsem si stáhl tento hotový firewall link a upravil jsem ho takto link (zkoušel jsem ho i bez upravování) a šlo všechno kromě http ( nešly načíst žádný stránky). Nevíte co je špatně, jestli se už něco od toho roku 2004 nezměnilo (podle toho co jsem kde četl by to mělo fungovat). Případné logy dodám # Odchozi HTTP pozadavky (na port 80 s vyjimkou lokalniho serveru) # budou presmerovany na lokalniho squida (na portu 3128) ve funkci #transparentni proxy cache. $IPTABLES -t nat -A PREROUTING -p tcp -i ! $INET_IFACE -d ! $INET_IP --dport 80 -j REDIRECT --to-port 3128
Take myslim, ze bude chyba urcite tady. Co jsem zbezne mrkl na ten skript tak tam ma nastaveno policy na DROP. Tim, ze jste zakomentoval radek
$IPTABLES -t nat -A PREROUTING -p tcp -i ! $INET_IFACE -d ! $INET_IP --dport 80 -j REDIRECT --to-port 3128
doslo k tomu, ze se nekontroluji http pozadavky a okamzite jsou zahozeny. Takze opravit na ACCEPT:
$IPTABLES -t nat -A PREROUTING -p tcp -i ! $INET_IFACE -d ! $INET_IP --dport 80 -j ACCEPT
# Routing zevnitr site ven neomezujeme $IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT # Routing zvenku dovnitr pouze pro navazana spojeni (stavovy firewall) $IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPTA nevidím před těmito pravidly nic, co by pakety http DROPovalo… Navíc vámi zmíněné řádky jsou z
-t nat PREROUTING
, a ta nemá žádné policy explicitně nastavené, takže platí default ACCEPT.
$IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROPa pak na to presmerovani.
a šlo všechno kromě httpMůžeš rozvést, co přesně to "všechno" je?
$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPTse podle mne týká jenom TCP spojení, takže vám na DNS dotazy do internetu nepřijde odpověď. Zkuste přidat
$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p udp --dport 53 -j ACCEPT
Nejsem si tím jist, aleConnection tracking funguje i na UDP, v tomhle by problém být neměl.$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPTse podle mne týká jenom TCP spojení, takže vám na DNS dotazy do internetu nepřijde odpověď.
tcpdump -ni eth0 'ip proto \tcp and port 80' tcpdump -ni ppp0 'ip proto \tcp and port 80'Uvidíte, kam až pakety dorazí a kde se ztrácejí. Pokud by se vám nezobrazil průchod vůbec žádného paketu, je chyba na PC. Pokud se objeví alespoň na vstupu
eth0
, je problém s firewallem a podle toho, kde se ztrácejí poznáte, kde hledat.
telnet www.seznam.cz 80
a pripadne potom
GET / HTTP/1.0
?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.