[Truco de Verano] Pifia con sentencia CONNECT en squid 2.x

Parece que algunos sysadmins no han notado, que hoy en día hasta google es por SSL. Por otra parte, en squid, la sentencia CONNECT, es algo que no muchos parecen entender o prestar atención.

A menudo, los entusiastas del software libre, especialmente los que vienen de windows, suelen instalar nada menos que servidores, siguiendo tutoriales al pie de la letra y sin generar nada. Esto cada día se vuelve más peligroso. Uno de los primeros recuerdos que tengo de la lista de correo de gutl, era de una configuración de postfix, donde permit_mynetwork estaba declarada sobre todas las reglas de control. El pobrecito se preguntaba porque no le funcionaba las reglas y muchos le respondieron, ignorando el peligro de tener un permit_mynetwork en el tope.

De esta forma, sucede con squid. Cuando a menudo vemos por ahí una configuración como esta:

acl SSL_ports port 443
acl Safe_ports port 80
acl purge method PURGE
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access allow CONNECT Safe_ports SSL_ports

Aparentemente inofensiva, pero si se establece una conexión SSL, un usuario que no se halla autenticado navegará sin problemas por un sitio que no negocie el SSL. Por ejemplo, https://www.facebook.com entra sin problema en ese caso. Esa última linea, también la he visto escrita de esta forma.

http_access allow CONNECT Safe_ports SSL_ports ncsa_users

Eso es otra cosa, al menos ahí se declara que los usuarios autenticados se permiten. Pero…

Si más abajo hubiera una lista negra de URL, esta NO pincharía!

Por qué? Sencillo, ya declaraste que las conexiones pasen. Si tienes facebook presuntamente cerrado y te escriben https://www.facebook.com es probable que pasen. Al menos en squid 2.6

Recién en la lista, se discutía este caso:

acl redlocal src 192.168.0.0/24
acl maximo3 maxconn 3
acl maximo5 maxconn 5
http_access deny redlocal maximo3 usuarios2
http_access deny redlocal maximo5 usuarios1
http_access allow redlocal
http_access deny all

El usuario alegó que la ACL «no le pinchaba». Obviamente, las conexiones SSL no se ven afectados por dicha restricción y sitios como el mismísimo facebook, realizan mil y una conexiones a sitios como akamaid; todo por SSL. Le sugerí que en los deny, incluyese además las peticiones del tipo CONNECT.

acl redlocal src 192.168.0.0/24
acl maximo3 maxconn 3
acl maximo5 maxconn 5
http_access deny redlocal maximo3 usuarios2
http_access deny CONNECT redlocal maximo3 usuarios2
http_access deny redlocal maximo5 usuarios1
http_access deny CONNECT redlocal maximo5 usuarios1
http_access allow redlocal
http_access deny all

Con eso, se deniega también las conexión SSL. Así que apartir de hoy, cuando una ACL de squid no te pinche como quieres:

OJO con CONNECT

¿Te resultó interesante? Compártelo ...



låzaro

Publicado por låzaro

http://github.com/uranio-235 » Forma parte de GUTL desde el 27 junio, 2014.

Este artículo tiene 2 comentarios

  1. Cómo yo puedo asignarle una cuota a un usuario o grupo de usuarios con squid sin necesidad de otros programas. Saludos.

Los comentarios están cerrados.