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

Dotaz: Přesměrování portů

vasek125 avatar 13.6.2007 19:11 vasek125 | skóre: 30 | Mladá Boleslav
Přesměrování portů
Přečteno: 1940×
Odpovědět | Admin
Ahoj, můj současný stav je takový, že přesměrovávám některé porty routeru na adresy vnitřní sítě a pokud je příchozí paket z vnitřní sítě, přepíše je jeho zdrojová adresa na veřejnou adresu serveru. To má ale několik zásadních překážek, takže to musím zrušit. Cíl je takový:

internet - router - vnitřní síť
_________________________________________
port 80  > ------ > 192.168.0.5
_________________________________________
port 443 > ------ > 192.168.0.5
_________________________________________
            -----< port 80 z 192.168.0.59
            |----> 192.168.0.5                    // tohle je nyní řešeno přes snat
Jak jinak tohle vyřešit bez použití snat? Pro pakety pocházející z internetu je to jasný, tam mám funkční dnat.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.6.2007 19:52 Opičák | skóre: 18 | blog: Opicakovy_blaboly
Rozbalit Rozbalit vše Re: Přesměrování portů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím jak jsi to přesně myslel, ale snad to trefím:
iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d 192.168.0.59 --dport 80 -j DNAT --to-destination 192.168.0.5
vasek125 avatar 13.6.2007 20:14 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování portů
Jde mi o to, že když se chci dostat na port 80 routeru ze vnitřní sítě, chci aby se ten port přesměroval na nějakou ip adresu z té samé sítě, což je problém, protože to jede pouze přes 1 rozhraní.
14.6.2007 17:26 Opičák | skóre: 18 | blog: Opicakovy_blaboly
Rozbalit Rozbalit vše Re: Přesměrování portů
co použít DNS?
vasek125 avatar 14.6.2007 18:02 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování portů
DNSku mám nastavenou takže všechno jede, ale občas se v síti najde nějaký přeborník s very old pc, kterej se připojuje na ip adresu routeru a nepoužíva dns. Ovšem i takovýmto přeborníkům by to mělo fungovat...
14.6.2007 18:19 Opičák | skóre: 18 | blog: Opicakovy_blaboly
Rozbalit Rozbalit vše Re: Přesměrování portů
nechápu...i very old pc používá DNS. Můžeš mi to víc vysvětlit?
vasek125 avatar 14.6.2007 18:43 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování portů
To sice jo, ale lidé sedící u těch very old pc většinou píší třeba do prohlížeče http://ip_adresa a v tom je ten problém. A dál někdo kdo si nastaví jiný dns server.. prostě potřeba by ten port forwarding byl, ale povinností to snad není, ale rád bych to tam měl.
14.6.2007 20:41 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Přesměrování portů
Problém není v tom, že jde o jedno rozhraní, ale v tom, že jde o jednu IP síť. Zařaďte klienty do jedné sítě (např. 192.168.1.0/24) a servery do jiné (192.168.2.0/54). Tím docílíte toho, že komunikace mezi těmi dvěma sítěmi půjde vždy přes router, který se tak dostane k NATování.
vasek125 avatar 14.6.2007 22:30 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování portů
Ale i takhle ta komunikace dojde na router. Přece když je router třeba 192.168.1.1 a zadám adresu http://192.168.1.1, tak ty pakety přece vždy směřují na router. A nebo se mi tady snažíte říct, že pakety jdoucí na 192.168.1.1:80 jsou přesměrovány na nějakou ip(třeba 192.168.1.2) a ta ip se snaží odpovídat přímo klientovi, nikoliv přes router?
vasek125 avatar 14.6.2007 22:34 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování portů
Teď mě napadlo, nedají se ty pakety nějak omarkovat, aby věděl 192.168.1.2, že je má poslat zpět na router?
vasek125 avatar 14.6.2007 23:55 vasek125 | skóre: 30 | Mladá Boleslav
Rozbalit Rozbalit vše Re: Přesměrování portů
To už je vlastně jedno jestli na to použiju snat. Tak jsem to pořešil tak, že jsem trochu zúžil pravidlo pro snat(port..) a dal mu jinou zdrojovou adresu.
15.6.2007 08:07 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Přesměrování portů
Ale i takhle ta komunikace dojde na router. Přece když je router třeba 192.168.1.1 a zadám adresu http://192.168.1.1, tak ty pakety přece vždy směřují na router.
Popsal jsem to trochu obecněji, protože se mi nechtělo studovat podrobně vaše schéma sítě (vždycky mi tahle ASCII schémata sítě přijdou nesrozumitelná).
A nebo se mi tady snažíte říct, že pakety jdoucí na 192.168.1.1:80 jsou přesměrovány na nějakou ip(třeba 192.168.1.2) a ta ip se snaží odpovídat přímo klientovi, nikoliv přes router?
Ano, to se přesně snažím říci :-) Server musí být v jiné síti právě proto, aby neodpovídal "rovnou", ale aby odpověď poslal zpět na router, který tak může udělat NAT a klient dostane paket, odkud ho očekával. Jinak klient začne navazovat spojení s 192.168.1.1 a odpoví mu 192.168.1.2 – to si rozhodně nespojí dohromady, že je to jedno spojení.

