Linux 2.4 NAT HOWTO Rusty Russell, mailing list netfilter@lists.samba.org $Revision: 487 $ $Date: 2002-01-14 10:35:13 +0100 (lun, 14 ene 2002) $ Do etiny peloil Ivo Raisr (iq_soft@home.zcu.cz) ______________________________________________________________________ Table of Contents 1. vod 2. Kde me najt oficiln WWW strnky a konferenci? 2.1 Co to je Network Address Translation? 2.2 Pro mm chtt NAT? 3. Dva druhy NAT 4. Rychl pestup z 2.0 a 2.2 jdra 4.1 Chci jen masquerading! Pomoc! 4.2 A co ipmasqadm? 5. zen provdn NAT 5.1 Jednoduch vbr s pouitm iptables 5.2 Jemnj lenn paket pro modifikaci 6. Jak modifikovat pakety 6.1 Zdrojov NAT 6.1.1 Masquerading 6.2 Clov NAT 6.2.1 Pesmrovvn 6.4 Mapovn detailn 6.4.1 Vbr rozsahu adres 6.4.2 Vytven przdnch NAT mapovn 6.4.3 Normln chovn NAT 6.4.4 Implicitn mapovn zdrojovch port 6.4.5 Co se stane kdy NAT sele 6.4.6 Vcensobn mapovn, pekrvn a kolize 6.4.7 Mnn cl lokln vytvench spojen 7. Speciln protokoly 8. Upozornn k NAT 9. SNAT a smrovn 10. DNAT na tu samou s 11. Podkovn ______________________________________________________________________ 1. vod Vtej, ven teni. Chyst se ponoit do fascinujcho (a nkdy stralivho) svta NAT: Network Address Translation a tento HOWTO je nco jako tvj nvod k jdru Linuxu 2.4 a mon i dle. V Linuxu 2.4 byla pedstavena nov infrastruktura pro zen paket, nazvan `netfilter'. NAT zprostedkovv vrstvu nad touto infrastrukturou, kompletn pepracovanou od minulch verz jdra. (C) 2000 Paul `Rusty' Russell. Licenced under the GNU GPL. (C) 2001 Ivo Raisr. esk verze. Licenced under the GNU GPL. 2. Kde me najt oficiln WWW strnky a konferenci? Existuj ti oficiln msta: o Dky Filewatcher . o Dky The Samba Team and SGI . o Dky Harald Welte . Oficiln potovn konference: Netfilter List . 2.1. Co to je Network Address Translation? Normln putuj pakety st ze zdroje (napklad z tvho potae) ke svmu cli (napklad www.gnumonks.org) mnoha rznmi uzly: piblin devatencti z mho msta v Austrlii. dn z tchto mezilehlch uzl nic nemn, jen pakety posl dle. Jestlie jeden z tchto uzl provd NAT (peklad sovch adres), pak me bt zmnn zdroj nebo cl paketu, kter tmto uzlem prochz. Urit si domysl, e toto nen zpsob, jakm by ml systm pracovat; NAT je tud nco mezi. Obvykle si uzel provdjc NAT pamatuje, jakm zpsobem zmnil paket, a zptn modifikuje ty pakety, kter prochz nazptek, take ve funguje tak, jak m. 2.2. Pro mm chtt NAT? V dokonalm svt nemus. V mezidob jsou hlavnmi dvody: Modemov pipojen k Internetu Vtina Internetovch poskytovatel ti poskytne pro pipojen jednu IP adresu. Me odeslat pakety s libovolnou zdrojovou adresou, ale budou se ti vracet jen odpovdi na pakety s touto pidlenou IP adresou. Jestlie chce pipojit vce rznch pota (domc s) k Internetu pomoc tohoto jednoho uzlu, potebuje NAT. Toto je dnes nejbnj pouit NAT, v Linuxovm svt bn nazvan `masquerading'. Nazvm jej SNAT, protoe mn zdrojovou (`source') adresu prvnho paketu. Vce server Nkdy chce zmnit, kam budou smovat pakety pichzejc do tv st. asto je to protoe (viz ve) m jedinou IP adresu, ale chce, aby se lidi zven dostali k tvm potam schovanm za tm jedinm se `skutenou' IP adresou. To lze provst, pokud bude pepisovat cl pchozch paket. Tento druh NAT byl nazvn port-forwarding v pedchozch verzch Linuxu. Bnou variantou je rozloen zaten (load-sharing), pi kterm je mapovn rozloeno na mnoinu pota. Mon pro tebe bude stt za to se podvat na Linux Virtual Server , pokud zaml provdt load-sharing ve vtm mtku. Transparentn proxy Nkdy me chtt, aby kad paket, kter prochz tvm Linuxovm potaem, byl uren pro njak program na tomto potai. Takto se dl transparentn proxy: proxy je program uprosted, kter zprostedkovv komunikaci mezi tvou st a okolnm svtem. Transparentn proto, e tv s vbec nev, e komunikuje s proxy (ovem za pedpokladu, e proxy funguje). Squid me bt takto nakonfigurovn, v pedchozch verzch Linuxu to bylo nazvno pesmrovn (redirection) nebo transparentn proxy. 3. Dva druhy NAT Rozdluji NAT na dva rzn druhy: Zdrojov NAT (SNAT) a Clov NAT (DNAT). Kdy modifikuje zdrojovou adresu prvnho paketu, pak je to Zdrojov NAT - napklad mn zdroj vysln. Zdrojov NAT je vdy provdna a po dokonen smrovn, tsn pedtm ne je paket vysln po drtech. Masquerading je speciln forma SNAT. Kdy modifikuje clovou adresu prvnho paketu, pak je to Clov NAT - napklad mn cl. Clov NAT je vdy provdna ped zapoetm smrovn, tsn po pijet paketu z drt. Port-forwarding, load-sharing a transparentn proxy jsou speciln formou DNAT. 4. Rychl pestup z 2.0 a 2.2 jdra Sorry vem, kte jsou stle jet okovni pechodem z 2.0 (ipfwadm) na 2.2 (ipchains). Jsou zde dobr a patn zprvy. Za prv, me pouvat ipchains a ipfwadm stejn jako pedtm. Abys je mohl pouvat, mus nejprve zavst moduly jdra `ipchains.o' nebo `ipfwadm.o', kter najde v posledn distribuci netfilter. Tyto moduly se vzjemn vyluuj (byl jsi varovn) a nemly by bt kombinovny s dnmi jinmi moduly netfilteru. Jakmile je jeden z tchto modul zaveden, me pouvat ipchains a ipfwadm zcela bnm zpsobem, pouze s tmito odlinostmi: o Nastaven masquerading timeout pomoc ipchains -M -S nebo ipfwadm -M -s nic nedl. Nevad to, jeliko timeouty pro novou NAT infrastrukturu jsou del. o Poloky init_seq, delta a previous_delta v ukecanm masquerading vpisu jsou vdy nulov. o Nulovn a vpis ta najednou pomoc `-Z -L' u dle nefunguje: tae nebudou vynulovny. o Zptn kompatibiln vrstva nen dobe klovateln pro velk poet spojen - nepouvej ji na exponovanm mst! Pro hackery: o Me se nyn navzat na porty 61000-65095 i kdy provd masquerading. Kd pro masquerading byl zvykl povaovat vechny porty v tomto rozmez za voln, take je programy nemohly pouvat. o Ji nefunguje (nedokumentovan) `getsockname' hack, pomoc kterho programy pouvajc transparentn proxy mohly zjistit skuten cl spojen. o Tak (nedokumentovan) hack `bind-to-foreign-address' ji nen implementovn. Ten byl pouvn k dovren iluze transparentn proxy. 4.1. Chci jen masquerading! Pomoc! To chce vtina. Jestlie m dynamicky pidlenou IP adresu PPP pipojen (pokud nev, tak jsi to ty), chce prost sdlit svmu potai, e vechny pakety pochzejc z tv vnitn st maj vypadat jako by pochzely z potae s PPP pipojenm. # Zavst NAT modul (to zavede vechny ostatn). modprobe iptable_nat # V tabulce NAT (-t nat) pipoj pravidlo (-A), e po dokonen smrovn # (POSTROUTING) m bt u vech paket odchzejc z ppp0 (-o ppp0) provdno # MASQUERADE spojen (-j MASQUERADE). iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # Zapnut IP forwardovn echo 1 > /proc/sys/net/ipv4/ip_forward Povimni si, e neprovd dn filtrovn paket: k tomu si peti Packet Filtering HOWTO: `Mixing NAT and Packet Filtering'. 4.2. A co ipmasqadm? Neobtoval jsem se tolik se zachovnm zptn kompatibility, protoe je to velmi choulostiv vc. Pro port forwarding me jednodue pout `iptables -t nat'. Tedy napklad v Linuxu 2.2 me mt: # Linux 2.2 # Smruj TCP pakety z 1.2.3.4, port 8080 na 192.168.1.1, port 80 ipmasqadm portfw -a -P tcp -L 1.2.3.4 8080 -R 192.168.1.1 80 Nyn bys ml mt: # Linux 2.4 # Pipoj pravidlo ped smrovnm (-A PREROUTING) do NAT tabulky (-t nat), e # TCP pakety (-p tcp) z 1.2.3.4 (-d 1.2.3.4) port 8080 (--dport 8080) # maj cl mapovn (-j DNAT) na 192.168.1.1, port 80 # (--to 192.168.1.1:80). iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 \ -j DNAT --to 192.168.1.1:80 5. zen provdn NAT Potebuje vytvoit pravidla pro NAT, kter eknou jdru, jak spojen a jakm zpsobem se maj zmnit. K tomu se pouv velmi vestrann nstroj iptables s pepnaem `-t nat' pro modifikaci NAT tabulky. Tabulka pravidel NAT obsahuje ti seznamy nazvan `etzy' (`chains'); pravidla jsou postupn zkoumna, dokud se nenalezne njak vyhovujcc. Dva etzy jsou nazvan PREROUTING (ped smrovnm, pro Clovou NAT) a POSTROUTING (po smrovn, pro Zdrojovou NAT). Nsledujc obrzek by to ml celkem dobe osvtlit, kdybych ml njak umleck nadn: _____ _____ / \ / \ PREROUTING -->[Smrovn ]----------------->POSTROUTING-----> \D-NAT/ | \S-NAT/ | ^ | | | | | | | | | | | | --------> lokln proces ----- Jak paket prochz, u kadho bodu (viz ve) se nejdve najde, s kterm spojenm je asociovn. Jestlie jde o nov spojen, nalezne se odpovdajc etz v NAT tabulce a zkoum se, co se dle provede. Pokud se bude nco provdt, bude to ovlivovat vechny nsledujc pakety. 5.1. Jednoduch vbr s pouitm iptables iptables m velk mnostv pepna, kter jsou uvedeny dle. Vechny pepnae s dvojitou pomlkou mohou bt zkrceny pokud je zachovna jednoznanost. Pokud je podpora iptables zabudovna v jde jako modul, mus se tento modul nejdve zavst: `insmod ip_tables'. Nejdleitjm pepnaem je vbr tabulky, `-t'. Pro vechny operace s NAT tabulkou tedy pouvej `-t nat'. Druhm nejdleitjm pepnaem je pouit `-A' k pipojen pravidla na konec etzu (nap. `-A POSTROUTING') nebo vloen pravidla na zatek (nap. `-I PREROUTING'). Me zadat zdroj (`-s' nebo `--source') a cl (`-d' nebo `--destination') paket, na kter chce aplikovat NAT. Za tmito volbami me bt jedin IP adresa (nap. 192.168.1.1), jmno (nap. www.gnumonks.org) nebo adresa st (nap. 192.168.1.0/24 nebo 192.168.1.0/255.255.255.0). Me zadat vstupn (`-i' nebo `--in-interface') nebo vstupn (`-o' nebo `--out-interface') rozhran, kter m odpovdat. Zle ale na etzu, do kterho dv pravidlo: u PREROUTING etzu me zadat pouze vstupn rozhran, u POSTROUTING etzu pak vstupn rozhran. Jestlie zad patn rozhran, iptables zahls chybu. 5.2. Jemnj lenn paket pro modifikaci Jak jsem ji ekl, me zadat zdrojovou a clovou adresu. Jestlie vynech pepna se zdrojovou adresou, pak budou odpovdat vechny zdrojov adresy. To sam plat i pro clovou adresu. Me tak oznait specifick protokol (`-p' nebo `--protocol') jako TCP i UDP; jen pakety tohoto protokolu budou odpovdat pravidlu. Monost zadn dalch specilnch pepna je hlavnm dvodem, pro zadat protokol: speciln me zadat zdrojov port (`--source-port' nebo `--sport') a clov port (`--destination-port' nebo `--dport'). Tyto pepnae ti umon zadat pravidlo, ktermu budou odpovdat jen pakety s uritmi zdrojovmi a clovmi porty. To je uiten pro pesmrovvn WWW poadavk (TCP port 80 nebo 8080), zatmco s ostatnmi pakety se nic nedje. Tyto pepnae mus nsledovat pepna `-p' (co m vedlej efekt zaveden sdlen roziujc knihovny pro tento protokol). Me ut sla port nebo jmno portu ze souboru /etc/services. Vechny rozlin cesty, ktermi me vybrat paket, jsou velmi detailn popsny v manulovch strnkch (man iptables). 6. Jak modifikovat pakety Te u tedy vme, jak vybrat pakety, kter se budou modifikovat. K dokonen naeho pravidla zbv ci jdru co pesn chceme s tmito pakety provdt. 6.1. Zdrojov NAT Chce provdt SNAT, tzn. mnit zdrojovou adresu spojen na njakou jinou. To se dl v POSTROUTING etzu, tsn pedtm ne je paket konen vysln. To je velice dleit detail; znamen to, e cokoliv dalho (smrovn, filtrovn paket) na samotnm Linuxovm potai bude pracovat s nezmnnm paketem. Znamen to tak, e me bt pouit pepna `-o' (vstupn rozhran). Zdrojov NAT je zadna pouitm `-j SNAT' a pepna `--to-source' uruje IP adresu, rozsah IP adres a ppadn port nebo rozsah port (jen pro protokoly TCP a UDP). ## Zm zdrojov adresy na 1.2.3.4 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4 ## Zm zdrojov adresy na 1.2.3.4, 1.2.3.5 nebo 1.2.3.6 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6 ## Zm zdrojov adresy na 1.2.3.4, porty 1-1023 # iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023 6.1.1. Masquerading Masquerading je speciln ppad SNAT a mlo by bt pouito jen pro dynamicky pidlovan IP adresy, jako napklad standardn telefonn vyten (pro statick IP adresy pouij SNAT viz ve). Pro masquerading nemus explicitn urovat zdrojovou adresu: pouije se zdrojov adresa rozhran, ze kterho odchz paket. Dleitj je ovem fakt, e kdy spadne linka, tak jsou spojen (kter jsou tak jako tak stejn ztracena) zapomenuta, co znamen mn ruivch zmn jakmile je spojen opt nahozeno s novou IP adresou. ## Provdj masquerading na vem, co odchz z ppp0 # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 6.2. Clov NAT Provd se v PREROUTING etzu, ihned jakmile je paket pijat. Znamen to, e cokoliv dalho (smrovn, filtrovn paket) na samotnm Linuxovm potai bude pracovat se `skutenm' clem. Znamen to tak, e me bt pouit pepna `-i' (vstupn rozhran). Clov NAT je zadna pouitm `-j DNAT' a pepna `--to-destination' uruje IP adresu, rozsah IP adres a ppadn port nebo rozsah port (jen pro protokoly TCP a UDP). ## Zm clov adresy na 5.6.7.8 # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8 ## Zm clov adresy na 5.6.7.8, 5.6.7.9 nebo 5.6.7.10. # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10 ## Zm clov adresy WWW na 5.6.7.8, port 8080. # iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \ -j DNAT --to 5.6.7.8:8080 6.2.1. Pesmrovvn Pesmrovvn je specilnm ppadem DNAT a je to ist jen konvence, protoe je navlas stejn s provdnm DNAT na adresu vstupnho rozhran. ## Poslej pchoz pakety s portem 80 (WWW) na nai transparentn proxy ## (squid) # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \ -j REDIRECT --to-port 3128 Nezapome, e squid mus bt nakonfigurovn jako transparentn proxy! 6.3. 6.4. Mapovn detailn S nkter jemnstkami NAT vtina lid vbec nepijde do styku. Jsou zde zdokumentovny pro zvdav. 6.4.1. Vbr rozsahu adres Jestlie je zadn rozsah IP adres, pak IP adresa, kter se pouije, je vybrna na zklad nejmn pouvan IP adresy pro potai znm spojen. Dosahuje se tm primitivnho rozloen zaten. 6.4.2. Vytven przdnch NAT mapovn Me pout `-j ACCEPT', co propust spojen bez dalho provdn NAT. 6.4.3. Normln chovn NAT Pedem nastaven chovn je mnit spojen co mon nejmn, s dodrovnm omezen, kter pravidly zadal uivatel. To znamen, e se nepemapovvaj porty (dokud se nemus). 6.4.4. Implicitn mapovn zdrojovch port I kdy pro spojen nen poadovno provdn NAT, me nastat peklad zdrojovch port, jestlie jin spojen bylo mapovno pes nov. Uva ppad s masquerading, kter je celkem bn: 1. WWW spojen je navzno z njakho potae 192.1.1.1, port 1024 na www.netscape.com, port 80. 2. Na toto spojen je aplikovno masquerading pomoc Linuxovho potae tak, aby pouvalo jeho zdrojovou IP adresu (1.2.3.4). 3. Linuxov pota nave spojen s www.netscape.com, port 80 z 1.2.3.4 (adresa vstupnho rozhran), port 1024. 4. NAT zmn zdrojov port druhho spojen na 1025, aby spolu nekolidovala. Pokud nastane implicitn mapovn zdrojovch port, tak jsou porty rozdleny do t td: o Porty pod 512, o porty mezi 512 a 1023 o porty nad 1024 vetn. Port nebude nikdy implicitn mapovn do jin tdy. 6.4.5. Co se stane kdy NAT sele Jestlie nen dn monost, jak jednoznan namapovat spojen na uivatelovu dost, je spojen zahozeno. To tak plat pro pakety, kter nemohou bt piazeny k dnmu spojen, a u kvli jejich pokozen nebo pro nedostatek pamti potae apod. 6.4.6. Vcensobn mapovn, pekrvn a kolize Mohou existovat pravidla NAT, kter mapuj pakety do toho samho rozsahu; kd NAT je natolik chytr, aby zabrnil kolizm. Tud dv pravidla, kter mapuj zdrojovou adresu 192.168.1.1 a 192.168.1.2 na 1.2.3.4 jsou v podku. Co vce, me mapovat pes opravdov, pouvan IP adresy tak dlouho, dokud tyto adresy projdou pes mapovac pota. Tedy, pokud m piazenou s (1.2.3.0/24), ale jedna vnitn s pouv tyto adresy a druh privtn Internetov adresy 192.168.1.0/24, me aplikovat NAT ze zdrojovch adres 192.168.1.0/24 na s 1.2.3.0 bez obav z koliz: # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \ -j SNAT --to 1.2.3.0/24 Podobn postup plat i pro adresy pouvn samotnm NAT potaem: to je zpsob, jakm pracuje masquerading (sdlenm adresy rozhran mezi `opravdovmi 'pakety z NAT potae a pakety, na kter bylo provedeno masquerading). Dle me mapovat ty sam pakety na mnoho rznch cl s tm, e budou sdlen. Pokud nechce napklad mapovat nic na 1.2.3.5, me zadat: # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \ -j SNAT --to 1.2.3.0-1.2.3.4 --to 1.2.3.6-1.2.3.254 6.4.7. Mnn cl lokln vytvench spojen NAT ti dovoluje vloit pravidla DNAT do vstupnho etzu, co ale nen pln podporovno v 2.4 (me bt, vyaduje to ale nov pepnae, trochu testovn a trochu vt kus programovn, take dokud se nkdo nedohodne s Rustym, neoekval bych to brzy). Souasnm omezenm je nemonost zmnit cl na jin potae ne localhost (tedy `-j DNAT --to 127.0.0.1'), protoe jinak jsou odpovdi patn pekldny. 7. Speciln protokoly Nkter protokoly nemaj rdy, pokud se na n aplikuje NAT. Pro kad z tchto protokol mus bt napsna dv rozen: jedno pro sledovn spojen protokolu a druh pro samotn NAT. V distribuci netfilteru jsou zatm moduly pro ftp: ip_conntrack_ftp.o a ip_nat_ftp.o. Pokud tyto moduly zavede do jdra (nebo je do jdra zakompiluje), pak by mlo pracovat jakkoli NAT na ftp spojen. Pokud tyto moduly nepouije, me pout pouze pasivn ftp a i to nemus fungovat spolehliv jestlie provd sloitj SNAT. 8. Upozornn k NAT Pokud aplikuje na spojen NAT, vechny pakety, kter prochzej obma smry (do a ze st), mus prochzet NAT potaem, jinak to nebude spolehliv fungovat. Pedevm, kd pro sledovn spojen sestavuje fragmenty paket, co znamen, e nejen sledovn spojen nebude spolehliv, ale i e pakety samotn nemusej vbec projt kvli odmtnutm fragmentm. 9. SNAT a smrovn U SNAT mus dodret to, e kad pota mus na SNAT pakety odpovdat zpt potai, kter tyto pakety vyslal. Napklad mapuje njak odchoz pakety na zdrojovou adresu 1.2.3.4. Pak venkovn smrova mus vdt, e odpovdi (kter maj cl 1.2.3.4) mus poslat zpt tomuto potai. Toto se d provst nsledujcmi zpsoby: 1. Pokud provd SNAT na vlastn adresu potae (pro kterho smrovn a vechno ostatn u pracuje), nemus dlat nic. 2. Pokud provd SNAT na nepouvanou adresu na lokln sti (napklad mapuje na 1.2.3.99, volnou adresu na sti 1.2.3.0/24), mus tvj NAT pota odpovdat na ARP dosti pro tyto adresy stejn tak jako pro svoj. Nejjednodu je vytvoit IP alias, nap.: # ip address add 1.2.3.99 dev eth0 3. Pokud provd SNAT na pln odlinou adresu, mus zajistit, aby potae, kter obdr SNAT paket, smrovaly tuto adresu zpt k NAT potai. To je splnno, pokud je NAT pota pednastaven brna (gateway). Jinak mus propagovat cestu (pokud pouv smrovac protokol) nebo run pidat cesty na kad takto `postien' pota. 10. DNAT na tu samou s Pokud provd portforwarding zpt na tu samou s, mus zajistit, aby vechny nsledujc pakety i odpovdi na n prochzely NAT potaem (aby mohly bt zmnny). Kd NAT nyn (od verze 2.4.0-test6) dovoluje blokovat odchoz ICMP pesmrovn, kter je vyslno pokud NAT paket odchz tm samm rozhranm, kterm piel, a server stle zkou odpovdat pmo klientovi (kter nerozpozn odpov). Klasickm ppadem je kdy vnitn potae zkou pistoupit k `veejnmu' WWW serveru, na kterm je ale provdno DNAT z veejn adresy (1.2.3.4) na vnitn pota (192.168.1.1): # iptables -t nat -A PREROUTING -d 1.2.3.4 \ -p tcp --dport 80 -j DNAT --to 192.168.1.1 Jeden zpsob je rozbhnout DNS server, kter zn opravdovou (vnitn) IP adresu veejnho WWW serveru a smrovat vechny ostatn dosti na vnj DNS server. To znamen, e na WWW serveru se budou vnitn IP adresy zobrazovat sprvn. Pi druhm zpsobu NAT pota mapuje tak zdrojovou IP adresu na svoji vlastn pro tato WWW spojen a klame tak server tm, e skrz nj odpovd. V tomto pklad pedpokldme, e IP adresa NAT potae je 192.168.1.250: # iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \ -p tcp --dport 80 -j SNAT --to 192.168.1.250 Protoe PREROUTING pravidlo se zkoum jako prvn, pakety budou ji ureny pro vnitn WWW server a meme tak urit, kter z nich maj vnitn zdrojovu adresu. 11. Podkovn Rd bych podkoval pedevm firm WatchGuard a Davidu Bonnovi, kter vil v ideu netfilteru natolik, e m podporoval v m prci. Tak vem ostatnm, kte klidn sneli moje nadvky, kdy jsem objevoval karedosti NAT, a obzvlt tm, kte peetli mj denk. Rusty.