Neduvera v princip iptables + transparentni proxy

Dalibor Straka dast na panelnet.cz
Sobota Únor 28 02:09:21 CET 2009


On Sat, Feb 28, 2009 at 01:53:01AM +0100, d.petr wrote:
> 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? :-)
> 

man iptables

    REDIRECT
        ...... It  redirects  the  packet  to the machine
        itself by changing the destination IP to the primary address of
        the incoming interface .....

-- Dalibor Straka



Další informace o konferenci Linux