[LUG.ro] Problema con Proxy transparente.

Sebastian Dominguez sebaminguez en gmail.com
Lun Dic 1 17:28:27 ART 2008


Mariano Benedettini escribió:
> On Fri, Nov 28, 2008 at 10:15 AM, Jeremías _ <superjere2 en hotmail.com> wrote:
>   
>> Buenas. Estoy teniendo un problema con un fedora 4 que uso como proxy trasparente.
>> Tengo montado un Squid y un Script Firewall-2.4 (tooodas Iptables) como firewall (Ejem!)
>> El problema lo tengo al hacer forwarding a un puerto especifico dentro de la red.
>> Yo estoy haciendo lo siguiente... (Pongo solo parte del código)
>>
>> $IPTABLES -A FORWARD -i $INTIF -o $EXTIF -p udp --dport 8000 -j ACCEPT
>> $IPTABLES -A FORWARD -i $INTIF -o $EXTIF -p tcp --dport 8000 -j ACCEPT
>>
>> $IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8000 -j DNAT --to 192.168.10.xxx:8000
>> $IPTABLES -t nat -A PREROUTING -p upd -i $EXTIF --dport 8000 -j DNAT --to 192.168.10.xxx:8000
>>
>> En que le estoy pifiando?. Puedo acceder solo por tunel pero no con el forwarding transparente.
>>
>> Muchas Gracias
>>
>> Jeremías Palazzesi
>>     
>
> Hola:
>
> En primer lugar el FORWARD lo estás aceptando desde $INTIF hacia
> $EXTIF cuando el nateo lo estás haciendo exactamente al revés.
> Segundo, no recuerdo el circuito de Iptables, si es que necesita un
> ACCEPT en INPUT además de esto que mandaste para que deje entrar los
> paquetes. Creo que no, que PREROUTING aplica antes que INPUT, pero
> confirmalo por las dudas.
> Y tercero, supongo que lo habrás hecho, chequeá que esté habilitado el
> forwarding de paquetes en el kernel.
>
> HTH,
> Mariano.
>   

Cálculo que lo estará solucionado porque no hubo mas mensajes... pero 
recien leo el mensaje...

Si el squid lo tenes en la misma maquina del firewall no va a andar 
nunca el forward. El proxy es transparente para los usuarios, pero no 
para las conexiones. La conexión a internet es generada desde el squid.. 
a ver si puedo ser mas claro..

Cuando un cliente pide navegar utilizando el proxy, squid "consume" esa 
conexion y genera una nueva hacia internet. Por eso si haces un tcpdump 
en la interfaz de salida vas a ver que todas las conexiones se generan 
en el squid.

Si el squid y el firewall no estan en el mismo equipo, tene en cuenta lo 
anterior para habilitar el forward desde la ip que corresponda.

En definitiva, necesitas un prerouting similar al que tenes pero con la 
interfaz de entrada correcta (como menciono Mariano) para hacer "la 
transparencia". Luego un input en el equipo donde corra squid (una 
obviedad) y un output si squid y el firewall estan en el mismo equipo o 
un forward -s ipDelSquid si estan en equipos separados.

Por ahi enredo mas, no se. Comentanos como te fue.


Más información sobre la lista de distribución Lugro