Neduvera v princip iptables + transparentni proxy
d.petr
d.petr na post.cz
Sobota Únor 28 15:00:50 CET 2009
Dalibor Straka wrote:
> 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
Jej!? Velice Vám děkuji, ani nevíte, jakou jste mi udělal radost. Ano,
REDIRECT není DNAT, za co jsem ho bůhvíproč pořád považoval (a neomlouvá
mne, že jsem to zkoumal na Mikrotiku, který ve firewallu používá různá
svoje slovíčka a označení).
Iptables tedy nemusím řadit mezi nevyzpytatelné nástroje, což mne
opravdu těší. :-)
Ještě jednou děkuji. (a příště bych měl jít radši dřív spát, možná bych
pak nepokládal takovéto dotazy)
Petr
Další informace o konferenci Linux