Mám ve firewallu přesměrování na trans. proxy:
$ipt -t nat -A tproxy -p tcp -o ! lo -j DNAT --to-destination 127.0.0.1:8080
a přestože třeba wget (na lokálním stroji) bindnu na 192.168.0.1, tak proxy dostane informaci, že druhá strana se připojuje ze 127.0.0.1, tzn. se přepíše i source paketu. Je to bug nebo featura?
Jenom bych chtel poznamenat, ze je mozne provadet snat i na adresu, kterou router (ktery SNAT provadi) nevlastni, pouze pres nej pakety na toto ip prochazi pri ceste zpet. Takze muzu napr SNATovat na ip pocitace uvnitr site. Sitovy provoz onoho pocitace tim samozrejme nijak nenarusime.
Script je super, akurat, ze je len tazko aplikovatelny na dial-up pripojenie. Pri nom totiz svoju IP adresu dopredu neviem. Viem len, ze to bude cosi tvaru napr. 195.80.179.0/24. Lenze prikaz
iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to 195.80.179.0/24
vyhodi chybu
iptables v1.2.1: Bad IP address `195.80.179.0/24'
Viem pouzit MASQUERADE stylom
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
alebo parsovat /sbin/ifconfig po pripojeni a zavolani iptables so spravnymi parametrami pre SNAT, ale ani jedno z tychto rieseni sa mi moc nepaci. Da sa s tym neico robit?
Parametr --to u SNAT ma jiny vyznam. Je zde mozne napsat rozsah ip, ale ne ip/maska, ale pres pomlcku ip-ip. Pri provadeni SNATu bude kernel pouzivat vsechna ip z tohoto rozsahu. Pokud to je mozne, necha jedne stanici stejne NAT ip, napr.:
NATujeme 192.168.1.0/24 na 1.1.1.1-1.1.1.10
pri prvnim spojeni ze stanice s ip 192.168.1.18 bude vybrano jedno z SNAT ip, treba 1.1.1.5 (kruhovym algoritmem)
pri druhem a dalsim spojeni z 192.168.1.18 se bude kernel snazit zachovat SNAT ip 1.1.1.5
Takze ve vasem pripade SNAT nepripada v uvahu, kernel by pouzil vsechna zadana IP, nikoliv to, ktere byste dostal od ISP. Rozsah je ale potreba zadat jako 195.80.179.1-195.80.179.254 (0 je sit, 255 broadcast).
Hm vdaka za radu, ale
iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to 195.80.179.1-195.80.179.254
nefungoval. Neviem preco, vyzeralo to akoby sa nevedelo, ktoru IP adresu z toho rozsahu pouzit. Po zadani prikazu s presnou IP adresou uz vsetko fungovalo bez problemov:
iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to 195.80.179.184
iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to 195.80.179.1-195.80.179.254
Tohle se pouziva tehdy, kdyz mate k dispozici rozsah statickych adres a chete, aby router maskaradoval pres vicero adres a ne jen pres jednu (napriklad kvuli load-balacingu, apod.)
Spravne reseni, je jak jiz radil kolega pouziti -j MASQUERADE.
Pokud mate dunmickou adresu, tak se ujistete, ze mate nastavenou promennou /proc/sys/net/ipv4/ip_dynaddr na 1
Ano presne tak to mam aj ja a funguje mi to. Pokial ma vsak pamat neklame, v clanku (alebo v diskusii) sa polemizovalo o tom, ze SNAT a MASQUERADE nie je to iste. MASQUERADE "posuva" odchadzajuci (source) port niekam nad 53000 a SNAT sa ho snazi zachovat. Preto by som radsej pouzival SNAT.
Kazdopadne uz s tym nemam problem. Vdaka za rady a napady a autorovi za poucny clanok.
Caute Nie je tu nahodou chyba?
iptables -A FORWARD -i eth0 -o eth1 -m state –state ESTABLISHED,RELATED -k ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
z WAN na LAN iba ESTABLISED a RELATED …to je ok
v prvom -j a druhe previdlo malo byt asi LAN na WAN vsetko
iptables -A FORWARD -i eth0 -o eth1 -m state –state ESTABLISHED,RELATED
-j ACCEPT
iptables -A FORWARD -i eth1 -o eth0
-j ACCEPT