Búsqueda de sitios web

Instale y configure pfBlockerNg para la lista negra de DNS en pfSense Firewall


En un artículo anterior se discutió la instalación de una poderosa solución de firewall basada en FreeBSD conocida como pfSense. pfSense, como se mencionó en el artículo anterior, es una solución de firewall muy potente y flexible que puede utilizar una computadora vieja que puede estar por ahí sin hacer mucho.

Este artículo hablará sobre un maravilloso paquete complementario para pfsense llamado pfBlockerNG.

pfBlockerNG es un paquete que se puede instalar en pfSense para proporcionar al administrador del firewall la capacidad de extender las capacidades del firewall más allá del firewall tradicional L2/L3/L4 con estado.

A medida que las capacidades de los atacantes y los ciberdelincuentes continúan avanzando, también deben hacerlo las defensas que se implementan para frustrar sus esfuerzos. Como ocurre con todo en el mundo de la informática, no existe una única solución que solucione todos los productos.

pfBlockerNG proporciona a pfSense la capacidad de que el firewall tome decisiones de permiso/denegación basadas en elementos como la geolocalización de una dirección IP, el nombre de dominio de un recurso o las calificaciones de Alexa de sitios web particulares.

La capacidad de restringir elementos como nombres de dominio es muy ventajosa ya que permite a los administradores frustrar los intentos de las máquinas internas de conectarse a dominios malos conocidos (en otras palabras, dominios que se sabe que tienen malware, contenido ilegal u otros). datos insidiosos).

Esta guía le explicará cómo configurar un dispositivo de firewall pfSense para usar el paquete pfBlockerNG, así como algunos ejemplos básicos de listas de bloqueo de dominios que se pueden agregar/configurar en la herramienta pfBlockerNG.

Requisitos

Este artículo hará un par de suposiciones y se basará en el artículo de instalación anterior sobre pfSense. Los supuestos serán los siguientes:

  • pfSense ya está instalado y no tiene reglas configuradas actualmente (borrón y cuenta nueva).
  • El firewall sólo tiene un puerto WAN y un puerto LAN (2 puertos).
  • El esquema de IP que se utiliza en el lado LAN es 192.168.0.0/24.

Cabe señalar que pfBlockerNG se puede configurar en un firewall pfSense que ya esté en ejecución/configurado. La razón de estas suposiciones aquí es simplemente por razones de cordura y muchas de las tareas que se completarán aún se pueden realizar en una caja pfSense que no esté limpia.

Diagrama de laboratorio

La siguiente imagen es el diagrama de laboratorio para el entorno pfSense que se utilizará en este artículo.

Instale pfBlockerNG para pfSense

Con el laboratorio listo para funcionar, ¡es hora de comenzar! El primer paso es conectarse a la interfaz web del firewall pfSense. Nuevamente, este entorno de laboratorio utiliza la red 192.168.0.0/24 con el firewall actuando como puerta de enlace con una dirección 192.168.0.1. Al utilizar un navegador web y navegar a "https://192.168.0.1", se mostrará la página de inicio de sesión de pfSense.

Algunos navegadores pueden quejarse del certificado SSL, esto es normal ya que el certificado está autofirmado por el firewall pfSense. Puede aceptar con seguridad el mensaje de advertencia y, si lo desea, puede instalar un certificado válido firmado por una CA legítima, pero está fuera del alcance de este artículo.

Después de hacer clic con éxito en "Avanzado" y luego en "Agregar excepción...", haga clic para confirmar la excepción de seguridad. Luego se mostrará la página de inicio de sesión de pfSense y permitirá que el administrador inicie sesión en el dispositivo de firewall.

Una vez que haya iniciado sesión en la página principal de pfSense, haga clic en el menú desplegable "Sistema" y luego seleccione "Administrador de paquetes".

Al hacer clic en este enlace se cambiará a la ventana del administrador de paquetes. La primera página que se cargará serán todos los paquetes instalados actualmente y estará en blanco (nuevamente, esta guía asume una instalación limpia de pfSense). Haga clic en el texto "Paquetes disponibles" para obtener una lista de paquetes instalables para pfSense.

Una vez que se cargue la página 'Paquetes disponibles', escriba 'pfblocker' en el cuadro 'Término de búsqueda' y haga clic en 'Buscar '. El primer elemento que se devuelve debe ser pfBlockerNG. Localice el botón 'Instalar' a la derecha de la descripción de pfBlockerNG y haga clic en '+' para instalar el paquete.

La página se recargará y solicitará al administrador que confirme la instalación haciendo clic en "Confirmar".

Una vez confirmado, pfSense comenzará a instalar pfBlockerNG. ¡No salgas de la página del instalador! Espere hasta que la página muestre una instalación exitosa.

Una vez que se haya completado la instalación, puede comenzar la configuración de pfBlockerNG. Sin embargo, la primera tarea que debe completarse son algunas explicaciones sobre lo que sucederá una vez que pfBlockerNG esté configurado correctamente.

Una vez configurado pfBlockerNG, las solicitudes de DNS para sitios web deben ser interceptadas por el firewall pfSense que ejecuta el software pfBlockerNG. pfBlockerNG tendrá listas actualizadas de dominios defectuosos conocidos que están asignados a una dirección IP incorrecta.

El firewall pfSense necesita interceptar las solicitudes de DNS para poder filtrar dominios defectuosos y utilizará un solucionador de DNS local conocido como UnBound. Esto significa que los clientes en la interfaz LAN deben usar el firewall pfSense como solucionador de DNS.

Si el cliente solicita un dominio que está en las listas de bloqueo de pfBlockerNG, pfBlockerNG devolverá una dirección IP falsa para el dominio. ¡Comencemos el proceso!

Configuración de pfBlockerNG para pfSense

El primer paso es habilitar el solucionador UnBound DNS en el firewall pfSense. Para hacer esto, haga clic en el menú desplegable "Servicios" y luego seleccione "DNS Resolver".

Cuando la página se vuelva a cargar, la configuración general del solucionador de DNS será configurable. Esta primera opción que debe configurarse es la casilla de verificación "Habilitar resolución de DNS".

Las siguientes configuraciones son configurar el puerto de escucha de DNS (normalmente el puerto 53), configurar las interfaces de red en las que el solucionador de DNS debe escuchar (en esta configuración, debe ser el puerto LAN y Localhost) y luego configurar el puerto de salida (debería ser WAN en esta configuración).

Una vez realizadas las selecciones, asegúrese de hacer clic en 'Guardar' en la parte inferior de la página y luego haga clic en el botón 'Aplicar cambios' que aparecerá en la parte superior de la página.

El siguiente paso es el primer paso en la configuración de pfBlockerNG específicamente. Navegue a la página de configuración de pfBlockerNG en el menú "Firewall" y luego haga clic en "pfBlockerNG".

Una vez que pfBlockerNG se haya cargado, primero haga clic en la pestaña 'DNSBL' para comenzar a configurar las listas de DNS antes de activar pfBlockerNG.

Cuando se cargue la página 'DNSBL', habrá un nuevo conjunto de menús debajo de los menús de pfBlockerNG (resaltados en verde a continuación). El primer elemento que debe abordarse es la casilla de verificación "Habilitar DNSBL" (resaltada en verde a continuación).

Esta casilla de verificación requerirá que se utilice el solucionador UnBound DNS en el cuadro pfSense para inspeccionar las solicitudes de DNS de los clientes LAN. No te preocupes. UnBound se configuró anteriormente, ¡pero será necesario marcar esta casilla! El otro elemento que debe completarse en esta pantalla es la 'IP virtual DNSBL'.

Esta IP debe estar en el rango de la red privada y no ser una IP válida en la red en la que se utiliza pfSense. Por ejemplo, una red LAN en 192.168.0.0/24 podría usar una IP de 10.0.0.1 ya que es una IP privada y no forma parte de la red LAN.

Esta IP se utilizará para recopilar estadísticas y monitorear los dominios que pfBlockerNG rechaza.

Al desplazarse hacia abajo en la página, hay algunas configuraciones más que vale la pena mencionar. La primera es la "Interfaz de escucha DNSBL". Para esta configuración, y para la mayoría de las configuraciones, esta configuración debe establecerse en "LAN".

La otra configuración es "Acción de lista" en "Configuración de firewall IP DNSBL". Esta configuración determina lo que debería suceder cuando una fuente DNSBL proporciona direcciones IP.

Las reglas de pfBlockerNG se pueden configurar para realizar cualquier cantidad de acciones, pero lo más probable es que "Denegar ambas" sea la opción deseada. Esto evitará conexiones entrantes y salientes a la IP/dominio en la fuente DNSBL.

Una vez que se hayan seleccionado los elementos, desplácese hasta la parte inferior de la página y haga clic en el botón "Guardar". Una vez que la página se recarga, es hora de configurar las listas de bloqueo de DNS que se deben utilizar.

pfBlockerNG proporciona al administrador dos opciones que se pueden configurar de forma independiente o conjunta según las preferencias del administrador. Las dos opciones son feeds manuales de otras páginas web o EasyLists.

Para leer más sobre las diferentes EasyLists, visite la página de inicio del proyecto: https://easylist.to/

Configurar pfBlockerNG EasyList

Primero analicemos y configuremos las EasyLists. La mayoría de los usuarios domésticos encontrarán que estas listas son suficientes y también las menos gravosas desde el punto de vista administrativo.

Las dos EasyLists disponibles en pfBlockerNG son 'EasyList sin ocultación de elementos' y 'EasyPrivacy'. Para utilizar una de estas listas, primero haga clic en 'DNSBL EasyList' en la parte superior de la página.

Una vez que la página se vuelva a cargar, la sección de configuración EasyList estará disponible. Será necesario configurar los siguientes ajustes:

  • Nombre del grupo DNS: elección del usuario, pero sin caracteres especiales
  • Descripción: elección del usuario, se permiten caracteres especiales
  • Estado de fuentes de EasyList: si se utiliza la lista configurada
  • EasyList Feed: se pueden agregar qué lista usar (EasyList o EasyPrivacy)
  • Encabezado/Etiqueta: elección del usuario pero sin caracteres especiales

La siguiente sección se utiliza para determinar qué partes de las listas se bloquearán. Nuevamente, todas estas son preferencias del usuario y se pueden seleccionar varias si lo desea. Las configuraciones importantes en 'DNSBL - Configuración de EasyList' son las siguientes:

  • Categorías: se pueden seleccionar las preferencias del usuario y varias
  • Acción de lista: debe configurarse en "Sin vincular" para poder inspeccionar las solicitudes de DNS.
  • Frecuencia de actualización: con qué frecuencia pfSense actualizará la lista de sitios defectuosos

Cuando la configuración de EasyList esté configurada según las preferencias del usuario, asegúrese de desplazarse hasta la parte inferior de la página y hacer clic en el botón "Guardar". Una vez que la página se vuelva a cargar, desplácese hasta la parte superior de la página y haga clic en la pestaña "Actualizar".

Una vez en la pestaña de actualización, marque el botón de opción "Recargar" y luego marque el botón de opción "Todos". Esto se ejecutará a través de una serie de descargas web para obtener las listas de bloqueo seleccionadas anteriormente en la página de configuración de EasyList.

Esto debe hacerse manualmente, de lo contrario las listas no se descargarán hasta la tarea cron programada. Cada vez que se realicen cambios (se agreguen o eliminen listas), asegúrese de ejecutar este paso.

Mire la ventana de registro a continuación para ver si hay errores. Si todo salió según lo planeado, las máquinas cliente en el lado LAN del firewall deberían poder consultar el firewall pfSense en busca de sitios defectuosos conocidos y recibir direcciones IP incorrectas a cambio. Nuevamente, las máquinas cliente deben configurarse para usar el cuadro pfsense como su resolución de DNS.

Observe en el nslookup anterior que la URL devuelve la IP falsa configurada anteriormente en las configuraciones de pfBlockerNG. Este es el resultado deseado. Esto daría como resultado que cualquier solicitud a la URL "100pour.com" se dirija a la dirección IP falsa de 10.0.0.1.

