Configuración de Squid: Restricción de acceso a contenido por extensión

Configuración de Squid: Restricción de acceso a contenido por extensión

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org

Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.

Introducción

El control del acceso a ciertos tipos de archivos basado en su extensión es una estrategia eficaz para optimizar el ancho de banda, reforzar la seguridad de la red y promover el cumplimiento de las políticas de uso aceptable. Squid implementa este filtrado mediante listas de control de acceso (ACLs) del tipo urlpath_regex, que analizan la ruta de la URL en busca de patrones específicos.

Este documento presupone la lectura y configuración exitosa descrita en el manual «Configuración de Squid: Opciones básicas».

Creación de la lista de extensiones

El primer paso consiste en definir un archivo que contenga las expresiones regulares correspondientes a las extensiones de archivo que se desean bloquear. Cada extensión debe definirse en una línea separada, utilizando el formato .extensión$, donde . escapa el punto literal y $ asegura que coincida con el final de la cadena.

Cree el archivo de lista con su editor de texto preferido:

vim /etc/squid/listas/extensiones

A continuación se presenta una lista de ejemplo ampliada con extensiones comunes actuales. Esta lista debe adaptarse según los requisitos específicos de seguridad y política de red de cada organización.

.7z$
.ace$
.avi$
.bat$
.deb$
.doc$
.docx$
.exe$
.flac$
.flv$
.gz$
.iso$
.lnk$
.m4a$
.mbd$
.mkv$
.mov$
.mp3$
.mp4$
.mpg$
.mpeg$
.msi$
.pif$
.ppt$
.pptx$
.pps$
.rar$
.ra$
.ram$
.rm$
.rpm$
.scr$
.sys$
.torrent$
.vob$
.wav$
.wma$
.wmv$
.xls$
.xlsx$
.zip$

🔧 Nota sobre sintaxis: El uso de . (punto escapado) y $ (fin de línea) en cada entrada es crucial. Este patrón garantiza que Squid bloquee únicamente las URL que terminen exactamente con esa extensión, evitando falsos positivos donde la cadena aparezca en medio de un nombre de archivo o dominio.

Configuración de la ACL en Squid

Con el archivo de lista creado, el siguiente paso es definir una Lista de Control de Acceso (ACL) en la configuración principal de Squid que haga referencia a éste.

Edite el archivo de configuración:

vim /etc/squid/squid.conf

Dentro de la sección dedicada a las ACLs, añada una nueva línea que defina una ACL de tipo urlpath_regex. Este tipo de ACL examina la parte de la ruta de la URL (lo que viene después del nombre del dominio). En este ejemplo, la ACL se denomina extensiones_bloqueadas.

acl extensiones_bloqueadas urlpath_regex «/etc/squid/listas/extensiones»

Ejemplo de sección de ACLs resultante (manteniendo la coherencia con el bloque de red 192.168.100.0/24 y otras ACLs de la serie):

#
# Recommended minimum…