Seguridad y Monitoreo con Squid y SquidAnalyzer
En esta presentación, exploraremos el uso de Squid y SquidAnalyzer para brindar seguridad y monitoreo en entornos informáticos. Descubre cómo estas herramientas pueden proteger tus sistemas y optimizar el rendimiento.

by Enrique Serrano Lendines

Definición de Proxy
  • Un proxy actúa como intermediario entre los dispositivos finales y el servidor de destino.
  • Su función principal es proporcionar servicios de seguridad, rendimiento y control de acceso.
Funciones Principales del Proxy
Balanceo de Carga
Los proxies pueden distribuir el tráfico entre múltiples servidores, mejorando el rendimiento y evitando la saturación de recursos.
Filtrado de Contenido
Los proxies pueden bloquear o permitir el acceso a ciertos sitios web o tipos de contenido, protegiendo a los usuarios y la red.
Caché de Datos
Los proxies pueden almacenar temporalmente datos solicitados, reduciendo el tiempo de carga y optimizando el uso del ancho de banda.
Registro de Actividad
Los proxies pueden registrar y analizar el tráfico de red, proporcionando valiosa información para el monitoreo y la resolución de problemas.
Tipos de Proxies en Seguridad Informática

1

Proxy de Reenvío (Forward Proxy)
Actúa como intermediario entre los usuarios y los servidores externos. Los usuarios se conectan al proxy, y este realiza las solicitudes en su nombre.

2

Proxy Inverso (Reverse Proxy)
Actúa como intermediario entre los servidores internos y los usuarios externos. Los usuarios se conectan al proxy, y este distribuye las solicitudes hacia los servidores internos.

3

Transparent Proxy
Funciona sin la necesidad de configuraciones adicionales en los clientes. Todas las solicitudes se realizan a través del proxy de manera transparente.
Instalación de Squid

1

Actualización del Sistema
sudo apt-get update

2

Instalación de Squid
sudo apt-get install -y squid

3

Verificación del Estado de Squid
Una vez instalado, verifica que Squid esté en ejecución correctamente y escuchando en el puerto configurado.
sudo systemctl is-enabled squid sudo systemctl status squid
Configuración Rápida de Squid como Proxy Web y Servidor de Caché
Configuración de la Dirección IP y Puerto
  • Especifica la Dirección IP y Puerto:
  • Encuentra la línea http_port 3128 y agrega la dirección IP del servidor seguida del puerto deseado.
Habilitación del Almacenamiento en Caché Vía Disco
  • Descomenta el parámetro cache_dir para activar el almacenamiento en caché mediante disco.
  • (Squid usará el directorio /var/spool/squid para almacenar la caché).
