Listas ACL y autenticación básica en Squid Proxy: configuración paso a paso

Informática y TelecomunicacionesActualizado el 3,44 KB

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.

Ponte a prueba

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

  1. 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
  2. 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
  3. 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
  4. Crear una ACL para autenticar a los usuarios y la aplicamos:
    acl ncsa_users proxy_auth REQUIRED
    http_access allow ncsa_users
  5. 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 HTML

Preguntas 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

1. ¿Qué letra representa el jueves en la sintaxis de franjas horarias de Squid?
2. ¿Qué equivale a la ACL 'acl todos src 0.0.0.0/0.0.0.0'?
3. ¿Qué programa se usa para la autenticación básica en el ejemplo?
4. ¿Qué opción de htpasswd crea un nuevo fichero de contraseñas?
5. ¿Qué directiva aplica la ACL de usuarios autenticados?
6. ¿Qué paquete hay que instalar si falta htpasswd?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.