Portál AbcLinuxu, 14. května 2025 01:42

Dotaz: Presmerovani na jinou IP adresu

15.8.2012 16:00 edoras
Presmerovani na jinou IP adresu
Přečteno: 971×
Odpovědět | Admin
Mam server Linux Fedora. Potrebuji zaridit, ze pakety, ktere na nej prijdou a budou mit zdrojovou adresu 1.2.3.4 budou presmerovany na jinou IP adresu, rekneme 5.6.7.8 . Zdalo se mi to jako jednoduchy ukol, ale asi ne ...

Zapnul jsem routovani echo 1 > /proc/sys/net/ipv4/ip_forward Vsechna pravidla v iptables mam vymazana a default policy na ACCEPT. Pridam pravidlo iptables -t nat -A PREROUTING -s 1.2.3.4 -j DNAT --to 5.6.7.8

A ono to nefunguje.

Patram, zkousim logovani. Kdyz zadam iptables -t nat -A PREROUTING -s 1.2.3.4 -j LOG, tak mi to prichozi pakety z IP 1.2.3.4 nezaloguje. Kdyz zadam pravidlo iptables -A INPUT -s 1.2.3.4 -j LOG tak mi to pakety zaloguje. Evidentne prichozi pakety jdou do INPUT aniz by predtim prosly PREROUTINGem . Coz moc nechapu, domnival jsem se, ze veskere pakety i kdyz jsou urceny primo pro dany stroj, projdou nejdriv PREROUTINGem a teprve pote jdou bud do INPUT, nebo FORWARD.

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

Odpovědi

15.8.2012 16:18 NN
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pustsi tcpdump na obe rozhrani. Pokud jsou pakety urcene pro jiny stroj neprochazi pres input..
15.8.2012 16:53 iKoulee | skóre: 19
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
A ono to nefunguje.
Tuhle vetu by to chtelo mozna trochu rozvest, co nefunguje? Pakety se nepreposilaji, nebo nenavazete spojeni? Ve druhem pripade je treba se zamyslet nad tim, ze u odchozich paketu je "spatne" zdrojova adresa (vzdaleny stroj posle paket na IP 1.2.3.4 a odpoved prijde z 5.6.7.8 coz dovede cloveka zmast o hloupem pocitaci nemluve). Pripadne zkuste tcpdump a prilozit nejaky vypis komunikace mezi "vzdalenym", 1.2.3.4 a 5.6.7.8.
Kdyz zadam iptables -t nat -A PREROUTING -s 1.2.3.4 -j LOG, tak mi to prichozi pakety z IP 1.2.3.4 nezaloguje.
Tady bych tipnul ze problem bude v poradi pravidel, pokud je splneno nejake pravidlo s cilem ACCEPT, DROP nebo REJECT paket uz chainem dal neprochazi, tudiz nemuze byt ani zalogovan. Doporucuji vkladat logovani nejdrive, pripadne pouzit na misto "-A", "-I".
Even if you fall on your face, you’re still moving forward
16.8.2012 09:17 edoras
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
Nakonec jsem problem vyresil IPIPtunelem, nicmene neni mi stejne jasne, proc mi nesel muj puvodni zamer.

Jde o to, ze jsme pozadovali povolit pristup z nasi site k nejake internetove sluzbe z urcite IP adresy. Kolega omylem uvedl IP adresu naseho serveru v internetu namisto IP adresy naseho hranicniho routeru.
Chtel jsem to vyresit tak, ze na hranicnim routeru jsem veskerym odchozim paketum, ktere smerovaly do konkretniho cile, zmenil src-address na IP naseho serveru. Pak se pakety skutecne vracely na nas server podle ocekavani. A na nasem serveru jsem chtel prenatovat jejich dst-address na adresu naseho hranicniho routeru.
Teoreticky by to fungovat melo, ale v praxi jsem dokazal pakety na serveru zachytavat az v INPUTu - jako by se vubec neobjevily v PREROUTINGu. Stale nechapu proc, ale jak rikam, vyresil jsem to IPIP tunelem mezi hranicnim routerem a serverem, kdy provoz na konkretni IP routuju do dunelu a na serveru ho pak maskaraduju.

Diky za napady.
16.8.2012 16:35 iKoulee | skóre: 19
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
Tak jak to popisujete tak by to myslim melo fungovat, zameril bych se na provedeni, halvne poradi pravidel nic lepsiho me zatim nenapada.
Even if you fall on your face, you’re still moving forward
16.8.2012 12:40 homunkulus
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zapinate timhle routovani po kazdem restartu? (Lepsi je to jednou provzdy zapnout v /etc/sysctl.conf) V mangle opravdu nic neni? Neprichazi pakety nejakym tunelem? Verze jadra, iptables, Fedory?
16.8.2012 13:14 Sten
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to na routeru mezi tím, kdo se připojuje a kam je to přesměrováno? Není náhodou klient i cílový server ve stejné síti?
16.8.2012 15:10 ubka7617
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu

Ma server 5.6.7.8 pristup na 1.2.3.4 ci posiela spravne odpoved cez ten server.

Ak ma inu branu ako je ten server na ktorom je presmerovavana komunikacia tak treba este maskaradu.

iptables -t nat -A POSTROUTING -s 1.2.3.4 -d 5.6.7.8 -j MASQUERADE

 

cim sa zmeni zdrojova adresa paketu na ip adresu servera na ktorom je presmerovavani port a tym padom aj odpoved z 5.6.7.8 pride na ten server

16.8.2012 22:45 edoras
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zadne poradi pravidel tam neni. Tabulky IN OUT FWD PREROUTING i POSTROUTING jsou prazdne, neni tam ani maskarada. Policy je nastavene na ACCEPT.
Zarazi me fakt, ze kdyz si dam : iptables -t nat -A PREROUTING -s 1.2.3.4 -j LOG
tak to zadne pakety nezaloguje.
Kdyz dam to same do INPUT: iptables -A INPUT -s 1.2.3.4 -j LOG
tak to pakety zaloguje.

Takze pakety z IP 1.2.3.4 evidentne dorazi, kdyz je zachyti LOG v INPUTu, ale nechapu, proc je predtim nezachyti LOG v PREROUTINGu.
Jelikoz me vubec nenapada kde hledat problem, zacal jsem spekulovat, jestli se nejak jadro nebrani kdyz mu prijde paket SYN ACK aniz by predtim byl odeslan paket SYN ... ale to by se asi branil leda az by paket prolezl INPUTem a ne predtim. Proste si neumim vysvetlit, proc je paket zalogovan v INPUT a neni zalogovan v PREROUTING - jako by PREROUTINGem neprochazel.
Jinak jde o Fedoru 13, jadro kernel-PAE-2.6.34.9-69.fc13.i686
17.8.2012 09:36 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Presmerovani na jinou IP adresu
V tabulce nat se nezpracovávají pakety, které jsou terminologií connection trackingu ve stavu ESTABLISHED, takže to, že nějaké pakety vidíte ve filter.INPUT a nevidíte je v nat.PREROUTING, je naprosto v pořádku.

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.