Configurar fuentes DNSBL para pfSense

A diferencia de las AdBlock EasyLists, también existe la posibilidad de utilizar otras listas negras de DNS dentro de pfBlockerNG. Hay cientos de listas que se utilizan para rastrear el comando y control de malware, spyware, adware, nodos Tor y todo tipo de otras listas útiles.

Estas listas a menudo pueden incorporarse a pfBlockerNG y también utilizarse como listas negras de DNS adicionales. Hay bastantes recursos que proporcionan listas útiles:

  • https://forum.pfsense.org/index.php?topic=114499.0
  • https://forum.pfsense.org/index.php?topic=102470.0
  • https://forum.pfsense.org/index.php?topic=86212.0

Los enlaces anteriores proporcionan hilos en el foro de pfSense donde los miembros han publicado una gran colección de las listas que utilizan. Algunas de las listas favoritas del autor incluyen las siguientes:

  • http://adaway.org/hosts.txt
  • http://www.malwaredomainlist.com/hostslist/hosts.txt
  • http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext
  • https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
  • https://gist.githubusercontent.com/BBcan177/4a8bf37c131be4803cb2/raw

Nuevamente, hay toneladas de otras listas y el autor recomienda encarecidamente que las personas busquen más listas u otras. Pero sigamos con las tareas de configuración.

El primer paso es entrar nuevamente al menú de configuración de pfBlockerNG a través de 'Firewall' -> 'pfBlockerNG' -> 'DSNBL'.

Una vez que esté nuevamente en la página de configuración de DNSBL, haga clic en el texto "DNSBL Feeds" y luego haga clic en el botón "Agregar" una vez que se actualice la página.

El botón Agregar permitirá al administrador agregar más listas de direcciones IP o nombres DNS incorrectos al software pfBlockerNG (los dos elementos que ya están en la lista son de prueba del autor). El botón Agregar lleva al administrador a una página donde se pueden agregar listas DNSBL al firewall.

Las configuraciones importantes en esta salida son las siguientes:

  • Nombre del grupo DNS: usuario elegido
  • Descripción: útil para mantener los grupos organizados
  • Configuración de DNSBL: estas son las listas reales
    • Estado: si esa fuente se utiliza o no y cómo se obtiene
    • Fuente: el enlace/fuente de la Lista Negra de DNS
    • Encabezado/Etiqueta: elección del usuario; sin caracteres especiales
  • Acción de lista: establecer como independiente
  • Frecuencia de actualización: con qué frecuencia se debe actualizar la lista.

Una vez que se hayan establecido estas configuraciones, haga clic en el botón guardar en la parte inferior de la página. Al igual que con cualquier cambio en pfBlockerNG, los cambios entrarán en vigencia en el siguiente intervalo de cron programado o el administrador puede forzar manualmente una recarga navegando a la pestaña 'Actualizar', haga clic en 'Recargar<' y luego haga clic en el botón de opción 'Todos'. Una vez seleccionados, haga clic en el botón "Ejecutar".

Mire la ventana de registro a continuación para ver si hay errores. Si todo salió según lo planeado, pruebe que las listas estén funcionando simplemente intentando realizar una búsqueda ns desde un cliente en el lado de la LAN a uno de los dominios enumerados en uno de los archivos de texto utilizados en la configuración DNSBL.

Como se puede ver en el resultado anterior, el dispositivo pfSense devuelve la dirección IP virtual que se configuró en pfBlockerNG como la IP incorrecta para los dominios de la lista negra.

En este punto, el administrador podría continuar ajustando las listas agregando más listas o creando listas personalizadas de dominio/IP. pfBlockerNG continuará redirigiendo estos dominios restringidos a una dirección IP falsa.

Gracias por leer este artículo sobre pfBlockerNG. Muestre su agradecimiento o apoyo al software pfSense y a pfBlockerNG contribuyendo de cualquier manera posible al desarrollo continuo de estos maravillosos productos. Como siempre, ¡comente a continuación cualquier sugerencia o pregunta!