[PLUTO-help] Problemi con squid

miKe m.m.asciutti a email.it
Gio 4 Dic 2003 00:16:58 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Alle 10:00, mercoledì 3 dicembre 2003,  in merito a [PLUTO-help] 
Problemi con squid ,  Piviul  ha scritto a Supporto tecnico del PLUTO :
..
> iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT
> --to-port 3128
..
> httpd_accel_host virtual
> httpd_accel_port 80
> httpd_accel_with_proxy on
> httpd_accel_host_header on


> Ho dimenticato qualcosa durante la configurazione?

sembra tutto giusto,


non ho seguito il 3d dall'inizio, per cui azzardo due ipotesi 
pindariche..

- -nel caso  che la tua macchina sia contemporaneamente proxy e gateway..

1.  i client hanno un dns settato e il server no?

in quel caso, al proxy arrivano richieste, già risolte,
squid per prevenire problemi di inquinamento della cache (un host 
potrebbe avere un file host che punta a macchine arbitrarie..) ripete 
la risoluzione,
ma non trovando risposte, per non negare il servizio, suppone di 
trovarsi davanti ad un problema del nameserver, e tramite getsockopt() 
usa le intestazioni IP delle  richieste del client per avere l'IP da 
interrogare.

a quel punto,però,  l'host/utente che fa la richiesta deve essere 
autorizzato ad  accedere alla funzione.. (ricevi un messaggio di 
errore)

2. i browser http  1.1mandano richieste del tipo:
GET / HTTP/1.1
Host: pippo.domain
User-Agent: xxxx
...
Host è definito esplicitamente nella richiesta, e permette virtual 
server sullo stesso ip/porta

un browser HTTP 1.0 invece inserisce le richieste all'interno delle 
chiamate html, per questo un  proxy trasparente  dovrebbe riscrivere le 
richieste in HTTP 1.1, cambiare l'idirizzo ,attendere la risposta del 
server, riscrivere il risultato in 1,0 e  inviare al browser.... 

il browser, come detto anche prima, effettua  DNS lookup,
e se  è settato per usare un proxy invia a questo tutte le richieste;
il DNAT per il proxy trasparente, invece modifica  le richieste 
indirizzate agli IP dei vari webserver in richieste al proxy, ma non la 
richiesta GET come invece farebbero i browser, per questo devi 
configurare squid con l'opzione transparent mode, 

squid deve parsare le richieste  HTTP  e determinare l'originale  host  
dalla linea  Host: , fare reverse  DNS e ricevere l' IP,  se il browser 
come nel tuo caso  invia le richieste al vero  webserver, è necessario 
che la riga  Host: non venga modificata 


- -invece, se la tua macchina non è contemporaneamente proxy e gateway, 
(che riceve tutto il traffico lan da una scheda   ed è collegato alla 
wan con altra scheda) , cioè si trova nel mezzo della rete, non puoi 
fare un proxy trasparente solo con quella linea di iptables...

- --

bye

miKe

____________________________________________________
Slackware 8.1 GNU/Linux 2.4.22-jl12 @ ASUS S1N 1330c
R.U.#219755  S.R.U.#705  R.M.#110932 - ICQ#320002994
MajaGLUG User
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/zm7tF/9fksDJ4y0RAq2AAJsHuPJg2tDT2rUnSGxbVuAt7UnpIwCfdnXv
Xd0NB4O+DS0qYdKit22gA+s=
=ReYT
-----END PGP SIGNATURE-----



More information about the pluto-help mailing list