Filtro web PfSense: filtre HTTP (S) con SquidGuard

Como administrador del sistema de una escuela, te enfrentas constantemente a la pregunta de hasta qué punto debes filtrar el contenido de Internet. Esta pregunta debe responderse siempre que los niños y jóvenes tengan acceso a Internet, ya sea en las escuelas, clubes, bibliotecas, en el hogar o en cualquier otra institución pública. Las opiniones sobre este tema son muy diversas. No hay 100% de protección. Es mucho más importante enseñar a los niños y jóvenes cómo usar Internet de manera responsable. Este es un gran desafío y lleva tiempo. Los padres y los educadores se enfrentan a esta tarea y, a menudo, no saben cuál es la mejor manera de abordarla. Especialmente en las escuelas, donde no siempre puedes vigilar las pantallas, un filtro web es de gran ayuda. En algunos países, la ley exige un filtro web para las escuelas. Pero a veces solo se trata de bloquear ciertos sitios web, como Facebook, Netflix & Co. Por lo tanto, en este tutorial me gustaría mostrarle cómo configurar un filtro web pfSense.


No hay tiempo para leer este artículo ahora?

Descargue este artículo como PDF


Observaciones preliminares

pfSense es un firewall de código abierto ampliamente utilizado que usamos en nuestra escuela . (Si necesita ayuda para instalar pfSense , consulte nuestra guía de instalación ). Con la ayuda de Squid (un servidor proxy) y SquidGuard (el filtro web real) queremos filtrar las conexiones HTTP y HTTPS. Para este tutorial, primero necesitamos una instalación activa de pfSense. El firewall se puede descargar aquí e instalar de acuerdo con estas instrucciones .

Cómo funciona

Filtrar conexiones HTTP es muy fácil y rápido de configurar. Dado que estas conexiones no están encriptadas, es posible examinarlas bien y, por lo tanto, bloquearlas total o parcialmente. Hoy en día, cada vez más sitios web (incluso aquellos que desea bloquear) usan HTTPS, es decir, una conexión cifrada entre el navegador del usuario y el servidor web. Gracias a Let's Encrypt, ahora cualquiera puede configurar un certificado gratuito para su sitio web. Esto es algo bueno en sí mismo, ya que aumenta la seguridad y hace que muchos ataques sean imposibles o más difíciles. Sin embargo, también dificulta el filtrado de contenido no deseado.

Este "problema" se puede resolver de dos maneras:

1. ataque de hombre en el medio

Una forma es un ataque consciente de hombre en el medio. El servidor proxy descifra la conexión HTTPS y la reconstruye. Esto les permite ver la conexión y filtrarla en consecuencia. La mayoría de los proveedores de soluciones de filtro web utilizan este concepto. El problema aquí es que esta profunda interferencia con la conexión HTTPS significa que la seguridad real proporcionada por HTTPS ya no está garantizada. Un usuario difícilmente puede reconocer la diferencia si el certificado del servidor proxy es de confianza. Pero esta seguridad es engañosa. Incluso si esta es la única forma de hablar del verdadero filtrado de contenido, esta solución es peligrosa, muy arriesgada (la implementación no es definitiva) y, según el país, es incompatible con las leyes vigentes (protección de datos de palabras clave y privacidad). Por lo tanto, esta ruta no se recomienda por razones de seguridad y morales.

2. Filtro de URL a través de SNI

Otra posibilidad es filtrar a través de SNI ( Indicación de nombre del servidor ). Antes de consultar el certificado entre el navegador y el servidor web y, por lo tanto, se establece una conexión cifrada, el navegador envía el nombre de dominio (FQDN) que desea consultar. Esta parte aún no está encriptada y, por lo tanto, puede leerse mediante un proxy (transparente) y usarse para el filtrado. La siguiente figura ilustra el apretón de manos TLS.

Apretón de manos TLS

Puede ver fácilmente que el SNI se envía antes del intercambio de claves y la conexión segura real. Aprovechamos este principio y, además del filtro web para conexiones HTTP, también podemos configurar un filtro de URL para conexiones HTTPS sin destruir HTTPS por un ataque de hombre en el medio.

