Portál AbcLinuxu, 10. května 2025 02:00

Dotaz: Přesměrování s iptables ze vnitřní na vnitřní síť

vasek125 avatar 18.4.2006 20:07 vasek125 | skóre: 30 | Mladá Boleslav
Přesměrování s iptables ze vnitřní na vnitřní síť
Přečteno: 276×
Odpovědět | Admin
Toto téma bylo námětem spousty diskusí, avšak nikdy jsem se nedozvěděl kloudnou odpověď, táži se tedy: Chci udělat následující, mám 1 veřejnou IP adresu na serveru a za serverem je domácí síť, udělal jsem si přesměrování:
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 32317 -j DNAT --to-destination 192.168.1.45:32317
- toto přesměrování funguje ale pouze tehdy, pokud se někdo připojí zvenku, jakmile se připojím z vnitřní sítě nefunguje. Jak se to dá upravit, implementovat aby to fungovalo i takhle? Doufám že se to vůbec dá nějak upravit. A ještě jedna věc by mě zajímala- dá se přesměrovat určitý rozsah portů např. 80-14144? Nebo si na to musím vytvořit skript a přesměrovávat port po portu?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.4.2006 20:20 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
To by mohlo být způsobeno tím -i eth0.
vasek125 avatar 18.4.2006 20:34 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Tím to není zkoušel jsem všechno možný -i eth1 nebo to tam vůbec nedávat a nic..
18.4.2006 20:30 hm
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
více portů v jednom pravidle -- man iptables a hledat "mport" a "multiport"
vasek125 avatar 18.4.2006 20:40 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
O tom vím, to jsou jen jednotlivé porty oddělují se čárkami.. Já potřebuju něco jako 1250-46462
18.4.2006 20:52 papundekl
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Pokud si dobre vzpominam je to --dport N:M
18.4.2006 21:00 vladimir
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
no tak si jeste precti o tom multiportu
18.4.2006 20:52 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus na připojení z lokální sítě aplikovat ještě SNAT. Asi takhle ;-)

Pokud tomu dobře rozumím, tak 192.168.1.45 odpovídá počítačům v lokální síti rovnou, ne přes router, a ty pak nevědí co s tím. (Protože DNAT mění jen cílovou adresu.) To vyřeší ten SNAT.
vasek125 avatar 18.4.2006 21:23 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já potřebuju konkrétně toto:

Server:
eth0 xx.xx.xx.xx
eth1 192.168.1.1
přesměrování http portu 80 na počítač a to jak zvenku z internetu, tak z vnitřní sítě

Počítač(zároveň klient)-IP je 192.168.1.45:
běží zde http server na portu 80

