El 10 de octubre de 2008 12:20, Federico Alberto Sayd
<[EMAIL PROTECTED]>escribió:

> 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


iptables -t nat -A PREROUTING -i eth0 -p tcp --dport http -j DNAT --to "
192.168.0.6:8080" con esa regla redireccionas todas las peticiones http que
vengan por la tarjeta de red eth0.

-- 
"Al principio, el Hombre creó a Dios; y lo creó a su imagen y semejanza.
Y el Hombre dio a Dios multitud de nombres, y el poder de que fuera el Señor
de toda la tierra cuando al Hombre le conviniere."

Responder a