Esconder versión de un proxy Squid

Este post sería para quien esté familiarizado con el uso de un proxy HTTP. En particular, el más popular es Squid:  http://www.squid-cache.org/

Nota: Estas instrucciones funcionan para Squid 2.x No he probado Squid 3 y desconozco si la configuración es similar o probablemente haya cambiado.

En particular yo lo utilizo justamente como un proxy caché, que me permite visitar algunas de mis páginas más frecuentes un poco más rápido. Y más aún, lo permite a toda la red local. De modo que, si tengo por ejemplo dos máquinas en mi red local y la primera visita http://techsurveyor.com/ a través del proxy, y posteriormente la segunda máquina visita la misma página, con un poco de suerte no tendrá que cargar desde Internet todo el contenido de la misma, sino que podrá tomar algunos elementos desde el caché de Squid, lo que acelera la carga.

Volviendo al punto, si alguno de ustedes ha visitado sitios para ver la dirección IP pública en que se encuentran, visitando estos sitios vía el proxy Squid veremos que se muestra información un tanto sensitiva, y que hablando de seguridad, podría ser inconveniente tenerla a la vista:

 

Este es un recorte de lo que se obtiene normalmente en una página como whatismyip.com (cubro la IP por privacidad):

 

Es decir, solamente la IP pública de donde nos conectamos.

Este, es un recorte de lo que se puede ver cuando usamos un proxy como Squid:

Demasiada información, y es una muestra de que cualquier servidor puede obtenerla y explotarla de algún modo. En resumen, se muestra lo siguiente y que no es del todo conveniente:

  • Que estamos usando un proxy.
  • Que el proxy es Squid.
  • Que el proxy usa el puerto 33000.
  • Que el proxy tiene un hostname llamado micompu.
  • Que el proxy está usando la versión 2.7.STABLE9 (esta parte puede ser la más comprometedora).
  • Adicionalmente, si nos vamos a una página cmyip.com también se muestra la IP interna de la máquina desde la cuál se está visitando (digamos, para una red privada, típicamente algo en el segmento 192.x.x.x), lo cual tampoco es del todo cómodo.

Entonces, para aquellos fanáticos de la seguridad, aquí unos pequeños tips para tratar de hacer más anónima la navegación a través de un proxy Squid.

En el archivo /etc/squid/squid.conf hemos de hacer las siguientes modificaciones, si la línea no existe hay que agregarla:

  1. visible_hostname elhostqueyoquiera
    Esta modificación sustituirá el hostname, en el ejemplo micompu por elhostqueyoquiera.
  2. httpd_suppress_version_string on
    Esto esconde la versión de Squid que estemos utilizando.
  3. via off
    Como alternativa, este cambio elimina el encabezado que muestra que nos estamos conectando desde Squid.
  4. forwarded_for off
    Finalmente, esta linea esconde la IP interna del visitante (para el caso de cmyip.com).

Todas las opciones se encuentran en la documentación, e incluso en el archivo squid.conf de ejemplo se habla de sus funciones y opciones.

Al final reiniciamos squid, o lo que es más rápido:

squid -k reconfigure

Con estos cambios, se obtiene una conexión más transparente y anónima a los sitios web. Hay más cambios (que aún no he probado), pero estas son las opciones más típicas para este propósito.

Para quien quiera investigar más a fondo, puede revisar en la documentación sobre el modo paranoia de Squid en el que se añaden una serie de líneas para restringir aún más los encabezados que se envían. Aunque como consecuencia de esto, en mi caso algunos sitios dejaron de funcionar correctamente (como whatismyip.com).

Espero le sirva a más de algún paranoico como yo =P