PFsense: firewall perimetral (VI)

En este último capítulo sobre Pfsense (ver I, II, III, IV y V) se explica la configuración de un servidor proxy como Squid en modo transparente para no tener que configurar todos los equipos de la red.

La tarea de este proxy será registrar todas las conexiones HTTP, hacer estadísticas de navegación y denegar ciertos dominios.

El primer paso es instalar estos 3 paquetes: Squid, SquidGuard y Ligthsquid.

Ahora en Services -> Proxy Server -> General, comienza la configuración, Escogiendo cual o cuales serán las interfaces que pasarán a través del proxy. Se elige la interfaz o interfaces por donde queremos que actúe el proxy. En este caso la interfaz LAN.

Allow users on interface activado para que los usuarios conectados a LAN usen el proxy directamente, y Modo transparente, para que no se tenga que configurar en cada equipo la conexión a través de proxy, sino que la navegación se haga de forma automática a través de este.

En las demás opciones dentro de la pestaña General, se puede tener la opción de guardar Log, rotarlos, modificar su formato, no mostrar la versión de Squid o mostrar el contacto que queramos en caso de error HTTP, etc…

Services -> Proxy Server -> Cache Management

  • Hard disk cache size: tamaño en disco que dedicamos a los Log (en Mb).
  • Sistema de cache en disco: Hay 4 sistemas, elegimos la mejor para un sistema de un solo core y con capacidad suficiente de disco (aufs).
  • Memory cache size: tamaño en RAM, usada para la cache negativa y la que está en transito, (no debe superar la mitad de RAM del equipo) (En Mb).
  • Minimum object size: por defecto a 0.
  • Maximum object size: máximo tamaño del objeto (en kb).
  • Maximum object size in RAM: máximo tamaño del objeto en RAM, por defecto 32 kb.

Aparte de estos, hay que definir otros parámetros:

  • Política de remplazo en memoria: La más usada es Heap GDSF: optimiza los objetos con mayor rate haciendo uso del mantenimiento de los objetos más pequeños (frecuencia de tamaño dual).
  • Política de reemplazo de cache: LFUDA ya que interesa una política con el menor numero de accesos a los discos.
  • Low-water-mark in %: límite en % de la memoria de intercambio para que se produzca el remplazo de la cache.

Services -> Proxy Server -> Access Control

  • Allowed subnets: las subredes habilitadas para usar el proxy, en ese caso solo las que pertenezcan al rango de LAN.
  • Unrestricted IPs: Direcciones que están exentas a las reglas del proxy.
  • Banned host addresses: direcciones IP que no tienen permitido el uso del proxy.
  • Whitelist: en cada línea se introduce cada dominio que será accesible por los usuarios que pueda navegar por el proxy, se permiten expresiones regulares.
  • Blacklist: Lo mismo que whitelist pero para denegar dominios.
  • External Cache-Managers: por defecto la dirección IP de la subred LAN y localhost.

Services -> Proxy Server -> traffic Mgmt

Aquí es donde se indican los límites de subida y bajada en Kb.

En las demás secciones como users o auth, no hace falta configurar nada ya que no es un proxy con autenticación sino que es un proxy transparente.

En status -> services se deben activar los servicios relacionados con proxy:

Ahora se debe configurar el filtro del proxy en services -> proxy filter.

Services -> proxy filter -> general settings

Se activa el filtro en el checkbox que pone “Enabled” y en la sección de abajo llamada blacklist options se puede incluir la URL de donde descargar una lista de dominios. En este caso la descargada aquí se divide en varias categorías (downloads, government, drugs, porn, etc…)

Services -> proxy filter -> target categories

Se crea un nuevo objetivo llamado “lista 1”, con lista de dominios, lista de URL y expresiones regulares como se aprecia en la imagen:

Además se puede direccionar a una URL externa:

Ahora una vez creada aparece en el menú principal de target categories:

Después en la pestaña time, se puede personalizar un rango de horas semanal para luego actuar sobre un target:

Se pueden crear varias redirecciones en la pestaña rewrites:

En la pestaña Blacklist se puede descargar el gz incluido antes:

En la pestaña common ACL es donde se puede crear una ACL a partir de varios target y configurarlos con un redirect ya creado. En este caso se puede además añadir los dominios de la lista descargada antes y de la creada (lista1).

Es importante que al final de la lista pongamos allow access en default access [all].

También se puede seleccionar Do not allow IP-Addresses in URL para que el usuario no tenga la opción de evadir un dominio, únicamente poniendo la dirección IP correspondiente, y el RW1 como redirect ya configurado.

Por último, en la pestaña Services -> proxy filter -> Groups ACL se pueden añadir más configuraciones a una ACL, como añadir una subred o tiempo determinados (Times creados):

Para una mejor visualización del Log de Squid, se puede usar proxy report

status –> proxy report

Se configura el tipo de reporte:

La visualización se puede hacer por día, semana, mes, por ancho de banda, por dominios más visitados, etc…

Comments

  1. Como puedo bloquear paginas que utilizan el protocolo HTTPS con squid en modo transparente ??

  2. Hola, perdona la demora, mira puedes hacer dos cosas, o bien denegarlo directamente en las reglas del firewall, si estás usando pfsnese, o buscar el archivo de configuración (squid.conf) y añaidr: :
    http_access deny CONNECT SSL_ports