Safe-Search para buscadores

Crear reglas de firewall para DNS

Como no podemos buscar una conexión HTTPS, pueden aparecer imágenes y videos no deseados en una búsqueda de Google, por ejemplo. Por lo tanto, Google y otros motores de búsqueda ofrecen un modo seguro (Safe-Search) porque queremos forzarlo.

Primero tenemos que activar la resolución DNS en pfSense (en Servicios → Resolución DNS ) y luego guardar y aplicar los cambios.

DNS Resolver

Para que las computadoras de la red utilicen el servidor DNS del firewall, necesitamos una regla que reenvíe todas las demás solicitudes DNS al firewall. Para hacer esto, creamos una nueva regla en Firewall → NAT en la pestaña Port Forward con un clic en uno de los dos botones de agregar . Ingresamos lo siguiente:

  1. Interfaz: LAN
  2. Protocolo: TCP / UDP
  3. Destino: Cualquiera
  4. Rango de puerto de destino: DNS (53)
  5. Redireccionar IP de Traget: 127.0.0.1
  6. Redireccionar puerto de destino: DNS (53)
  7. Descripción: se puede seleccionar libremente

Redireccionamiento NAT

Ahora tenemos que asegurarnos de que nuestra regla de firewall recién creada esté en el lugar correcto. ¡Debe estar por encima del valor predeterminado " Permitir LAN predeterminada para cualquier regla "! Para hacer esto, abrimos las reglas del firewall en Firewall → Reglas y subimos la regla. Luego guarde con Guardar y Aplicar para aplicar los cambios.

Reglas LAN

Anulaciones de host para Bing y Youtube

A continuación, crearemos algunas entradas DNS para asegurarnos de que su búsqueda segura se use tanto para Google como para Bing. Para hacer esto, abrimos nuevamente el DNS Resolver en Servicios → DNS Resolver y agregamos las siguientes entradas en la sección Anulaciones de host a continuación.

Bing

  • Anfitrión: www
  • Dominio: bing. com
  • Dirección IP: 204.79.197.220
  • Descripción: Bing
  • Luego guarde con Guardar

Luego la entrada para Youtube:

  • Anfitrión: www
  • Dominio: youtube. com
  • Dirección IP: 216.239.38.120
  • Descripción: Youtube
  • Guardar de nuevo con Guardar

Anulaciones de host

Ahora aplique los cambios nuevamente con Apply .

Anulaciones de host para Google

Google usa muchos dominios diferentes y tomaría bastante tiempo ingresarlos manualmente. Es por eso que elegimos una forma diferente para Google. Primero, debemos iniciar sesión en pfSense a través de SSH (o conectar una pantalla + teclado si el pfSense está instalado en una computadora con una tarjeta gráfica). SSH primero debe habilitarse en la interfaz web y Sistema → Avanzado en la sección Secure Shell .

Habilitar SSH

Ahora podemos iniciar sesión con el siguiente comando a través de SSH (¡ajuste la dirección IP!):

 $ ssh [email protected] 

En el siguiente menú seleccionamos "8" (Shell).

pfSense Shell

Ahora creamos un archivo en el que luego ingresamos nuestras entradas DNS para Google. Podemos hacer eso con el siguiente orden:

 $ vi /var/unbound/google.conf 

Para salir del editor, necesitamos ingresar :wq (¡los dos puntos son importantes!). Eso es todo lo que necesitamos hacer en la línea de comando.

Ahora podemos editar el archivo recién creado usando Diagnósticos → Editar archivo . Para hacer esto, ingrese la ruta /var/unbound/google.conf y presione Cargar .

Editar archivo

Ahora copiamos el siguiente contenido en el archivo:

 datos locales: "www.google.ad A 216.239.38.120" datos locales: "www.google.ae A 216.239.38.120" datos locales: "www.google.com A 216.239.38.120" datos locales: "www.google.com.af A 216.239.38.120" datos locales: "www.google.com.ag A 216.239.38.120" datos locales: "www.google.com.ai A 216.239.38.120" datos locales: "www.google.al A 216.239.38.120" datos locales: "www.google.am A 216.239.38.120" datos locales: "www.google.co.ao A 216.239.38.120" datos locales: "www.google.com.ar A 216.239.38.120" datos locales: "www.google.as A 216.239.38.120" datos locales: "www.google.at A 216.239.38.120" datos locales: "www.google.com.au A 216.239.38.120" datos locales: "www.google.az A 216.239.38.120" datos locales: "www.google.ba A 216.239.38.120" datos locales: "www.google.com.bd A 216.239.38.120" datos locales: "www.google.be A 216.239.38.120" datos locales: "www.google.bf A 216.239.38.120" datos locales: "www.google.bg A 216.239.38.120" datos locales: "www.google.com.bh A 216.239.38.120" datos locales: "www.google.bi A 216.239.38.120" datos locales: "www.google.bj A 216.239.38.120" datos locales: "www.google.com.bn A 216.239.38.120" datos locales: "www.google.com.bo A 216.239.38.120" datos locales: "www.google.com.br A 216.239.38.120" datos locales: "www.google.bs A 216.239.38.120" datos locales: "www.google.bt A 216.239.38.120" datos locales: "www.google.co.bw A 216.239.38.120" datos locales: "www.google.by A 216.239.38.120" datos locales: "www.google.com.bz A 216.239.38.120" datos locales: "www.google.ca A 216.239.38.120" datos locales: "www.google.cd A 216.239.38.120" datos locales: "www.google.cf A 216.239.38.120" datos locales: "www.google.cg A 216.239.38.120" datos locales: "www.google.ch A 216.239.38.120" datos locales: "www.google.ci A 216.239.38.120" datos locales: "www.google.co.ck A 216.239.38.120" datos locales: "www.google.cl A 216.239.38.120" datos locales: "www.google.cm A 216.239.38.120" datos locales: "www.google.cn A 216.239.38.120" datos locales: "www.google.com.co A 216.239.38.120" datos locales: "www.google.co.cr A 216.239.38.120" datos locales: "www.google.com.cu A 216.239.38.120" datos locales: "www.google.cv A 216.239.38.120" datos locales: "www.google.com.cy A 216.239.38.120" datos locales: "www.google.cz A 216.239.38.120" datos locales: "www.google.de A 216.239.38.120" datos locales: "www.google.dj A 216.239.38.120" datos locales: "www.google.dk A 216.239.38.120" datos locales: "www.google.dm A 216.239.38.120" datos locales: "www.google.com.do A 216.239.38.120" datos locales: "www.google.dz A 216.239.38.120" datos locales: "www.google.com.ec A 216.239.38.120" datos locales: "www.google.ee A 216.239.38.120" datos locales: "www.google.com.eg A 216.239.38.120" datos locales: "www.google.com.et A 216.239.38.120" datos locales: "www.google.fi A 216.239.38.120" datos locales: "www.google.com.fj A 216.239.38.120" datos locales: "www.google.fm A 216.239.38.120" datos locales: "www.google.fr A 216.239.38.120" datos locales: "www.google.ga A 216.239.38.120" datos locales: "www.google.ge A 216.239.38.120" datos locales: "www.google.gg A 216.239.38.120" datos locales: "www.google.com.gh A 216.239.38.120" datos locales: "www.google.com.gi A 216.239.38.120" datos locales: "www.google.gl A 216.239.38.120" datos locales: "www.google.gm A 216.239.38.120" datos locales: "www.google.gp A 216.239.38.120" datos locales: "www.google.gr A 216.239.38.120" datos locales: "www.google.com.gt A 216.239.38.120" datos locales: "www.google.gy A 216.239.38.120" datos locales: "www.google.com.hk A 216.239.38.120" datos locales: "www.google.hn A 216.239.38.120" datos locales: "www.google.hr A 216.239.38.120" datos locales: "www.google.ht A 216.239.38.120" datos locales: "www.google.hu A 216.239.38.120" datos locales: "www.google.co.id A 216.239.38.120" datos locales: "www.google.ie A 216.239.38.120" datos locales: "www.google.co.il A 216.239.38.120" datos locales: "www.google.im A 216.239.38.120" datos locales: "www.google.co.in A 216.239.38.120" datos locales: "www.google.iq A 216.239.38.120" datos locales: "www.google.is A 216.239.38.120" datos locales: "www.google.it A 216.239.38.120" datos locales: "www.google.je A 216.239.38.120" datos locales: "www.google.com.jm A 216.239.38.120" datos locales: "www.google.jo A 216.239.38.120" datos locales: "www.google.co.jp A 216.239.38.120" datos locales: "www.google.co.ke A 216.239.38.120" datos locales: "www.google.com.kh A 216.239.38.120" datos locales: "www.google.ki A 216.239.38.120" datos locales: "www.google.kg A 216.239.38.120" datos locales: "www.google.co.kr A 216.239.38.120" datos locales: "www.google.com.kw A 216.239.38.120" datos locales: "www.google.kz A 216.239.38.120" datos locales: "www.google.la A 216.239.38.120" datos locales: "www.google.com.lb A 216.239.38.120" datos locales: "www.google.li A 216.239.38.120" datos locales: "www.google.lk A 216.239.38.120" datos locales: "www.google.co.ls A 216.239.38.120" datos locales: "www.google.lt A 216.239.38.120" datos locales: "www.google.lu A 216.239.38.120" datos locales: "www.google.lv A 216.239.38.120" datos locales: "www.google.com.ly A 216.239.38.120" datos locales: "www.google.co.ma A 216.239.38.120" datos locales: "www.google.md A 216.239.38.120" datos locales: "www.google.me A 216.239.38.120" datos locales: "www.google.mg A 216.239.38.120" datos locales: "www.google.mk A 216.239.38.120" datos locales: "www.google.ml A 216.239.38.120" datos locales: "www.google.com.mm A 216.239.38.120" datos locales: "www.google.mn A 216.239.38.120" datos locales: "www.google.ms A 216.239.38.120" datos locales: "www.google.com.mt A 216.239.38.120" datos locales: "www.google.mu A 216.239.38.120" datos locales: "www.google.mv A 216.239.38.120" datos locales: "www.google.mw A 216.239.38.120" datos locales: "www.google.com.mx A 216.239.38.120" datos locales: "www.google.com.my A 216.239.38.120" datos locales: "www.google.co.mz A 216.239.38.120" datos locales: "www.google.com.na A 216.239.38.120" datos locales: "www.google.com.nf A 216.239.38.120" datos locales: "www.google.com.ng A 216.239.38.120" datos locales: "www.google.com.ni A 216.239.38.120" datos locales: "www.google.ne A 216.239.38.120" datos locales: "www.google.nl A 216.239.38.120" datos locales: "www.google.no A 216.239.38.120" datos locales: "www.google.com.np A 216.239.38.120" datos locales: "www.google.nr A 216.239.38.120" datos locales: "www.google.nu A 216.239.38.120" datos locales: "www.google.co.nz A 216.239.38.120" datos locales: "www.google.com.om A 216.239.38.120" datos locales: "www.google.com.pa A 216.239.38.120" datos locales: "www.google.com.pe A 216.239.38.120" datos locales: "www.google.com.pg A 216.239.38.120" datos locales: "www.google.com.ph A 216.239.38.120" datos locales: "www.google.com.pk A 216.239.38.120" datos locales: "www.google.pl A 216.239.38.120" datos locales: "www.google.pn A 216.239.38.120" datos locales: "www.google.com.pr A 216.239.38.120" datos locales: "www.google.ps A 216.239.38.120" datos locales: "www.google.pt A 216.239.38.120" datos locales: "www.google.com.py A 216.239.38.120" datos locales: "www.google.com.qa A 216.239.38.120" datos locales: "www.google.ro A 216.239.38.120" datos locales: "www.google.ru A 216.239.38.120" datos locales: "www.google.rw A 216.239.38.120" datos locales: "www.google.com.sa A 216.239.38.120" datos locales: "www.google.com.sb A 216.239.38.120" datos locales: "www.google.sc A 216.239.38.120" datos locales: "www.google.se A 216.239.38.120" datos locales: "www.google.com.sg A 216.239.38.120" datos locales: "www.google.sh A 216.239.38.120" datos locales: "www.google.si A 216.239.38.120" datos locales: "www.google.sk A 216.239.38.120" datos locales: "www.google.com.sl A 216.239.38.120" datos locales: "www.google.sn A 216.239.38.120" datos locales: "www.google.so A 216.239.38.120" datos locales: "www.google.sm A 216.239.38.120" datos locales: "www.google.sr A 216.239.38.120" datos locales: "www.google.st A 216.239.38.120" datos locales: "www.google.com.sv A 216.239.38.120" datos locales: "www.google.td A 216.239.38.120" datos locales: "www.google.tg A 216.239.38.120" datos locales: "www.google.co.th A 216.239.38.120" datos locales: "www.google.com.tj A 216.239.38.120" datos locales: "www.google.tk A 216.239.38.120" datos locales: "www.google.tl A 216.239.38.120" datos locales: "www.google.tm A 216.239.38.120" datos locales: "www.google.tn A 216.239.38.120" datos locales: "www.google.to A 216.239.38.120" datos locales: "www.google.com.tr A 216.239.38.120" datos locales: "www.google.tt A 216.239.38.120" datos locales: "www.google.com.tw A 216.239.38.120" datos locales: "www.google.co.tz A 216.239.38.120" datos locales: "www.google.com.ua A 216.239.38.120" datos locales: "www.google.co.ug A 216.239.38.120" datos locales: "www.google.co.uk A 216.239.38.120" datos locales: "www.google.com.uy A 216.239.38.120" datos locales: "www.google.co.uz A 216.239.38.120" datos locales: "www.google.com.vc A 216.239.38.120" datos locales: "www.google.co.ve A 216.239.38.120" datos locales: "www.google.vg A 216.239.38.120" datos locales: "www.google.co.vi A 216.239.38.120" datos locales: "www.google.com.vn A 216.239.38.120" datos locales: "www.google.vu A 216.239.38.120" datos locales: "www.google.ws A 216.239.38.120" datos locales: "www.google.rs A 216.239.38.120" datos locales: "www.google.co.za A 216.239.38.120" datos locales: "www.google.co.zm A 216.239.38.120" datos locales: "www.google.co.zw A 216.239.38.120" datos locales: "www.google.cat A 216.239.38.120" 

Con un clic en Guardar, guardamos el archivo.

El último paso es decirle a nuestro servidor DNS dónde encontrar estos registros DNS. Para hacer esto, abra la configuración del servidor DNS en Servicios → Resolver DNS y haga clic en Mostrar opciones personalizadas . Allí insertamos las siguientes líneas, las guardamos con Guardar y aplicamos los cambios con Aplicar .

 servidor: incluir: /var/unbound/google.conf 

Opciones personalizadas de DNS

Nuestros motores de búsqueda están configurados. El siguiente paso es configurar el filtro de contenido para HTTP y el filtro de URL para HTTPS.

Squid Proxy y SquidGuard

Instalación

Para permitir que pfSense filtre las URL, necesitamos un servidor proxy a través del cual se enruten todas las solicitudes de nuestra red. Para esto usamos Squid. Como su nombre indica, SquidGuard es el filtro real. En Sistema → Administrador de paquetes en la pestaña Paquetes disponibles , instalamos Squid y SquidGuard.

Gerente de empaquetación

Configuración de proxy transparente para HTTP

En Servicios → Squid Proxy Server ahora configuramos el proxy transparente para HTTP. Un proxy transparente tiene la ventaja de que no tenemos que configurar ninguna configuración en las computadoras individuales de nuestra red. En la pestaña General activamos los siguientes elementos:

  1. Habilitar Proxy Squid ✔
  2. Interfaz (s) Proxy: LAN
  3. Permitir a los usuarios en la interfaz ✔
  4. Proxy HTTP transparente ✔
  5. Interfaz (s) transparente de proxy: LAN

Proxy general de calamar

Después de guardar con Guardar , determinamos en la pestaña Caché local cuánto espacio en disco se debe usar para el caché (aquí 500 MB):

Caché de calamar

La configuración debe guardarse nuevamente con Guardar . El proxy transparente para las conexiones HTTP ahora está configurado.

Configurando SquidGuard

SquidGuard es el componente responsable de filtrar el contenido. SquidGuard examina cada solicitud y luego decide si bloquear o no la solicitud o el sitio web. Para esto usamos una lista negra, que configuramos más adelante. Antes de eso, definiremos algunas configuraciones generales en Servicios → Filtro de proxy SquidGuard .

  1. Habilitar ✔
  2. (no se muestra en la captura de pantalla)
  3. Habilitar registro ✔
  4. Habilitar rotación de registros ✔
  5. Habilitar lista negra ✔
  6. URL de la lista negra: http://www.shallalist.de/Downloads/shallalist.tar.gz

General de filtro de proxy de calamar

A continuación, guardamos todo de nuevo con Guardar .

¡Con SquidGuard debemos tener en cuenta que los cambios en la configuración solo se activan después de hacer clic en Guardar y Aplicar (arriba en la pestaña Configuración general)!

Configurar listas negras y listas blancas

Ahora que hemos terminado con la configuración básica, faltan las listas negras y las listas blancas. La URL para la lista negra ya está dada. Ahora tenemos que descargarlos en la pestaña " Lista negra ".

