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:

  1. Creación del archivo de claves

    Creamos el archivo que contendrá las claves. Lo creamos oculto para mayor seguridad:

    touch .claves
  2. Asignación de permisos

    Le asignamos permisos de lectura/escritura y el usuario encargado del archivo:

    chmod 600 .claves

    y

    chown proxy:proxy .claves
  3. Creación de usuario y contraseña

    Creación de usuario y contraseña para el acceso a internet:

    htpasswd .claves clientes
  4. 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.

  5. 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

Entradas relacionadas: