Neduvera v princip iptables + transparentni proxy

d.petr d.petr na post.cz
Sobota Únor 28 01:53:01 CET 2009


Dobrý večer/den,
narazil jsem na věc, pro kterou nemám vysvětlení. Tvrdí se, že pro 
transparentní proxy stačí napsat např.:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT 
--to-port 3128
Ono to podle všeho funguje (když na portu čeká proxy), ale! Jak to, že 
to funguje? Když pošlu požadavek na web z PC vnitřní sítě, je cílem 
paketu internetová_adresa:80. Po průchodu uvedeným pravidlem by (podle 
mne) měla být cílem internetová_adresa:3128. Kdybych chtěl změnit i 
cílovou adresu, musel bych to do pravidla připsat. Jak je tedy možné, že 
paket s cílovou adresou "internetová_adresa" skončí uvnitř routeru v 
jakémsi programu, třeba squid?? Znamená to snad, že při chybějící adrese 
ji dnat vždy mění na localhost? To je přeci blbost, tak to není. Vždyť 
nat mění pakety co nejméně (jsem se kdysi někde dočetl).

Dokážete mi to, prosím, někdo vysvětlit tak, abych uvěřil a neměl 
pochybnosti? :-)

Děkuji
Petr



Další informace o konferenci Linux