Portál AbcLinuxu, 12. května 2025 13:18

Dotaz: IPTables forward

15.2.2016 00:07 $kill
IPTables forward
Přečteno: 623×
Odpovědět | Admin
Ahojda, snažíme se zprovoznit server který bude mít za úkol přesměrovávat packety co na něho příjdou přez privátní tunel na aplikační server kde se zpracují a poputují zase zpátky - zkrátka obvyklý firewall.

Packety přicházející na firewall by měly projít iptables a být vyslány do tunelu se zdrojovou IP klienta před firewallem - takže takový NAT. Toto se nám podařilo zprovoznit příkazem iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9999 -j DNAT --to-destination 192.168.10.2 Toto krásně fungovalo a packety chodily na x.x.10.2 opravdu se zdrojovou adresou klienta. Problém nastává když se přejde k UDP. To ty packety chodí se zdrojovou adresou 192.168.10.1 což je vcelku k prdu. Nevíte prosím někdo jak to zprovoznit i na UDP? Jinak systém je Debian 8 a tunel je jednoduchý GRE.

Řešení dotazu:


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

Odpovědi

15.2.2016 00:10 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: IPTables forward
Odpovědět | | Sbalit | Link | Blokovat | Admin
-p udp?
15.2.2016 00:12 $kill
Rozbalit Rozbalit vše Re: IPTables forward
To tam je samozřejmě taky, nechtěl jsem to tu cpát zbytečně dvakrát.
15.2.2016 00:24 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: IPTables forward
Asi ne když to neprojde.

Jiné pravidlo co to zařízne?
15.2.2016 00:29 $kill
Rozbalit Rozbalit vše Re: IPTables forward
V celým iptables je jenom toto..
root@gw1:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
root@gw1:~# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:9999 to:192.168.10.2
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9999 to:192.168.10.2

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
root@gw1:~#
Jak jsem psal, pro TCP to posila do tunelu source klienta ale pro UDP to posila source 192.168.10.1.. Nechápu.
15.2.2016 09:41 NN
Rozbalit Rozbalit vše Re: IPTables forward
Jak to vypada v tcpdump na rozhrani do tunelu?
15.2.2016 16:05 j
Rozbalit Rozbalit vše Re: IPTables forward
Tohle ti ale nemuze fungovat ....

Chybi ti tam totiz SNAT v POSTROUTING. Je treba taky ty privatni adresy v odpovedech prekladat na adresu verejnou toho routeru.
16.2.2016 13:51 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPTables forward
Od toho je to stavový překlad. Connection tracking se postará o odpovídající překlad u dalších paketů, a to včetně těch v opačném směru. Problém je to jen v případě, že odpovědi z nějakého důvodu nejdou přes ten stroj, který překládal adresy.
15.2.2016 20:48 $kill
Rozbalit Rozbalit vše Re: IPTables forward
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak se to nakonec vyřešilo samo, důvod proč to posílalo privátní IP bylo protože jsem to předtím všelijak různě zkoušel a to spojení zůstalo nějakou dobu nejspíš otevřené tímto způsobem. Po pár minutách to začlo fungovat normálně. Díky všem za odpovědi.

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.