Lista negra

Para asegurarnos de que nuestro filtro funciona, ahora estamos definiendo varias categorías de destino. Para hacerlo, abra la pestaña " Categorías de destino " y haga clic en Agregar . Creamos una lista blanca de todos los nombres de dominio que permitimos explícitamente. Eso sería, por ejemplo, todos los dominios de Google, porque bloquearemos todos los demás motores de búsqueda para evitar que el usuario omita la función Safe-Search configurada anteriormente.

Ingresaremos lo siguiente:

  1. Nombre: Lista blanca
  2. Lista de dominios:
     google.ac google.ad google.ae google.al google.am google.as google.at google.az google.ba google.be google.b google.bf google.bg google.bi google.bj google.bs google.bt google. por google.ca google.cat google.cd google.cf google.cg google.ch google.ci google.cl google.cm google.cn google.co.ao google.co.bw google.co.ck google.co. cr google.co.hu google.co.id google.co.il google.co.in google.co.je google.co.jp google.co.ke google.co.kr google.co.ls google.com google .co.ma google.com.af google.com.ag google.com.ai google.com.ar google.com.au google.com.bd google.com.bh google.com.bn google.com.bo google .com.br google.com.bz google.com.co google.com.cu google.com.cy google.com.do google.com.ec google.com.eg google.com.et google.com.fj google .com.gh google.com.gi google.com.gr google.com.gt google.com.hk google.com.jm google.com.kh google.com.kw google.com.lb google.com.ly google .com.mm google.com.mt google.com.mx google.com.my google.com.na google.com.nf google.com.ng google.com.ni google.com.np goog le.com.om google.com.pa google.com.pe google.com.pg google.com.ph google.com.pk google.com.pr google.com.py google.com.qa google.com.sa google.com.sb google.com.sg google.com.sl google.com.sv google.com.tj google.com.tr google.com.tw google.com.ua google.com.uy google.com.vc google.co.vn google.co.mz google.co.nz google.co.th google.co.tz google.co.ug google.co.uk google.co.uz google.co.ve google.co.vi google.co.za google.co.zm google.co.zw google.cv google.cz google.de google-directory.co.uk google.dj google.dk google.dm google.dz google.ee google.es google .fi google.fm google.fr google.ga google.ge google.gg google.gl google.gm google.gp google.gr google.gy google.hn google.hr google.ht google.hu google.ie google.im google.iq google.is google.it google.je google.jo google.kg google.ki google.kz google.la google.li google.lk google.lt google.lu google.lv google.md google.me google. mg google.mk google.ml google.mn google.ms google.mu google.mv google.mw google.ne google.nl google.no g oogle.nr google.nu google.off.ai googlepirate.com google.pl google.pn google.ps google.pt google.ro google.rs google.ru google.rw google.sc google.se google.sh google.si google.sk google.sm google.sn google.so google.sr google.st google.td google.tg google.tk google.tl google.tm google.tn google.to google.tt google.uz google.vg google. vu google.ws bing.com 
  3. Descripción: Lista blanca
  4. Ahorre con Guardar.

lista blanca

El último paso por el momento es establecer algunas reglas. Hacemos esto en la pestaña ACL común . Luego haga clic en el signo " + " en " Lista de reglas de destino " para abrir una lista de los diferentes conjuntos de reglas. Ahora hay diferentes categorías y nuestra lista blanca aparece aquí. Ahora hacemos las siguientes configuraciones:

  • Lista blanca: acceder a la lista blanca
  • Acceso predeterminado [todos]: acceso permitido

ACL común

Las otras categorías se pueden configurar según sea necesario. Aquí hay unos ejemplos:

  • Bloquear publicidad: [blk_BL_adv] acceso denegado
  • Bloquear pornografía: [blk_BL_porn] acceso denegado
  • etc.

Para evitar que un usuario omita nuestro filtro de URL ingresando la dirección IP de una página, todavía habilitamos No permitir direcciones IP en URL . Si esta configuración causa problemas, debe desactivarla nuevamente.

No permitir direcciones IP

Luego guardamos con Guardar , cambia a la pestaña Configuración general y presiona Aplicar nuevamente para aplicar nuestros cambios.

Configuración de prueba

Todo está configurado para conexiones HTTP y podemos probar la configuración. No es necesario configurar nada más en una computadora en la LAN. El filtro ya debería funcionar. Si visitamos una página que aparece en una de nuestras listas negras, aparecerá esta página:

Sitios bloqueados

Proxy transparente para conexiones HTTPS

Hasta ahora, el proxy transparente solo está activo para HTTP, es decir, solicitudes sin cifrar. Al comienzo de este artículo, ya señalé las dificultades para filtrar conexiones cifradas, es decir, HTTPS. En nuestro caso, activaremos un proxy transparente para HTTPS, que nos permite habilitar un filtro de URL para todas las solicitudes en el puerto 443 (HTTPS), pero con la desventaja de que no podemos (¡y no queremos!) Analizar el contenido y no podemos hacer una buena página de error. En cambio, el navegador mostrará un mensaje de error de certificado. Pero más sobre esto pronto.

Primero activamos el proxy transparente para HTTPS. Para hacer esto, abra la configuración del proxy en Servicios → Servidor Proxy Squid y seleccione la siguiente configuración en el SSL Man en la sección de Filtrado Medio:

  • Intercepción HTTPS / SSL ✔
  • Método SSL / MITM: empalme todo
  • Interfaces de intercepción SSL: LAN
  • CA: Seleccione un certificado de autoridad de certificación. Tal vez tendremos que crear uno primero. (en Sistema → Cert. Manager ).
  • Guardar todo con Guardar .

SSL MITM

Ahora todo está configurado y también podemos probar las conexiones HTTPS. Como ya se escribió, esta vez no recibimos un mensaje de error informativo como para las conexiones HTTP, sino una advertencia del navegador:

Error de certificado

Aunque este mensaje de error no es muy significativo, hemos logrado nuestro objetivo real de bloquear páginas no deseadas.

Conclusión

Ahora hemos configurado un sistema que filtra todo el tráfico de red en nuestra LAN (o WLAN). Esto bloquea las páginas que se han definido utilizando las listas negras.

Los pros y los contras de tales bloqueos tienen diferentes posiciones. En cualquier caso, es un problema que no puede y no debe resolverse 100% técnicamente, ya que se trata más bien de educar a los (jóvenes) para que puedan tratar de manera responsable con el medio "Internet". Ciertamente, no es la forma correcta de lograr este objetivo por medio de tal filtrado solo. Algunos consideran que el hecho de que los niños y los jóvenes estén "acostumbrados" a la censura y al filtrado.

Por otro lado, es especialmente útil para escuelas, bibliotecas o en el hogar si puede limitar la cantidad de contenido no apropiado. ¡Algunos países también prescriben dicho filtro por ley!

(Fuente: https://forum.pfsense.org/index.php?topic=112335.0 )


Descargue este artículo como PDF

La publicación PfSense Web Filter – Filter HTTP (S) con SquidGuard apareció primero en Open School Solutions .

Deixe uma resposta