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

Squid + transparente + SSL



Es un tema viejo y profusamente tratado en internet. Googleando nos encontramos muchas paginas que tratan el tema, pero hasta ahora no he tenido suerte encontrando ninguna que resuelva el problema satisfactoriamente.

Para que squid pueda funcionar en modo transparente con soporte para SSL usando Debian Stable hice lo siguiente:

1- Descargué desde el repo las fuentes de squid:
      apt-get source squid

2- Compile y contruí los paquete squid2.7 y squid-common.

3- Instale los paquetes localmente generados: 
      dpkg -i squid*; apt-get install -f

4- Generé clave y certificado para squid. Lo hice así, puede decirse que al estilo receta de cocina.
        (*) me ayudé desde http://www.rahulpahade.com/content/squid-transparent-proxy-over-ssl-https....
      openssl genrsa -des3 -out squid.key 1024
      openssl req -new -key squid.key -out squid.csr
      cp -p squid.key squid.key.old
      openssl rsa -in squid.key.old -out squid.key
      openssl x509 -req -days 365 -in squid.csr -signkey squid.key -out squid.crt
      (*) Clave y certificado, ambos estan actualmente en  /etc/squid/ssl/{squid.key,squid.crt}. 

5- Configuré squid. Concerniente a SSL habilite lo siguiente en squid.conf:
      http_port 3128 transparent
      https_port 3131 transparent cert=/etc/squid/ssl/squid.crt key=/etc/squid/ssl/squid.key
      http_access allow CONNECT SSLPorts

6- Metí las reglas de iptables necesarias. Las politica por defecto en todo es ACCEPT.
      echo 1 > /proc/sys/net/ipv4/ip_forward
      iptables -t nat -A PREROUTING -i $IFACE_LOCAL --src $LOCAL_LAN -p tcp --dport 80 -j DNAt --to-destination $LOCAL_ADDR:3128
      iptables -t nat -A PREROUTING -i $IFACE_LOCAL --src $LOCAL_LAN -p tcp --dport 443 -j DNAT --to-destination $LOCAL_ADDR:3130

Hasta aqui, el resultado es:

A) Las peticiones HTTP, squid las maneja OK, pero con https obtenengo un aviso en el navegador advirtiendo sobre el certificado autofirmado. Hasta aqui nada inesperado pero ....
    ...usando Firefox, si confirmo la excepción, acto seguido se obtiene un error en el navegador avisando que la pagina se está redirigiendo hacia sí misma causando un ciclo infinito. Los logs de squid lucen completamente normales.

B) Si deshabilitamos la opcion https_port, y ponemos el proxy en modo NO-TRANSPARENTE, se configura en el navegador de cualquier maquina en $LOCAL_LAN y todo(HTTP, HTTPS) funciona OK.

Evidentemente me falto algo pero no puedo determinar que es.

Gracias por su tiempo a todos que leyeron todo esto. 
Gracias infinitas a los que respondan con alguna idea útil.
 		 	   		  

Reply to: