Znovu připomínám, že ukázkovou aplikaci příkladů ze článků naleznete tady:
http://www.petricek.cz/mpfw/mpfw.sh.txt
Názory k článku
Stavíme firewall (2)
priklady
celé vláknoZměna source při DNAT
celé vláknoMá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?
CGI a REMOTE_ADDR
celé vláknoKdyž jsme používali WinRoute, mohl jsem přes CGI proměnnou REMOTE_ADDR číst IP klientů odesílající formuláře na náš http, nyní s ipchains a squid se všechny adresy nahradí adresou routeru. Je možné jednoduše docílit toho aby se původní adresy nenahrazovaly?
Re: CGI a REMOTE_ADDR
celé vláknosquid předává adresu klienta v HTTP_X_FORWARDED_FOR (jde to i zakázat, ale standartně je povoleno)
SNAT
celé vláknoJenom 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.
A co dial-up?
celé vláknoScript 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?
Re: A co dial-up?
celé vláknoa tohle nefunguje?
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Re: A co dial-up?
celé vláknoParametr --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).
Re: A co dial-up?
celé vláknoHm 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
Re: A co dial-up?
celé vláknoProc chcete definovat adresy pro SNAT? To pro Vas nema smysl, myslim ze je to zmineno i v clanku, to reseni se SNATem je urceno tam, kde maji k dispozici vice IP, coz Vy na modemu nemate. Proto pouzijte pravidlo s -j MASQUERADE.
Re: A co dial-up?
celé vláknoiptables -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
Re: dial-up
celé vláknoDoporucoval bych predevsim IP-Masquerade-HOWTO (odkaz v clanku). Ja man nastaveno neco jako
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
a beha to.
Re: dial-up
celé vláknoAno 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.
Re: dial-up
celé vláknoPokud skutecne touzite po SNATu, jedno z moznych reseni je nechat se od kernelu informovat o zmenach routovani (rtnetlink, nebo jednoduseji pres starsi jednoucelovy /dev/route), nebo vyuzit ifup a ifdown skripty pppd.
Re: dial-up
celé vláknoa co proste po nahozeni ppp rozhrani pomoci grep ziskat adresu pro SNATovaci pravidlo primo z vystupu ifconfigu a pozadovane pravidlo(a) pridat do iptables?
SNAT verejne ip do lok. site
celé vláknoiptables -t nat -A POSTROUTING -o eth0 -j SNAT -d 192.168.0.1 --to 1.2.3.4
??? napr. kdyz mam na jednom PC v siti za routerem verejnou ip.
chybicky
celé vláknoCaute 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

