Re: Transparent proxy con squid...
Ho seguito il tuo suggerimento, cioè:
iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner proxy --dport 80
-j REDIRECT --to-port 3128
e ha funzionato, anche se prima ho dovuto penare alquanto per capire che
il messaggio di errore che ottenevo ("no such chain/target...") era
dovuto al fatto che, avendo ricompilato il kernel usando le opzioni
standard di Netfilter, non avevo previsto il modulo owner.
Ricompilato il kernel (con tutti i duecento moduli di netfilter per
andare sul sicuro), la regola sopra viene accettata e fa esattamente
quello che volevo.
Ti ringrazio molto, erano settimane che ci provavo!
On Mon, 2009-10-19 at 15:27 +0200, Marco Romano wrote:
> Andrea Giuliano wrote:
>
> > A pensarci è ovvio: se tutte le richieste in uscita sulla porta 80
> > finiscono sulla porta 3128, e squid poi deve comunque farle uscire sulla
> > porta 80, egli stesso è fregato! Dovrei trovare un modo per dire "le
> > richieste per la 80 provenienti dalla 3128 devono passare, le altre no!"
>
> In effetti hai ragione: si crea un brutto loop che non permette
> a squid/squidguard di uscire.
>
> Visto che squid viene in genere eseguito con un suo UID
> (solitamente l'utente proxy), potresti restringere la regola di iptables
> a tutti i pacchetti generati dall'utente x:
>
> iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner x --dport 80 -j
> REDIRECT --to-port 3128
>
> oppure, escludere solamente quelli associati all'utente proxy:
>
> iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner proxy --dport 80
> -j REDIRECT --to-port 3128
>
> P.S. se possibile, sarebbe preferibile continuare nella mailing-list
> così da permettere ad altri più esperti di me di aiutarti ;)
>
Reply to: