[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: redireccionamiento hacia squid




----- Original Message ----- From: "Federico Alberto Sayd" <fsayd@uncu.edu.ar>
To: <debian-user-spanish@lists.debian.org>
Sent: Friday, October 10, 2008 2:20 PM
Subject: Re: redireccionamiento hacia squid


Julián Esteban Perconti escribió:
saludos lista:

Tengo problemas para redireccionar a squid transparente peticiones
desde el 80/tcp.

tengo un squid en una pc (192.168.0.6) funcionando correctamente, un
gateway (192.168.0.1) funcionando correctamente con esta regla con
respecto al problema:

iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.2 -d 0/0 -p tcp
--sport 1024:65535  --dport 80 -j DNAT --to 192.168.0.6:3128

y sin embargo el cliente (yo: 192.168.0.2) no navega; pero ocurre que
si especifico en el navegador quien es el proxy, entonces si puedo
navegar correctamente.

datos adicionales del GW y squid:

eth1 es la iface del GW que  va a la lan.

En el GW el bit forwarding esta activo y el 3128/tcp esta abierto
hacia la lan.

tabla route de squid:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref
Use Iface
192.168.0.0     *               255.255.255.0   U     0      0
0 eth0
default         192.168.0.1    0.0.0.0         UG    0      0        0
eth0

tabla route de GW:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref
Use Iface
192.168.0.0     *               255.255.255.0   U     0      0
0 eth1
default         *               0.0.0.0         U     0      0
0 ppp0

¿ por que razon puede ser que el cliente no pueda navegar sin tener
que especificar que pc es el proxy?

    Gracias de antemano, Julian.


Tienes que fijarte en el algoritmo de ruteo.

Cuando la maquina cliente tiene que ir a alguna ip al puerto 80 por
defecto busca el gateway a menos que esa ip de destino esté en la red
local. Una vez que el paquete llega al router para ser reenviado, el
router reescribe la dirección de destino (DNAT) para que la petición la
acepte otra máquina (192.168.0.6), la petición, o el paquete es enviado
al proxy en esa otra máquina. Pero cuando tu proxy transparente tiene
que responder la conexión ¿a quién le responde? ¿le responde al router?
no, porque lo único que se reescribe es la ip de destino, la de origen
no se reescribe y por lo tanto el proxy va a tratar de responder
directamente al cliente, y como está en la red local no tiene por qué
pasar por el router. Cuando a tu cliente le llega la respuesta del proxy
transparente no tiene idea de la conexión (el nunca inició una conexión
a 192.168.0.6) y por eso la descarta.

Sin embargo el cliente estaba esperando una respuesta de otra máquina
(por ejemplo un host en Internet), que si todo anduviera como debe ser,
sería en relidad el proxy que estaría respondiendo a través del router
que hace un rastreo de la conexión y devuelve el paquete del proxy a la
maquina de origen y el proxy transparente funcionaría.

Qué queda por hacer? Bueno, si nateaste el destino de la conexión,
puedes natear el origen (SNAT) para que el proxy transparente hable
directamente con el gateway que va a llevar el conteo de la conexión
(connecction tracking)  y te que lo devoverá a tu máquina cliente.

En relidad te envitarías todo el dolor de cabeza si el proxy
transparente estuviera montado en router-firewall que es lo más común,
pero de la otra forma también se puede hacer.

Se entiende? Y si estoy equivocado que alguien me corrija. Porque al
menos a mi no me funcionaba y lo solucioné con el SNAT

Saludos


--
To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Hola genio, antes que nada mis suposiciones fueron algo similares a las de usted; primero que pensé fue que 192.168.0.6 no tenia ni idea de que hacer con esos paquetes que le entraban por el 3128..., pero despues el hecho de que si en el browser expecificaba el proxy y el cliente navegaba, me llevo a empezar a buscar la solucion por otro lado, pero no descarte por completo el hecho anterior. Despues tambien pense que debia "SNATear" pero realmente no tenia ni la mas palida idea de como hacerlo.
Tambien probé con estas reglas en el GW:

iptables -A FORWARD -i eth1 -s 192.168.0.2 -p tcp --dport 80 -j REDIRECT --to-port 3128 (para la propia maquina primero)
y depues..
iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.1 -p tcp --dport 3128 -j DNAT --to 192.168.0.6

como puede observar [ni la mas palida idea de nada y completamente desesperado para que la cosa funcione]

Recien ahora leo el mail, ahora me quede sin tiempo y tengo que irme, ni bien estoy de vuelta me pongo a estudiar el SNAT!

Con respecto al tema de que squid este en el GW, bueno el GW es una HP vectra pentium de 75 mhz con 28 RAM, el proxy un sempron 2600+ 512 DDR.

   Desde ya 1.000.000 gracias y un abrazo.

Julian.


Reply to: