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."