Listas ACL y autenticación básica en Squid Proxy: configuración paso a paso
Resumen
Este apunte explica cómo configurar listas de control de acceso (ACL) en Squid por red de origen y destino, franja horaria, dominio, puertos, URL y extensiones de archivos multimedia. También describe cómo activar la autenticación básica de usuarios mediante htpasswd y aplicar la ACL proxy_auth en squid.conf.
Puntos clave
- Las ACL se definen con la directiva acl y se aplican con http_access allow o deny.
- La franja horaria usa letras para los días: M lunes, T martes, W miércoles, H jueves, F viernes, A sábado y S domingo.
- La ACL 'all' equivale a 0.0.0.0/0.0.0.0 y especifica todos los equipos de la red.
- url_regex y urlpath_regex permiten filtrar por URL completa, por palabras o por extensiones de archivo.
- La autenticación básica usa auth_param basic con el programa basic_ncsa_auth y el fichero /etc/squid/passwd.
- Los usuarios se crean con htpasswd; con -c se crea el fichero y en los siguientes usuarios se omite esta opción.
- Tras los cambios hay que reiniciar Squid con sudo service squid restart.
Configuración de Listas de Control de Acceso (ACL)
Para especificar la red local: acl redlocal src 192.168.112.0/24
Para especificar una red destino: acl destino dst 192.168.0.0/24
Para especificar una franja horaria: acl horario time MWF 8:00-14:00
La sintaxis utilizada para los días de la semana es:
- M Lunes
- T Martes
- W Miércoles
- H Jueves
- F Viernes
- A Sábado
- S Domingo
Comprobar el nombre del dominio: acl prohibidas dstdomain google.com
Especificar todos los equipos de la red:
acl todos src 0.0.0.0/0.0.0.0 (indica cualquier red) = se sustituye por 'all' quedando: acl todos src all
Especificar a nuestro equipo como origen de las conexiones:
acl localhost src 127.0.0.1/255.255.255.255
Especificar a nuestro equipo como destino de las conexiones:
acl localhost_destino dst 127.0.0.0/8
Especificar un puerto o lista de puertos usados en la petición HTTP:
acl puertos_seguros port 80 21 443 563 70 210 1025-65535
acl puerto_ssl port 443
Para crear una ACL basada en la URL completa:
acl urls_permitidos url_regex ^http://www.squid-cache.org/Doc/FAQ/$
El tipo url_regex también se puede usar para crear controles de acceso basados en palabras dentro del URL:
acl urls_descargas url_regex -i rapidshare megaupload
Para crear un ACL para extensiones de archivos multimedia use el ACL:
acl archivos_multimedia urlpath_regex -i \.mp3$ \.mp4$ \.wma$ \.avi$ \.wmv$ \.mov$ \.mpg$ \.mpeg$ \.ram$ \.vob$
Se puede indicar la lista en un archivo: acl archivos_multimedia urlpath_regex -i "/etc/squid/archivos_multimedia.acl"
Ponerlas como -> http_access allow/deny nombre_lista(acl)
Autenticación Básica
- Editar /etc/squid/squid.conf -> auth_param basic
Descomentar la línea y completarla con la siguiente estructura:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd - Crear fichero /etc/squid/passwd. Añadirle usuarios con comando htpasswd:
$ sudo htpasswd -c /etc/squid/passwd usu1; El segundo igual que el anterior sin -c - Descomentar líneas, y en la línea que comienza con auth_param basic realm modificar:
auth_param basic children 5
auth_param basic realm SERVIDOR PROXY SQUID
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off - Crear una ACL para autenticar a los usuarios y la aplicamos:
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users - Guardamos y reiniciamos el servicio de Squid -> sudo service squid restart.
Si no está instalada la utilidad htpasswd -> Instalar el paquete apache2-utils.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Cómo se crea el fichero de usuarios para la autenticación básica en Squid?
Se usa el comando htpasswd: sudo htpasswd -c /etc/squid/passwd usu1 para el primer usuario, y sin -c para los siguientes. Si htpasswd no está instalado, hay que instalar el paquete apache2-utils.
¿Cómo se define una ACL por franja horaria en Squid?
Con la directiva acl horario time seguida de los días en letras y el rango horario, por ejemplo acl horario time MWF 8:00-14:00.
¿Cómo se bloquea el acceso a un dominio concreto?
Se crea una ACL con dstdomain, por ejemplo acl prohibidas dstdomain google.com, y después se aplica con http_access deny prohibidas.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.