Portál AbcLinuxu, 11. května 2025 04:33

Dotaz: IPTABLES - router / nejde outbound provoz

11.1.2013 14:37 Lukas
IPTABLES - router / nejde outbound provoz
Přečteno: 362×
Odpovědět | Admin
Dobrý den,

prosím o radu s IPTABLES. Mám následující sadu pravidel:
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to 10.0.10.10
iptables -A FORWARD -p tcp -d 10.0.10.10 -j ACCEPT
která mi příchozí provoz na portu 22 routeru natuje na 10.0.10.10. To funguje.

Když ale potřebuju z 10.0.10.10 připojit se ven (např. apt-get update) tak mi to hlásí, že cannot fetch... Přitom ale třeba ping seznam.cz mi jde bez problémů.

Nevíte, jak nastavit IPTABLES, aby mi fungovat i outbound provoz, popř. co jiného nastavit? IP forwarding na routeru zapnutý mám.

Díky...
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

H0ax avatar 11.1.2013 14:49 H0ax | skóre: 36 | blog: Odnikud_nikam
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Odpovědět | | Sbalit | Link | Blokovat | Admin
tohle asi nebude celej firewall, že? je potřeba to vidět celý
uid=0(root) gid=0(root) skupiny=0(root)
11.1.2013 15:28 NN
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pravdepodobne to budes potrebovat natovat is smerem ven..
11.1.2013 20:33 Lukas
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Tohle je můj iptables.

Jinak metodou pokus-omyl jsem přišel na to, že když zruším to natování portu 80, tak mi jde i provoz ven, tzn. apt-get update začne fungovat. Jak bych to měl pořešit, aby to šlo i bez toho rušení pravidla pro port 80?

Moc díky za rady...
*mangle
:PREROUTING ACCEPT [2609:962748]
:INPUT ACCEPT [1005:199941]
:FORWARD ACCEPT [1604:762807]
:OUTPUT ACCEPT [984:162785]
:POSTROUTING ACCEPT [2527:917800]
COMMIT
*filter
:INPUT ACCEPT [737:177725]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [923:154993]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state NEW -j ACCEPT
-A FORWARD -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth0 -j ACCEPT
-A FORWARD -d 10.0.10.10/32 -p tcp -j ACCEPT
-A FORWARD -d 10.0.10.11/32 -p tcp -j ACCEPT
-A FORWARD -d 10.0.10.12/32 -p tcp -j ACCEPT
-A FORWARD -d 10.0.10.13/32 -p tcp -j ACCEPT
-A FORWARD -d 10.0.10.14/32 -p tcp -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [4:288]
:INPUT ACCEPT [1:89]
:OUTPUT ACCEPT [7:543]
:POSTROUTING ACCEPT [1:62]
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.10.10:80
-A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.0.10.11.6:80
-A POSTROUTING -o eth0 -j MASQUERADE
11.1.2013 22:14 NN
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Aha, to vypada, ze se ten NAT aplikuje pred maskaradou i na odchozi provoz, zkus do pravidla pridat jako zdrojove venkovni rozhrani eth0 tedy takto:
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.10.10:80
12.1.2013 09:28 Lukas
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Diky,

a neslo by to nejak nahradit spise aby se natovaly jen prichozi pakety v vnejsi IP adresy? S tim rozhranim to bude trosicku problem, protoze to mam trosicku zamotane a na eth0 je vsechno.
MMMMMMMMM avatar 12.1.2013 09:38 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
to by mne zajímalo, jak vypadá tvá topologie sítě :)
12.1.2013 10:08 Lukas
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Divně. Je to jedna z VM, která je na hostovi a má jen eth0. Slouží mi jako router jen pro ostatní VM. Jinak mi pomohla změna pravidla u portu 80 na:
-A PREROUTING -p tcp -m tcp --dport 80 ! -s 10.0.0.0/16 -j DNAT --to-destination 10.0.100.10:80
11.1.2013 22:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Celá ta konfigurace je tak nějak divná, ale bez znalosti toho, které rozhraní vlastně kam vede a jak jsou nastavené adresy, těžko odhadovat, co konkrétně je špatně a jak by to mělo být správně. V každém případě jsou hodně podezřelá ta DNAT/FORWARD pravidla, u kterých ani neřešíte, odkud kam ten paket vlastně jde, a FORWARD pravidla s "-i eth0 -o eth0". Ne že by principiálně nešlo routovat paket na rozhraní, odkud přišel, ale je při tom potřeba být hodně opatrný a u firewallu bych se do toho už vůbec nepouštěl.
pavlix avatar 12.1.2013 16:30 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
PREROUTING pravidla máš špatně. Téměř nikdy nemá smysl PREROUTING pravidlo filtrovat pouze podle portu. Rozbije ti to veškerý směrovaný provoz na daný port, bez ohledu na to, kam ten port skutečně vede.

Internetovou službu musíš identifikovat IP adresou a portem.
-t nat -A PREROUTING -d cílová-adresa -p transportní-protokol --dport cílový-port -j DNAT ...
Bohužel i další pravidla v tvém firewallu vypadají dost nesmyslně, takže by zřejmě bylo potřeba nastudovat, jak to skutečně funguje.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
pavlix avatar 12.1.2013 16:32 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Nezkoumal jsem úplně účel těch pravidel, takže možná ti radím špatně, ale bez dalších informací to lépe nepůjde.

Každopádně u každého pravidla musíš specifikovat, čeho přesně se má týkat. Když to dostatečně nespecifikuješ, tak se pak nesmíš divit, že zabíjíš legitimní traffic.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
12.1.2013 21:54 Lukas
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
Dík určitě by mi pomohlo si k tomu něco nastudovat. Že lamím, s tím souhlasím. Je k tomu nějaká dobrá literatura? Z manuálu k iptables moc moudrý nejsem...
12.1.2013 22:51 li737 | skóre: 6
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
tady je 1. část pěkného článku, má 4 díly.
pavlix avatar 13.1.2013 13:27 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: IPTABLES - router / nejde outbound provoz
No nevím, já používám manuál a zbytek už mám tak nějak rozmyšlený nebo mám už v hlavě takový ten velký graf (google: netfilter diagram).

Takže třeba řetěz PREROUTING pracuje s pakety, které přišli zvenčí hned na začátku zpracovávání, když ještě ani není rozhodnuto, zda jsou určeny pro daný stroj (INPUT) či nikoliv (FORWARD).

Tudíž pokud do PREROUTING hodím pravidlo, které chytá TCP pakety s cílovým portem 80, tak můžu chytit obrovskou spoustu věcí. Spíš je to o tom, pořádně pochopit, co po tom člověk vlastně chce a zda to jde specifikovat pomocí zdrojových a cílových interface, případně zdrojových a cílových adres, apod.

Jinak odkazovaný článek vypadá dobře.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.