Cómo usar Squid para controlar el acceso a Internet

Squid es un servidor proxy de almacenamiento en caché. Si eres administrador de sistemas Linux, puedes usar squid para controlar el acceso a Internet en tu entorno de trabajo.

Esta guía para novatos te dará un inicio rápido sobre cómo configurar squid en Linux para restringir el acceso a Internet en una red.

Instalar Squid

Debes instalar los siguientes tres paquetes relacionados con Squid en tu sistema.

  • squid
  • squid-common
  • squid-langpack

En Debian y Ubuntu, debes usar aptitude para instalar squid como se muestra a continuación. En CentOS, tienes que usar yum para instalar el paquete de Squid.

Comprobar configuración y scripts de inicio

Además de instalar los paquetes relacionados con squid, este también crea el script de inicio /etc/squid/squid.conf y /etc/init.d/squid.

Por defecto, Squid se ejecuta en el puerto 3128. Puedes verificar esto desde el archivo squid.conf. También puedes establecer el parámetro visible_hostname en tu squid.conf, que se utilizará en error_log. Si no lo defines, Squid obtiene el valor del nombre de host usando la función gethostname().

Nota: El número de puerto http (3128) especificado en squid.conf debe ingresarse en la sección de configuración del proxy en el navegador del cliente. Si Squid está construido con SSL, puedes usar la opción https_port dentro de squid.conf para definir https squid.

Iniciar Squid y ver registros

Tienes que iniciar el servidor de caché proxy Squid como se muestra a continuación.

Squid mantiene tres archivos de registro (access.log, cache.log y store.log) en el directorio /var/log/squid.

Desde /var/log/squid/access.log, puedes ver quién accedió a qué sitio web en qué momento. El siguiente es el formato del registro squid access.log.

Para deshabilitar el inicio de sesión en squid, debes actualizar squid.conf con la siguiente información.

Uso N° 1 de Squid: Restringir el acceso a sitios web específicos

Así es como puedes restringir que las personas naveguen por ciertos sitios web cuando están conectados a tu red utilizando tu servidor proxy.

Debes crear un archivo llamado restrict_sites y enumerar todos los sitios a los que deseas restringir el acceso.

Debes modificar squid.conf para agregar lo siguiente.

Nota: También puedes configurar squid como un servidor proxy transparente, que discutiremos en un artículo separado. Además, puedes consultar un artículo anterior sobre cómo bloquear direcciones IP usando fail2ban e iptables.

Uso N° 2 de Squid: Permitir el acceso a sitios web solo durante un tiempo específico

Es posible que algunas organizaciones deseen permitir que los empleados naveguen o descarguen de Internet solo durante períodos de tiempo específicos.

La configuración de squid.conf que se muestra a continuación permitirá el acceso a Internet a los empleados solo entre las 9:00 a.m. y las 18:00 durante los días laborables.

Uso N° 3 de Squid: Restringir el acceso a redes particulares

En lugar de restringir sitios específicos, también puedes proporcionar acceso solo a ciertas redes y bloquear todo lo demás. El siguiente ejemplo, permite el acceso solo a la red interna 192.168.1. *.

Para un sistema de detección de intrusos basado en Linux, puedes usar tripwire.

Uso N° 4 de Squid: Usar expresiones regulares para hacer coincidir las URL’s

También puedes usar expresiones regulares para permitir o denegar sitios web.

Primero hay que crear un archivo blocks_sites con una lista de palabras clave.

Se debe modificar squid.conf para bloquear cualquier sitio que tenga alguna de estas palabras clave en su URL.

En el ejemplo anterior, la opción -i se usa para ignorar mayúsculas y minúsculas para la coincidencia. Por lo tanto, al acceder a los sitios web, squid intentará hacer coincidir la URL con cualquiera de los patrones mencionados en el archivo blocks_sites anterior y denegará el acceso cuando coincida.

SARG – Generador de informes de análisis de Squid

Puedes descargar e instalar SARG para generar informes de uso de Squid

Utiliza el comando sarg-reports para generar informes como se muestra a continuación.

Nota: puedes agregar el informe sarg al crontab.

Los informes generados por sarg se almacenan en /var/www/squid-reports. Estos son informes html que puedes ver desde un navegador.