Configuración Avanzada de Squid: Reglas de Acceso, Autenticación y Proxy Transparente
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,37 KB
Configuración Avanzada de Squid: Reglas y Autenticación
Regla por Dirección MAC
La regla tipo MAC Address nos permite administrar Squid por medio de las direcciones MAC. Por ejemplo, esta regla se llama adminmac y en ella proporcionamos las direcciones MAC de las máquinas clientes:
acl adminmac arp 09:00:2b:23:45:67 00:1f:3c:5f:fd:b1 00:1e:ec:70:7e:24
Regla por Contraseña (Password)
La regla tipo Password permite controlar el acceso a internet por medio de un usuario y contraseña. Para poder habilitar este método, tendremos que seguir los siguientes pasos de configuración:
Creación del archivo de claves
Creamos el archivo que contendrá las claves. Lo creamos oculto para mayor seguridad:
touch .claves
Asignación de permisos
Le asignamos permisos de lectura/escritura y el usuario encargado del archivo:
chmod 600 .claves
y
chown proxy:proxy .claves
Creación de usuario y contraseña
Creación de usuario y contraseña para el acceso a internet:
htpasswd .claves clientes
Habilitación en el fichero de configuración de Squid
Habilitaremos las siguientes opciones dentro del fichero de configuración del servidor Squid:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/.claves
o
authenticate_program /usr/lib/squid/ncsa_auth /etc/squid/.claves
Estamos indicando la aplicación que controla la autenticación y dónde se encuentra el archivo que contiene las cuentas de los usuarios.
Habilitación de la regla ACL
Por último, tendremos que habilitar la regla ACL encargada de la autenticación de contraseña:
acl password proxy_auth required
Control de Acceso (ACLs)
Las reglas de control de acceso (ACLs) definen si se permite o no el acceso. Las reglas pueden ser negadas con un "!" delante; en esos casos, los paquetes que cumplen la regla serán los no recogidos en la misma.
Ejemplo 1: Acceso básico
acl all src 0.0.0.0/0.0.0.0
acl jefes src 192.168.1.23 192.168.1.25
http_access allow jefes
http_access deny all
Ejemplo 2: Acceso avanzado con tiempo y URL
acl all src 0.0.0.0/0.0.0.0
acl jefes src 192.168.1.23 192.168.1.25
acl red-local src 192.168.1.0/255.255.255.0
acl laboral time mtwhf 09:00-15:00
acl no-permitido url_regex "/etc/squid/listas/paginas.txt"
http_access allow jefes
http_access allow red-local laboral !no-permitido
http_access deny all
Servidor Proxy Transparente con Squid
Configurar Squid como proxy transparente permite que las conexiones sean enrutadas al proxy sin hacer ninguna configuración en los clientes para que tengan salida a internet. Los clientes se conectarán a internet pasando por el proxy sin darse cuenta de ello.
Configuración del parámetro http_port
Solamente tenemos que configurar este parámetro para que sea un proxy transparente:
http_port 192.168.1.254:3128 transparent
Reglas de Firewall (IPTables) para Proxy Transparente
Para que el proxy transparente funcione correctamente, es necesario configurar reglas en el firewall (IPTables) para redirigir el tráfico.
Activación del reenvío de paquetes
Es fundamental activar el reenvío de paquetes en el sistema:
echo 1 > /proc/sys/net/ipv4/ip_forward
Reglas de enmascaramiento (NAT Masquerade)
Estas reglas permiten que los paquetes de la red interna salgan a internet a través de la interfaz externa del servidor:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE
Redirección de servicios al proxy
Redireccionamos el tráfico de servicios específicos hacia el puerto del proxy (3128). Hay que poner la siguiente línea para que funcione de manera transparente; debemos aplicar la siguiente regla en iptables:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Con esto ya tenemos redireccionadas todas las conexiones HTTP (puerto 80) hacia el proxy (puerto 3128). Si nos piden otra conexión (FTP, SSH, SMTP, POP3, etc.), debemos incluir la misma regla pero cambiando el puerto, una vez por cada conexión que nos pidan (ej. --dport 25
para SMTP).
Ejemplos de redirección de servicios:
- Servicio Web (HTTP):
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
- Servicio SMTP:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 25 -j REDIRECT --to-port 3128
Puertos Comunes de Red
A continuación, se listan algunos puertos comunes y sus servicios asociados:
- FTP: 20-21
- SSH: 22
- Telnet: 23
- SMTP: 25
- DNS: 53
- HTTP (Web): 80
- POP3: 110
- IMAP: 143
- HTTPS: 443