-nějak mi to SNAT nechce fungovat. Pro DNAT mám zatím toto(funguje ale jen z internetu):
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.45:80
18.4.2006 21:25 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to popsáno ve FAQ (poslední odstavec).
vasek125 avatar 18.4.2006 21:57 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
No jo něco tam popsáno je, ale pravidlo, které by to podporovalo, jak již někdo uvedl SNAT tam žádný příklad není.
18.4.2006 22:30 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
To už byste měl zvládnout sám. Pokud ne, nepouštějte se do toho, dokud ho nebudete schopen dát dohromady.
vasek125 avatar 18.4.2006 22:47 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
No já to už zkoušel, zkoušel jsem už haldy kombinací a nic. Podle mne jde o to vhodně provázat DNAT a SNAT, ale jak, to už nevim.
18.4.2006 23:32 papundekl
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Zvlastni, ze chcete radu ale uvadite jen, co vam funguje. Zkuste se zamyslet, zda by nebylo lepsi sem dat neco, co vam nefunguje. Treba se najde nekdo, kdo vas opravi.
vasek125 avatar 18.4.2006 23:36 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
No ehm, ono ani nevim co tam dát aby to fungovalo, zkusil jsem i toto ale bez úspěchu:
iptables -t nat -A PREROUTING -d xx.xx.xx.xx -p tcp --dport 5800 -j DNAT --to 192.168.1.5
iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 -p tcp --dport 5800 -j SNAT --to 192.168.1.5
vasek125 avatar 18.4.2006 23:38 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Možná to bude chtít trochu upravit, protože mám před tím maškarádu.
19.4.2006 00:41 papundekl
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Pane, jestli nejste zenska od 5 deti, tak to je tragedie. Chcete si pokecat nebo neco vyresit ? Jestli tam mate PREDTIM maskaradu, tak -s 192.168.n.m je asi dost na nic, ne ? Jak jste mohl dat SNAT na 192.168.1.5 ? Vite vubec, ceho vlastne chcete docilit ? Nic ve zlym, jen nevidim vasi snahu.
19.4.2006 00:06 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
U SNATu zkuste prohodit adresy pro -d a --to.
iptables -t nat -A PREROUTING -d xx.xx.xx.xx -p tcp --dport 5800 -j DNAT --to 192.168.1.5
iptables -t nat -A POSTROUTING -d 192.168.1.5 -s 192.168.1.0/24 -p tcp --dport 5800 -j SNAT --to 192.168.1.1
Snad jsem se nespletl – nemám doma tolik volných strojů, abych to mohl vyzkoušet :-)
vasek125 avatar 19.4.2006 00:21 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
nefunguje
19.4.2006 08:28 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přesměrování z vnitřní sítě takhle fungovat nebude, protože pakety z vnitřní sítě se zNATují na routeru, tam se přepošlou na server 192.168.1.45. Ten ale podle IP adresy odesílatele zjistí, že odesílatel je ve stejné síti (192.168.1.x) a paket zpět pošle přímo, se zdrojovou adresou 192.168.1.45. Klient, který navazoval spojení, ale žádný takový paket neočekává, tak ho zahodí. Problém je tedy v tom, že pakety "tam" jdou přes router, kde se upravují, pakety "zpět" jdou přímo.

Jak to řešit: teoreticky možná jde kombinovat SNAT a DNAT, to jsem nikdy nezkoušel, a připadá mi to jako zbytečně složité a zatěžující jak síť tak router (navíc mi pořád něco říká, že SNAT a DNAT zkombinovat nejde…)

Druhé řešení je vytvořit ještě jednu virtuální podsíť, IP adresu z ní přiřadit jako alias pro 192.168.1.45 a na routeru přesměrovávat na tuto IP adresu. Server už nebude moci odpovídat přímo, protože v této virtuální podsíti klient nebude, a bude tedy nucen odpovídat přes router.

Nejlepší řešení je mít dvojitou DNS - jinou pro vnější síť a jinou pro vnitřní. Požadované domain name se pak ve vnitřní síti přeloží přímo na 192.168.1.45, klient se serverem komunikuje přímo a není potřeba vyvádět žádné kejkle. Já sám používám takové řešení, že na veřejné IP adrese serveru běží veřejná DNS, na jedné privátní adrese serveru běží dns cache, která požadavky na mou domény neresolvuje podle root serverů, ale přeposílá je na druhou privátní IP adresu, kde běží další DNS server, který překládá pouze lokální adresy pro lokální síť. djbdns umí i odpovídat různě podle zdrojové adresy (tj. běží jen jeden server, který pro dotazy z internetu odpovídá nějak a pro dotazy z vnitřní sítě jinak).

Varianta místo dvojité DNS je vytvořit si vlastní "root" a používat třeba www.firma a to na DNS serveru směrovat na 192.168.1.45. Nemusíte pak překládat různě tu samou adresu, ale zase nutíte lidi ve vnitřní síti používat jiný název.
19.4.2006 09:19 macrek | skóre: 12
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyskusaj toto, malo by to fungovat, ale nie som neomylny :) -->

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to TVOJA_VEREJNA_IP
iptables -t nat -A PREROUTING -s ! 192.168.1.45 -d TVOJA_VEREJNA_IP -p tcp --dport 80 -j DNAT --to 192.168.1.45:80
iptables -t nat -A PREROUTING -s ! 192.168.1.45 -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to 192.168.1.45:80
An eye for an eye makes the whole world blind.
19.4.2006 09:19 macrek | skóre: 12
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
btw. zabudol som tam este dopisat, ten prvy riadok (SNAT) by si tam uz mal mat.
An eye for an eye makes the whole world blind.
vasek125 avatar 19.4.2006 15:11 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování s iptables ze vnitřní na vnitřní síť
funguje, dík

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.