Problema con transparent proxy [messaggio #37457] |
sab, 16 aprile 2011 23:39 |
Michele Barbato Messaggi: 72 Registrato: gennaio 2011 |
Member |
|
|
Sto configurando dhcp-server, squid e dansguardian nella stessa macchina che
funge da server.
Questo ha una sola scheda di rete pertanto ho predisposto 2 indirizzi:
eth0 --> 192.168.1.12 che vede il router adsl 192.168.1.1.
eth0:0 --> 192.168.0.1
dhcp3-server assegna indirizzi nel range 192.168.0.1/24 con gateway
192.168.0.1.
Se imposto il browser del client (un portatile con xp) che si connetta ad
internet passando per il proxy 192.168.0.1 porta 8080, funziona tutto a
meraviglia e squid fa la sua parte. Domanda:
- Perche' funziona mettendo 8080 quando squid ascolta di defautl sulla 3128
?
Fin qui ok, adesso proviamo a farlo andare come transparent proxy. Quindi
lato client tolgo la connessione tramite proxy e lato server imposto la
seguente iptable (presa da un tutorial in rete):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
REDIRECT --to-port 3128
Due problemi:
- Intanto la sottorete sarebbe eth0:0 e non eth0 ma se scrivo eth0:0non me
lo prende, mi da' un warning perche' non accetta l'alias
Warning: weird character in interface `eth0:0' (No aliases, :, ! or *).
- Poi di nuovo non mi capisco con le porte. L'iptable fa il redirect della
80 (quella per l'http) verso la 3128 che e' il proxy. La cosa mi pare piu'
logica rispetto a prima che utilizzava la porta 8080 per non si sa quale
motivo. Peccato che non funzioni.
Qualche aiuto ?
Grazie.
Mik
|
|
|
Re: Problema con transparent proxy [messaggio #37461 è una risposta a message #37457] |
dom, 17 aprile 2011 01:08 |
THe_ZiPMaN Messaggi: 221 Registrato: novembre 2010 |
Senior Member |
|
|
On 04/16/2011 11:39 PM, Michele Barbato wrote:
> Sto configurando dhcp-server, squid e dansguardian nella stessa macchina che
> funge da server.
> Questo ha una sola scheda di rete pertanto ho predisposto 2 indirizzi:
> eth0 --> 192.168.1.12 che vede il router adsl 192.168.1.1.
> eth0:0 --> 192.168.0.1
Grande porcheria nella tua configurazione.... e direi anche
configurazione inutile se il proxy lo metti con intenti limitativi.
> - Perche' funziona mettendo 8080 quando squid ascolta di defautl sulla 3128
> ?
Perché dansguardian ascolta di la. Non avrebbe senso puntare a squid
bypassando dansguardian.
# netstat -nltp
# man netstat
> Fin qui ok, adesso proviamo a farlo andare come transparent proxy. Quindi
> lato client tolgo la connessione tramite proxy e lato server imposto la
> seguente iptable (presa da un tutorial in rete):
>
> iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
> REDIRECT --to-port 3128
>
> Due problemi:
> - Intanto la sottorete sarebbe eth0:0 e non eth0
eth0:0 è un'alias di un'interfaccia, ovvero un modo deprecato per
specificare indirizzi IP aggiuntivi per una scheda fisica. L'ultima cosa
che si può fare è chiamarla "sottorete".
Se vuoi matchare su un range di IP, cosa per te necessaria utilizzando
un'unica scheda fisica, devi aggiungere l'opzione -s di iptables.
# man iptables
> ma se scrivo eth0:0non me
> lo prende, mi da' un warning perche' non accetta l'alias
> Warning: weird character in interface `eth0:0' (No aliases, :, ! or *).
Ovvio, perché -i specifica l'interfaccia. L'alias non è un'interfaccia.
Ma queste sono tutte cose ben descritte nel man di iptables.
> - Poi di nuovo non mi capisco con le porte. L'iptable fa il redirect della
> 80 (quella per l'http) verso la 3128 che e' il proxy. La cosa mi pare piu'
> logica rispetto a prima che utilizzava la porta 8080 per non si sa quale
> motivo. Peccato che non funzioni.
Quasi certamente non hai riportato tutti i passaggi che hai fatto,
perché se ti sei limitato a quanto sopra mancano almeno i seguenti:
a) configurazione di squid per funzionare in modalità transparent
b) regola di ACCEPT nella catena di INPUT di netfilter
In ogni caso il problema è facilmente individuabile scrivendo e leggendo
i log, /var/log/squid/cache.log per squid e /var/log/messages per il
firewall (che va configurato per loggare il traffico).
Consiglierei l'uso di shorewall al posto delle regole di iptables
scritte a mano in modo da astrarti la tua topologia e da semplificarti
la configurazione.
http://www.shorewall.net/Shorewall_Squid_Usage.html
--
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.
|
|
|
|
Re: Problema con transparent proxy [messaggio #37480 è una risposta a message #37461] |
dom, 17 aprile 2011 21:07 |
Michele Barbato Messaggi: 72 Registrato: gennaio 2011 |
Member |
|
|
"THe_ZiPMaN" <spam@zipman.it> ha scritto nel messaggio
news:iod7ib$o2v$1@tdi.cu.mi.it...
> On 04/16/2011 11:39 PM, Michele Barbato wrote:
>> Sto configurando dhcp-server, squid e dansguardian nella stessa macchina
>> che
>> funge da server.
>> Questo ha una sola scheda di rete pertanto ho predisposto 2 indirizzi:
>> eth0 --> 192.168.1.12 che vede il router adsl 192.168.1.1.
>> eth0:0 --> 192.168.0.1
>
> Grande porcheria nella tua configurazione.... e direi anche
> configurazione inutile se il proxy lo metti con intenti limitativi.
>
<bypass>
>> - Perche' funziona mettendo 8080 quando squid ascolta di defautl sulla
>> 3128
>> ?
>
> Perché dansguardian ascolta di la. Non avrebbe senso puntare a squid
> bypassando dansguardian.
> # netstat -nltp
> # man netstat
Corretto. Dal manuale Dansguardian: "Squid listens on port 3128 and
DansGuardian listens on port 8080. When a request comes in on port 8080
DansGuardian filters and passes on to squid on port 3128."
[...]
>
> eth0:0 è un'alias di un'interfaccia, ovvero un modo deprecato per
> specificare indirizzi IP aggiuntivi per una scheda fisica. L'ultima cosa
> che si può fare è chiamarla "sottorete".
>
> Se vuoi matchare su un range di IP, cosa per te necessaria utilizzando
> un'unica scheda fisica, devi aggiungere l'opzione -s di iptables.
> # man iptables
>
Ne prendo atto e ringrazio per il consiglio. Non ho capito come fare, devo
studiarmi prima per bene come funzionano le iptables.
[...]
>
> Quasi certamente non hai riportato tutti i passaggi che hai fatto,
> perché se ti sei limitato a quanto sopra mancano almeno i seguenti:
> a) configurazione di squid per funzionare in modalità transparent
http_port 3128 transparent
> b) regola di ACCEPT nella catena di INPUT di netfilter
>
Questa non l'ho capita. Dove si trova ?
> In ogni caso il problema è facilmente individuabile scrivendo e leggendo
> i log, /var/log/squid/cache.log per squid e /var/log/messages per il
> firewall (che va configurato per loggare il traffico).
>
> Consiglierei l'uso di shorewall al posto delle regole di iptables
> scritte a mano in modo da astrarti la tua topologia e da semplificarti
> la configurazione.
>
> http://www.shorewall.net/Shorewall_Squid_Usage.html
>
Ottimi consigli entrambi. Mi ci devo mettere con calma.
Soprassiedo su alcuni commenti provocatori tra le righe a mio vedere fuori
luogo in un ng che si chiama "iniziare".
Al di la di questo ho trovato le risposte e i vari consigli tutti molto
validi. Grazie mille.
> --
> Flavio Visentin
>
> Scientists have finally discovered what's wrong with the female brain:
> On the left side, there is nothing right, and on the right side, there
> is nothing left.
Mik.
|
|
|
Re: Problema con transparent proxy [messaggio #37490 è una risposta a message #37480] |
lun, 18 aprile 2011 03:19 |
THe_ZiPMaN Messaggi: 221 Registrato: novembre 2010 |
Senior Member |
|
|
On 04/17/2011 09:07 PM, Michele Barbato wrote:
>> b) regola di ACCEPT nella catena di INPUT di netfilter
>
> Questa non l'ho capita. Dove si trova ?
Dove hai messo la regola di REDIRECT devi aggiungerne una analoga di ACCEPT.
iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 \
-s 192.168.0.0/24 -j REDIRECT --to-port 8080
iptables -I INPUT -i eth0 -p tcp --dport 8080 -s 192.168.0.0/24 \
-j ACCEPT
--
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.
|
|
|