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.
Este documento explica cómo configurar listas de control de acceso (ACLs) basadas en direcciones MAC (Media Access Control) en el servidor intermediario (proxy) Squid. Este método proporciona un control de acceso granular e independiente de la dirección IP, permitiendo autorizar o denegar el tráfico de red a equipos específicos identificados de manera única por su dirección de sustento físico.
Este manual presupone la lectura y configuración exitosa de los parámetros básicos descritos en el documento «Configuración de Squid: Opciones básicas». Específicamente, se requiere tener configurados al menos los siguientes parámetros:
http_port, por ejemplo: http_port 8080cache_dir, por ejemplo: cache_dir ufs /var/spool/squid 1024 16 256Para configurar las listas, es necesario conocer las direcciones MAC de los equipos. Los métodos varían según el sistema operativo y el punto de red desde el que se realice la consulta.
Desde un servidor Linux que actúe como puerta de enlace, se recomienda utilizar el mandato moderno ip neigh (parte del paquete iproute2) para visualizar la tabla de vecinos ARP de la red. Para más detalles sobre su uso, consulte el manual Uso de ip neigh.
ip neigh show
Desde una estación de trabajo con Windows, la dirección MAC se obtiene con el mandato ipconfig:
ipconfig /all
Desde una estación de trabajo con Linux, utilice el mandato ip para listar las interfaces de red locales:
ip link show
El primer paso consiste en crear un archivo de texto que contenga las direcciones MAC a las cuales se aplicarán las reglas de control de acceso.
Genere el archivo /etc/squid/listas/macsredlocal:
vim /etc/squid/listas/macsredlocal
El contenido del archivo debe ser una lista simple de direcciones MAC, una por línea. Por ejemplo:
00:01:80:41:9C:8A
00:08:A1:84:18:AD
00:16:E3:9D:CD:77
00:04:75:AA:2D:A1
00:19:D2:6B:41:45
00:13:10:8D:4A:EE
00:19:21:14:9B:0D
Con el archivo de direcciones creado, es necesario editar la configuración principal de Squid para definir una nueva lista de control de acceso (ACL) y una regla que la utilice.
Edite el archivo de configuración principal:
vim /etc/squid/squid.conf
Dentro de la sección de Listas de Control de Acceso, añada una nueva línea que defina una ACL de tipo arp. Esta ACL hará referencia al archivo creado en el paso anterior. En este ejemplo, la lista se denomina macsredlocal:
acl macsredlocal arp "/etc/squid/listas/macsredlocal"
A continuación, en la sección de Reglas de Control de Acceso, cree una regla que permita el acceso a los miembros de esta lista. La regla básica sería:
http_access allow macsredlocal
La verdadera potencia del filtrado por MAC se despliega al combinar esta ACL con otras. Por ejemplo, puede restringir el acceso a ciertos contenidos incluso para equipos autorizados.
Suponiendo que existen listas denominadas nsfw (para sitios de contenido para adultos) y extensiones (para ciertos tipos de archivo), la regla podría refinarse para denegar ese contenido específico a los equipos de la lista MAC:
http_access allow macsredlocal !nsfw !extensiones
Si además existe una lista de control de acceso por horario llamada matutino, la regla podría limitar el acceso a un período específico del día:
http_access allow matutino macsredlocal !nsfw !extensiones
La flexibilidad del sistema permite adaptar las reglas a necesidades de seguridad y políticas de acceso sumamente específicas.
Una vez modificada la configuración, es necesario aplicar los cambios gestionando el servicio.
Para sistemas con SystemD (AlmaLinux, Rocky Linux, RHEL 8+):
systemctl start squidsystemctl restart squidsystemctl stop squidsystemctl enable squidPara sistemas con SysVinit (ALDOS):
service squid startservice squid restartservice squid stopchkconfig squid onEl filtrado por dirección MAC es una capa eficaz de control de acceso que funciona de forma complementaria a otros métodos. Para construir un entorno de filtrado completo, se recomienda consultar los siguientes manuales:
La combinación de estos controles —por identidad del equipo (MAC), tipo de contenido y horario— permite implementar políticas de seguridad y uso aceptable de la red altamente granulares y adaptadas a las necesidades de cualquier organización.