Značkování paketů z routeru na server by nepomohlo, "zabloudí" pakety ze serveru zpět ke klientovi. Pokud nechcete mít server v oddělené IP síti, budete muset buď na serveru veškeré odchozí pakety z portu 80 DNATovat, aby směřovaly na router, nebo na routeru dělat SNAT i DNAT současně (pokud to vůbec jde).
13.9.2007 13:23 Sansom
Rozbalit Rozbalit vše Re: Přesměrování portů
Omlouvam se, jsem zacatecnik - ale nemelo by uz to puvodni pravidlo dnatovat ty packety a tudiz vnitrni server by mel odpovidat routeru? Nebo v cem je problem a jake je reseni?
Potrebuju udelat presne tohle - presmerovat port do vnitni site nezavisle na tom, jestli packet jde z vnitni nebo vnejsi site - jde mi o IM clienta (jabber), ktery by mel nastaveny jen jeden server a to vnejsi IP a musi fungovat jak uvnitr tak venku.
13.9.2007 15:04 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Přesměrování portů
No můžete to udělat normálně tak, že se jako jabber server nastaví vnější adresa routeru, a pak půjde komunikace v každém případě přes ten router -- bez ohledu na to, jestli je zdroj venku nebo ve vnitřní síti. Kolega co kladl dotaz ale zmínil, že "To má ale několik zásadních překážek, takže to musím zrušit." Nevím, o jaké překážky se jedná, takže fungovat to bude, ale asi to má i nějaké nevýhody.
13.9.2007 15:15 Sansom
Rozbalit Rozbalit vše Re: Přesměrování portů
No mne to prave nefunguje
	$IPTABLES -t nat -A PREROUTING -p tcp -i eth2 --dport 5222 -d $INET_IP1 -j DNAT --to $SVR2:5222
	$IPTABLES -A FORWARD -p tcp -i eth2 --dport 5222 -d $SVR2 -j ACCEPT

kde eth2 je sitovka do vnitni site, kde je i jabber server $SVR2. Kdyz se pokusim z vnitni site prihlasit na $INET_IP (venkovni adresa), tak mam smulu, nepovede se to.
13.9.2007 15:36 Sansom
Rozbalit Rozbalit vše Re: Přesměrování portů
Asi uz tomu rozumim...ja snad fakt budu muset delat i ten SNAT...jinak ten jabber server odpovida primo.
13.9.2007 16:01 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Přesměrování portů
Právě.
13.9.2007 16:00 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Přesměrování portů
DNAT nemění zdrojovou adresu -- bude to chtít ještě POSTROUTING a SNAT, aby se změnila zdrojová adresa paketu (takhle by vám to jabber server vracel přímo (ne přes router), což by jabber klient nečekal a nepoznal, že to je odpověď). Koukněte třeba na článek na owebu A tam sekci s titulkem "Přesměrování adresy" od věty Co kdyby chtěly k našemu počítači s veřejnou IP adresou přistupovat i ostatní počítače ve vnitřní síti?. Asi by se dal najít i lepší zdroj, tohle bylo první na co jsem teď natrefil.

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.