Reglas de Acceso para una Red Específica en Squid
  • Agrega la siguiente configuración entre las líneas include /etc/squid/conf.d/*.conf y http_access deny all, como se muestra a continuación.

    Esta configuración crea una nueva Lista de Control de Acceso (ACL) de Squid llamada mynet con la red 89.35.143.182/23 y permite que la ACL acceda a Internet mediante el parámetro http_access.
  • Una vez configurado, guarda los cambios y cierra el archivo /etc/squid/squid.conf.
  • Ejecuta el siguiente comando para reiniciar el servicio de Squid y aplicar los cambios.
sudo systemctl restart squid
A continuación, ejecuta el siguiente comando curl para acceder a un sitio web (http://duckduckgo.com) a través de cURL y el proxy para asegurarte de que Squid esté funcionando. El parámetro x te permite utilizar un proxy y el parámetro I muestra los detalles de los encabezados HTTP.
curl -x http://89.35.143.182:3128 -I -L http://duckduckgo.com
Configuración de Autenticación Básica en Squid

1

Instalación de apache2-utils
Antes de habilitar la autenticación básica en Squid, instala la herramienta "apache2-utils" para generar archivos de contraseñas.
sudo apt install apache2-utils -y

2

Creación y Configuración del Archivo de Contraseñas
Crea un archivo de contraseñas y establece los usuarios y las contraseñas permitidas para acceder al proxy.
sudo touch /etc/squid/passwd sudo chown proxy: /etc/squid/passwd

3

Crea un usuario y establece una contraseña:
Agrega usuarios y contraseñas adicionales al archivo de contraseñas utilizando la herramienta "htpasswd".
sudo htpasswd /etc/squid/passwd usuario

4

Configuración de Autenticación Básica en Squid
Configura Squid para que solicite autenticación básica a los usuarios antes de permitir su acceso.
  • Reinicia Squid:
sudo systemctl restart squid
  • Ver autenticación en navegador:
  • Ver autenticación con curl:
Bloqueo de Sitios Web con Squid
  • En el archivo de configuración de Squid, agrega:
acl blocked_websites dstdomain .marca.com .youtube.com .facebook.com .twitter.com .reddit.com http_access deny blocked_websites
  • Reinicia Squid:
sudo systemctl restart squid
  • Sitio bloqueado desde el navegador:

  • Intenta acceder a un sitio bloqueado para comprobar el bloqueo usando curl:

SquidAnalyzer
Instalación de Nginx
sudo apt install -y nginx
Descarga y Extracción de SquidAnalyzer
  • Descarga:
wget https://www.sysadminsdecuba.com/wp-content/uploads/2020/09/squidanalyzer-6.6.tar.gz
  • Extracción
tar xvf squidanalyzer-6.6.tar.gz
Creación de Carpetas para Archivos Generados
  • Acceder a la carpeta obtenida
cd squidanalyzer-6.6/
  • Crear carpeta para archivos generados
sudo mkdir /var/www/squidanalyzer
Instalación Personalizada de SquidAnalyzer
sudo perl Makefile.PL \ LOGFILE=/var/log/squid/access.log \ BINDIR=/usr/bin \ CONFDIR=/etc \ HTMLDIR=/var/www/squidanalyzer \ BASEURL=/ \ MANDIR=/usr/man/man3 \ DOCDIR=/usr/share/doc/squidanalyzer
  • Instalamos make:
sudo apt install make
sudo make
sudo make install
Configuración del Cron para Generar Estadísticas
Establece una tarea cron para que SquidAnalyzer genere periódicamente las estadísticas a partir de los registros de Squid.
echo "0 2 * * * /usr/local/bin/squid-analyzer > /dev/null 2>&1" | crontab -
Verificación y Comprobación de Estadísticas Generadas
Accede a los archivos generados por SquidAnalyzer para visualizar las estadísticas y los informes sobre el uso de Squid.
/usr/local/bin/squid-analyzer > /dev/null 2>&1 ls -la /var/www/squidanalyzer/
Configuración de Nginx para SquidAnalyzer

1

Eliminación de Sitios por Defecto
Elimina los sitios web por defecto en Nginx para configurar un nuevo sitio específicamente para SquidAnalyzer.
sudo rm /etc/nginx/sites-available/default && sudo rm /etc/nginx/sites-enabled/default

2

Creación de un Nuevo Sitio para SquidAnalyzer
Crea una nueva configuración de sitio en Nginx para permitir el acceso a SquidAnalyzer desde un navegador web.
sudo nano /etc/nginx/sites-available/squid-analyzer
  • añadimos lo siguiente:
server { listen 80; server_name 89.35.143.182; access_log /var/log/nginx/squidanalyzer-access.log combined; location / { root /var/www/squidanalyzer; index index.html index.htm; } }

3

Prueba de Configuración y Reinicio de Nginx
Prueba la configuración de Nginx y reinicia el servicio para aplicar los cambios y permitir el acceso a SquidAnalyzer.
sudo nginx -t sudo systemctl restart nginx
Funcionamiento
Por último pero no menos importante accedemos desde nuestro navegador a la URL del SquidAnalyzer y nos debe salir así:
Conclusión
En esta práctica, hemos configurado un proxy seguro con Squid, aplicando reglas de acceso, autenticación de usuarios y monitorización con Squid Analyzer. Logramos transparencia en la configuración para una experiencia simplificada y visualmente atractiva, fortaleciendo así la seguridad informática de la red. ¡Una solución robusta y estéticamente agradable contra posibles amenazas!
Made with Gamma