Redes-Linux.com
Esta página esta optimizada para ser visualizada tanto en navegadores gráficos, como en navegadores de texto.
 
Buscar en:


 
El Servidor
Current bandwidth utilization 0.01 Mbit/s
Ancho de banda utilizado
 
Redes-Linux
 
Tip Today by ugu.com
 
Más cosas
 
Conóceme
   [Registrarse]  [Editar Perfil]  [Editar sus Preferencias]  [Buscar]
[Mensajes Privados]  [Lista de miembros]  [preguntas]  [Entrar]
Redes-Linux Forum Index » » Redes en GNU/Linux » » iptables + squid transparente
Autor iptables + squid transparente
rafaelsalcedo


Registrados: Jun 19, 2008
Mensajes: 3
Publicado: 2008-06-19 15:15   
He estado revisando todos los preguntas del foro relacionadas con iptables+squid transparente para intentar que funcione, y parece que todos tenemos problemas parecidos.

Quiero poner en el foro una prueba que he realizado para ver si damos mas luz al problema y podemos solucinarlo alguno de nosotros.

En principio parece que tanto iptables como squid nos funcionan a todos de forma correcta(se ha comprobado expliciamente), pero sin habilitar la funcion de transparencia, es decir, sin la siguiente orden dentro del script de iptables:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Haciendo un seguimiento con cualquier sniffer(iptraf o tcpdump) podemos observar que la informacin fluye correctamente por los dos interfaces:
- Con iptables y sin habilitar proxy(sin modificar la opcion de proxy del navegador cliente):
Tanto en eth0 como en eth1 se ven los distintos puertos por lo que fluye la informacion(80, 53, puertos superiores relacionados, etc.), y son los mismos en ambas interfaces(bueno, los relacionados no, claro).

- Con iptables y habilitando proxy(modificando la opcion de proxy del navegador cliente):
Aqui podemos comprobar como ya cambian los puertos que se abren en cada interfaz:
eth0: se ver como fluye la informacion en los puetos indicados anteriomente(80, 53, puertos superiores relacionados,etc)
eth1: al ser esta la interfaz interna de la red, es por la que se comunican los navegados de los equipos clientes, por lo que aqui solo se ven en funcionamiento el puerto 3128 (squid) y los puertos superiores relacionados.

Hasta ahora bien.

Ahora, para comprobar que el iptables no este "fastidiando" al squid transparente, creo un nuevo script para iptables muy simple, para ver que ocurre en los interfaces. El script es el siguiente:

#----Limpiamos todas las reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
#----Damos inet a la LAN
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
#----Politicas por defecto ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

#Proxy transparente
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Y nos llevamos una sorpresa cuando volvemos a revisar la comunicacion en las interfaces(iptraf), y vemos que en ambas interfaces la comunicacion fluye por los mismos puertos, el 80 y los puertos superiores relacionados, en vez de ver que en la eth1 solo deberiamos tener al puerto 3128 y sus relacionados.

Para intentar ver que esta pasando, aado una linea al ultimo bloque para dropear al puerto 80, pero antes que la linea del PREROUTING, por tanto el bloque se queda asi:

#Proxy transparente
iptables -A FORWARD -i eth1 -p tcp --dport 80 -j DROP
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

O sea que el firewall debera denegar las peticiones del puerto 80, y tampoco se llegaria a la segunda lnea de PREROUTING, pero sin embargo navegamos, y al volver a nuestro amigo iptraf seguimos viendo en ambas interfaces la misma informacion, o sea el puerto 80 y sus relacionados.

Que alguien me lo explique...


  Ver Perfil de rafaelsalcedo      Editar/Borrar este Mensaje   Responder citando
Anónimo
Usuario no registrado
Publicado: 2008-06-19 21:13   
Bueno, en mi opinin, es muy simple la explicacin (tambin puedo estar equivocado):

Con la siguiente linea que has puesto al principio del script:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

estas enmascarando todas las conexiones que le llegan de la red local, por lo que pasan a considerarse conexiones que "abre" el propio firewall, es decir, para el exterior, el que est haciendo esa conexin es el firewall. Por este motivo, no tiene en cuenta la linea que dirige las conexiones que le entran por la interfaz eth1, al puerto 3128.
Pon la linea que te comentaba al principio, despus de la linea del proxy, a ver que tal.


     Editar/Borrar este Mensaje   Responder citando
rafaelsalcedo


Registrados: Jun 19, 2008
Mensajes: 3
Publicado: 2008-06-20 02:05   
Ese no era el problema.

NO existe problema alguno, el proxy esta funcionando de forma correcta, lo que ocurre es que al analizar lo que ocurre en la eth1 con iptraf, el puerto 3128 no aparece, aunque esta trabajando normalmente, por eso daba lugar a confusin.


  Ver Perfil de rafaelsalcedo      Editar/Borrar este Mensaje   Responder citando
  
Cerrar este Tema Mover este Tema Borrar este Tema