¿Cansado de ver anuncios en todos tus dispositivos? ¿Preocupado por malware, trackers y amenazas que acechan en internet? pfBlockerNG convierte tu firewall pfSense en un guardian de red nivel empresarial que bloquea amenazas antes de que lleguen a cualquier dispositivo de tu casa u oficina.

En esta guía completa aprenderás a instalar, configurar y dominar pfBlockerNG paso a paso. Desde el bloqueo básico de anuncios hasta técnicas avanzadas de GeoIP blocking, listas personalizadas y troubleshooting. Todo con ejemplos reales y valores específicos que puedes copiar y pegar.

¿Qué es pfBlockerNG y por qué lo necesitas?

pfBlockerNG es un paquete para pfSense que actúa como tu primera línea de defensa contra amenazas online. A diferencia de los ad-blockers de navegador que solo protegen un dispositivo, pfBlockerNG protege toda tu red desde el firewall.

Capacidades principales:

  • DNSBL (DNS-based Blacklist): Bloquea dominios maliciosos, trackers y publicidad a nivel DNS
  • IP Blocking: Bloquea rangos de IPs asociados con malware, botnets y ataques
  • GeoIP Blocking: Bloquea países completos (útil para bloquear tráfico de zonas con alta actividad de ataques)
  • Listas personalizadas: Crea tus propias reglas de bloqueo/permitir
  • Logs detallados: Monitoriza qué se está bloqueando y por qué
  • Python Mode: Modo ultra-eficiente que reduce consumo de recursos dramáticamente
  • TLD Blocking: Bloquea TLDs completos (.xyz, .top frecuentemente usados para spam)

Ventajas sobre otros métodos:

  • ✅ Protección a nivel de red (todos los dispositivos protegidos automáticamente)
  • ✅ No requiere instalar nada en cada dispositivo
  • ✅ Funciona con Smart TVs, IoT, tablets, móviles
  • ✅ Bloquea amenazas antes de que descarguen datos
  • ✅ Gratis y open source
  • ✅ Integración nativa con pfSense (sin hardware adicional)
  • ✅ Actualizaciones automáticas de listas

pfBlockerNG vs Pi-hole vs AdGuard Home: ¿Cuál elegir?

Antes de empezar, veamos cómo se compara pfBlockerNG con otras soluciones populares:

Característica pfBlockerNG Pi-hole AdGuard Home
Requisitos hardware pfSense existente Raspberry Pi / VM Docker / VM / Binario
Bloqueo DNS
Bloqueo por IP/firewall ✅ (nativo)
GeoIP Blocking
Interfaz web ✅ (integrada pfSense) ✅ (moderna) ✅ (más moderna)
Facilidad instalación Media (requiere pfSense) Fácil Muy fácil
Consumo recursos Medio (Python mode: bajo) Muy bajo Bajo
DoH/DoT support ✅ (con configuración) ✅ (nativo)
Mejor para Usuarios pfSense, seguridad avanzada Simplicidad, bajo consumo Setup rápido, interfaz moderna

Veredicto: Si ya tienes pfSense, pfBlockerNG es tu mejor opción porque aprovecha tu firewall existente y ofrece capacidades que Pi-hole y AdGuard no tienen (GeoIP, bloqueo por IP). Si necesitas algo standalone y simple, Pi-hole es excelente. AdGuard Home es el más moderno en interfaz.

1. Instalación de pfBlockerNG

Requisitos previos:

  • pfSense instalado y funcionando (versión 2.6+ recomendada)
  • Acceso a la interfaz web de administración
  • Mínimo 2GB RAM recomendado (pfBlockerNG consume memoria para las listas)
  • Conexión a internet para descargar listas
  • Espacio en disco: 500MB mínimo para listas

Pasos de instalación:

  1. Accede a tu interfaz web de pfSense (normalmente https://192.168.1.1 o similar)
  2. Ve a System → Package Manager → Available Packages
  3. Busca «pfblockerng» en el cuadro de búsqueda
  4. Selecciona «pfBlockerNG-devel» (versión recomendada por sus mejoras constantes y mejor soporte)
  5. Haz clic en + Install y confirma en la siguiente pantalla
  6. Espera 2-5 minutos mientras se descarga e instala el paquete

Nota importante: Usa pfBlockerNG-devel en lugar de pfBlockerNG (legacy), ya que la versión devel tiene mejor rendimiento, más características y recibe actualizaciones activas.

2. Configuración Inicial con el Wizard

Una vez instalado, pfBlockerNG te guiará con un wizard de configuración. Aquí te explico cada paso con valores recomendados:

  1. Ve a Firewall → pfBlockerNG (aparecerá en el menú después de instalar)
  2. Si es la primera vez, verás el Setup Wizard. Haz clic en Next

Configuración de Interfaces

  • Inbound Firewall Interface: Selecciona tu interfaz WAN (por donde entra el tráfico de internet)
  • Outbound Firewall Interface: Selecciona LAN (o todas tus interfaces internas si tienes varias)
  • Floating Rules: Déjalo en disabled por ahora (lo explicaremos en detalle más adelante)

Configuración de DNSBL (Blocker de dominios)

Esta es la parte más importante. Aquí configuras cómo pfBlockerNG bloqueará dominios maliciosos:

  • DNSBL Virtual IP: Asigna una IP que NO esté en uso en tu red. Ejemplo: 10.10.10.1 (asegúrate de que no existe ningún dispositivo con esa IP)
  • DNSBL Listening Port: Deja el puerto por defecto 8081
  • DNSBL SSL Listening Port: Deja 8443
  • Enable IPv6: Activa si tu red usa IPv6
  • DNSBL Whitelist: Activa para poder hacer excepciones después

Haz clic en Finish. pfBlockerNG descargará automáticamente listas básicas de bloqueo y comenzará a funcionar.

3. Configuración de DNS Resolver (Unbound)

Para que pfBlockerNG funcione correctamente, necesitas configurar el DNS Resolver de pfSense:

  1. Ve a Services → DNS Resolver
  2. Asegúrate de que Enable esté marcado
  3. En Network Interfaces, selecciona solo tus interfaces LAN (no WAN)
  4. En Outgoing Network Interfaces, selecciona WAN
  5. Activa Query Logging para debug (opcional, pero útil al principio)
  6. En Advanced Settings, asegúrate de tener: Harden DNSSEC data: ✓
  7. Guarda y aplica cambios

Importante: Asegúrate de que tus clientes DHCP usen pfSense como servidor DNS (debería estar configurado por defecto en Services → DHCP Server).

4. Python Mode: El secreto del performance

Python Mode es LA configuración que marca la diferencia entre un pfBlockerNG que funciona bien y uno excepcional. Aquí está el detalle técnico:

¿Qué es Python Mode?

Es un modo de operación donde pfBlockerNG usa un script Python integrado con Unbound para manejar las consultas DNS bloqueadas, en lugar de las reglas tradicionales de DNS.

Ventajas del Python Mode:

  • 90% menos uso de memoria: No carga todas las listas en memoria de Unbound
  • Arranque más rápido: Unbound inicia en segundos vs minutos
  • Actualizaciones sin reinicio: Cambios en listas no requieren reiniciar Unbound
  • Soporta listas enormes: Millones de dominios sin problemas
  • CNAME validation: Bloquea dominios que redirigen a otros bloqueados

Activar Python Mode correctamente

  1. Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
  2. DNSBL Mode: Selecciona Unbound python mode
  3. CNAME Validation: ✓ ACTIVADO (crítico para evitar evasión)
  4. Wildcard TLD Blocking: ✓ ACTIVADO (bloquea subdominios automáticamente)
  5. Python Group File: Deja en /var/db/pfblockerng/dnsbl.json (default)
  6. Guarda cambios
  7. Ve a Firewall → pfBlockerNG → Update y haz clic en Reload

Verificar que Python Mode está funcionando:

# Desde Diagnostics → Command Prompt, ejecuta:
ps aux | grep python | grep dnsbl

# Deberías ver:
# unbound  12345  python3 /usr/local/pkg/pfblockerng/dnsbl.py

Si no ves nada, revisa Status → System Logs → System para errores de pfBlockerNG.

5. Configuración Avanzada de DNSBL

Ahora vamos a configurar DNSBL en detalle para máxima efectividad:

  1. Ve a Firewall → pfBlockerNG → DNSBL
  2. En la pestaña DNSBL, configura:
  • Enable DNSBL: ✓ (activado)
  • DNSBL Mode: Selecciona Unbound python mode (usa menos memoria y es más rápido)
  • DNSBL Blocking: ✓ (activado)
  • Wildcard Blocking TLD: ✓ (bloquea subdominios automáticamente)
  • HSTS Mode: ✓ (fuerza HTTPS en la página de bloqueo)
  • CNAME Validation: ✓ (bloquea dominios que redirigen a otros bloqueados)
  • DNS Reply Logging: ✓ (útil para troubleshooting)

Haz clic en Save DNSBL Settings.

Configurar página de bloqueo personalizada con SSL

Por defecto, la página de bloqueo usa HTTP. Para usar HTTPS (más seguro y evita advertencias de navegador):

  1. Ve a System → Cert Manager → Certificates
  2. Crea un certificado autofirmado:
    • Descriptive name: pfBlockerNG-DNSBL
    • Common Name: dnsbl.localdomain
    • Certificate Type: Server Certificate
  3. Guarda
  4. Vuelve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
  5. SSL Certificate: Selecciona pfBlockerNG-DNSBL
  6. HSTS Mode: ✓ ACTIVADO
  7. Guarda y recarga

Ahora la página de bloqueo usará HTTPS y no mostrará advertencias (después de aceptar el certificado una vez).

Añadir Listas de Bloqueo de Dominios

Ahora añadimos listas de dominios a bloquear. pfBlockerNG usa feeds públicos actualizados constantemente:

  1. En la misma página, ve a la pestaña DNSBL Feeds
  2. Haz clic en + Add para añadir una lista
  3. Configura cada feed con:

Ejemplo de configuración para EasyList (bloqueo de ads):

  • Name: EasyList_Ads
  • State: ON
  • Action: Unbound
  • Logging: Enable
  • Update Frequency: Once a day
  • Source: Selecciona EasyList de la lista predefinida

Listas recomendadas para añadir (en orden de prioridad):

  1. Steven Black – Lista completa (ads + malware + trackers + gambling + porn)
  2. EasyList – Bloqueo general de publicidad
  3. EasyPrivacy – Bloqueo de trackers
  4. Cameleon – Ads y analytics
  5. Malware Domain List – Dominios maliciosos conocidos
  6. Phishing Army – Protección contra phishing
  7. URLhaus – Malware distribution URLs

Cada una añádela como un feed separado siguiendo la configuración del ejemplo anterior.

Una vez añadidas todas las listas, haz clic en Save y luego en Update (botón arriba) para descargar todas las listas.

TLD Blocking: Bloquear extensiones de dominio completas

Algunas extensiones de dominio (.xyz, .top, .click) son usadas masivamente para spam y phishing. Puedes bloquearlas completamente:

  1. Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
  2. Busca TLD Exclusion
  3. En TLD Blacklist, añade (uno por línea):
    xyz
    top
    click
    loan
    download
    stream
  4. Guarda

Advertencia: Solo bloquea TLDs si estás seguro. Algunos servicios legítimos pueden usar .xyz o .top.

6. Bloqueo de IPs (IPv4/IPv6)

Además de bloquear dominios, pfBlockerNG puede bloquear rangos de IPs asociadas con amenazas:

  1. Ve a Firewall → pfBlockerNG → IP
  2. Selecciona la pestaña IPv4
  3. Haz clic en + Add para crear una lista nueva

Configuración recomendada para bloquear IPs maliciosas:

  • Name: Firehol_Level1
  • State: ON
  • Action: Deny Both (bloquea tráfico entrante y saliente)
  • Update Frequency: Once a day
  • Source: Añade la URL: https://iplists.firehol.org/files/firehol_level1.netset

Otras listas recomendadas:

  • Spamhaus DROP: https://www.spamhaus.org/drop/drop.txt
  • EmergingThreats: https://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txt
  • Talos IP Blacklist: https://www.talosintelligence.com/documents/ip-blacklist

Guarda y haz clic en Update para descargar todas las listas de IPs.

Floating Rules vs Interface Rules: ¿Cuál usar?

Esta es una de las decisiones más importantes en pfBlockerNG:

Aspecto Interface Rules Floating Rules
Aplicación Por interfaz (WAN, LAN, etc) Global (todas las interfaces)
Prioridad Baja (procesadas después) Alta (procesadas primero)
Complejidad Simple, fácil de entender Más complejo, más control
Performance Ligeramente más lento Más rápido
Casos de uso Redes simples, homelab Múltiples VLANs, redes complejas
Recomendado para Principiantes Avanzados

Recomendación: Usa Interface Rules si tienes una red simple (WAN + LAN). Usa Floating Rules si tienes múltiples VLANs, DMZ, o necesitas control granular de qué tráfico bloquear en cada dirección.

Activar Floating Rules:

  1. Ve a Firewall → pfBlockerNG → IP → IP Settings
  2. Firewall Rule Placement: Selecciona Floating
  3. Floating Rule Direction: Both (bloquea entrada y salida)
  4. Floating Rule Action: Quick (detiene procesamiento inmediatamente)
  5. Guarda y aplica

7. GeoIP Blocking (Bloquear países enteros)

Si tu negocio o uso personal no requiere conexiones desde ciertos países, GeoIP Blocking es extremadamente efectivo:

  1. Regístrate en MaxMind (gratis) para obtener una clave de GeoLite2: https://www.maxmind.com/en/geolite2/signup
  2. Copia tu License Key
  3. En pfSense, ve a Firewall → pfBlockerNG → Settings
  4. Pega tu clave MaxMind en MaxMind License Key
  5. Guarda

Ahora configura el bloqueo:

  1. Ve a Firewall → pfBlockerNG → IP → GeoIP
  2. Haz clic en + Add
  3. Selecciona los países que quieres bloquear (ej: CN, RU, KP para China, Rusia, Corea del Norte)
  4. Action: Deny Inbound (bloquea conexiones entrantes desde esos países)
  5. Guarda y actualiza

Consejo: No bloquees países de donde esperas tráfico legítimo (ej: si usas servicios cloud de esos países).

GeoIP Whitelist: Excepciones por IP

Si bloqueas un país pero necesitas permitir IPs específicas de ese país (ej: servidor VPS en China):

  1. Ve a Firewall → Aliases
  2. Crea un alias GeoIP_Whitelist con tipo Host(s)
  3. Añade las IPs específicas a permitir
  4. Guarda
  5. Ve a Firewall → pfBlockerNG → IP → GeoIP Settings
  6. Custom Whitelist: Selecciona GeoIP_Whitelist
  7. Guarda y aplica

8. Listas de Permisos (Whitelist)

Inevitablemente, algún servicio legítimo será bloqueado. Aquí es donde usas la whitelist:

Whitelist de Dominios:

  1. Ve a Firewall → pfBlockerNG → DNSBL
  2. En la pestaña DNSBL Whitelist, añade dominios que NO quieres bloquear nunca
  3. Ejemplo: microsoft.com, apple.com, netflix.com
  4. Guarda

Whitelist de IPs:

  1. Ve a Firewall → Aliases
  2. Crea un alias llamado pfB_Whitelist
  3. Añade las IPs o rangos que nunca deben ser bloqueados
  4. Guarda

Whitelist automática desde la página de bloqueo

La forma más rápida de desbloquear un dominio:

  1. Cuando un usuario accede a un dominio bloqueado, ve una página de bloqueo
  2. En esa página (si está autenticado como admin), verá un botón Add to Whitelist
  3. Un clic añade el dominio automáticamente a la whitelist
  4. Alternativa sin autenticación: Ve a Firewall → pfBlockerNG → Reports → DNSBL, busca el dominio bloqueado y haz clic en el icono +

9. Protección contra evasión de DNS (DoH/DoT Blocking)

Los navegadores modernos (Chrome, Firefox) pueden usar DNS sobre HTTPS (DoH) o DNS sobre TLS (DoT) para evitar tu DNS local. Esto bypasea completamente pfBlockerNG.

Detectar y bloquear DoH/DoT

  1. Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Feeds
  2. Haz clic en + Add
  3. Configura un feed para bloquear DoH:
    • Name: Block_DoH
    • State: ON
    • Action: Unbound
    • Source: Usa la lista DoH Servers (predefinida)
  4. Guarda

Bloquear tráfico DoT por puerto (853):

  1. Ve a Firewall → Rules → LAN
  2. Añade regla al inicio:
    • Action: Block
    • Protocol: TCP/UDP
    • Destination: Any
    • Destination Port: 853
    • Description: Block DNS over TLS
  3. Guarda y aplica

Forzar DNS local con Port Forwarding:

Redirige todo el tráfico DNS saliente (puerto 53) a pfSense, para que dispositivos con DNS hardcoded usen tu DNS local:

  1. Ve a Firewall → NAT → Port Forward
  2. Haz clic en Add
  3. Configura:
    • Interface: LAN
    • Protocol: TCP/UDP
    • Source: LAN net
    • Destination: !LAN address (NOT LAN address)
    • Destination Port: 53
    • Redirect target IP: 127.0.0.1
    • Redirect target port: 53
    • Description: Force DNS to pfSense
  4. Guarda y aplica

Ahora TODOS los dispositivos en tu LAN usarán pfSense como DNS, incluso si tienen configurado manualmente 8.8.8.8 o 1.1.1.1.

10. Monitorización y Logs

Para ver qué está bloqueando pfBlockerNG:

  1. Ve a Firewall → pfBlockerNG → Reports
  2. Aquí verás:
    • DNSBL: Dominios bloqueados por consultas DNS
    • IP Block: IPs bloqueadas por reglas de firewall
    • GeoIP: Conexiones bloqueadas por país

Cómo interpretar los logs:

  • Si ves muchos bloqueos de un dominio legítimo → añádelo a whitelist
  • Si ves intentos repetidos desde una IP → está funcionando correctamente
  • Revisa logs regularmente las primeras semanas para afinar las reglas

Dashboard widgets personalizados

Añade widgets de pfBlockerNG a tu dashboard principal para monitorización rápida:

  1. Ve al Dashboard de pfSense
  2. Haz clic en + Add Widget (esquina superior derecha)
  3. Selecciona:
    • pfBlockerNG (estadísticas generales)
    • pfBlockerNG Alerts (bloqueos recientes)
    • pfBlockerNG DNSBL (top dominios bloqueados)
  4. Guarda

Ahora verás estadísticas en tiempo real cada vez que accedas a pfSense.

11. Performance Tuning Avanzado

Aumentar límites de tabla de firewall

Si usas muchas listas de IPs, puedes recibir errores «table full». Aumenta los límites:

  1. Ve a System → Advanced → Firewall & NAT
  2. Firewall Maximum States: 1000000 (1 millón)
  3. Firewall Maximum Table Entries: 4000000 (4 millones)
  4. Guarda y reinicia pfSense

Optimizar Unbound para pfBlockerNG

  1. Ve a Services → DNS Resolver → Advanced Settings
  2. Añade en Custom Options:
    num-threads: 4
    msg-cache-size: 50m
    rrset-cache-size: 100m
    cache-max-ttl: 86400
    cache-min-ttl: 300
    outgoing-num-tcp: 100
    incoming-num-tcp: 100
    
  3. Guarda y aplica

Explicación:

  • num-threads: Usa 4 threads (ajusta según tus CPU cores)
  • msg-cache-size / rrset-cache-size: Cachés más grandes = menos consultas repetidas
  • cache-max-ttl: Mantiene entradas en caché 24h (reduce lookups externos)
  • outgoing/incoming-num-tcp: Más conexiones simultáneas

Reducir logging para mejor performance

Si tienes alta carga, desactiva logs innecesarios:

  1. Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
  2. DNS Reply Logging: ❌ DESACTIVADO (si ya no estás en fase de debug)
  3. Ve a Firewall → pfBlockerNG → IP → IP Settings
  4. Suppression: ✓ ACTIVADO (reduce logs de IPs repetidas)
  5. Guarda

12. Alertas y Notificaciones

Notificaciones por email

  1. Ve a System → Advanced → Notifications
  2. Configura SMTP (tu servidor de correo o Gmail con app password)
  3. Guarda
  4. Ve a Firewall → pfBlockerNG → Settings → General Settings
  5. Email Notifications: ✓ ACTIVADO
  6. Email Address: Tu email
  7. Alert Frequency: Daily (recomendado)
  8. Guarda

Integración con n8n para notificaciones avanzadas

Puedes enviar logs de pfBlockerNG a n8n para procesarlos y recibir notificaciones en Telegram/Discord/Slack cuando se detecten amenazas importantes:

  1. Configura un webhook en n8n que reciba logs de pfBlockerNG
  2. En pfSense, ve a Status → System Logs → Settings
  3. Remote Logging: ✓ ACTIVADO
  4. Remote Syslog Server: IP de tu servidor n8n con puerto (ej: 192.168.1.100:514)
  5. En n8n, crea un workflow que filtre eventos de pfBlockerNG y envíe notificaciones

Para una guía completa de integración, consulta nuestra Guía Completa de n8n v2.

13. Scripts de Mantenimiento

Script de limpieza automática de logs viejos

Para evitar que los logs de pfBlockerNG llenen el disco:

  1. Ve a Diagnostics → Command Prompt
  2. Ejecuta:
    # Eliminar logs de DNSBL mayores a 7 días
    find /var/log/pfblockerng/ -name "*.log" -type f -mtime +7 -delete
    
    # Eliminar archivos temporales
    rm -f /var/db/pfblockerng/*.tmp
    

Automatizar con cron:

  1. Ve a System → Cron
  2. Haz clic en Add
  3. Configura:
    • Minute: 0
    • Hour: 3
    • Day of month: *
    • Month: *
    • Day of week: 0 (domingo)
    • Command: find /var/log/pfblockerng/ -name "*.log" -type f -mtime +7 -delete
  4. Guarda

Forzar actualización manual de todas las listas

# Desde Diagnostics → Command Prompt
/usr/local/bin/php -f /usr/local/pkg/pfblockerng/pfblockerng.php update

14. Troubleshooting: Problemas Comunes

Problema 1: «No puedo acceder a [sitio web]»

Causa: El dominio está en una lista de bloqueo.

Solución:

  1. Ve a Firewall → pfBlockerNG → Reports → DNSBL
  2. Busca el dominio en los logs
  3. Haz clic en el icono + al lado del dominio para añadirlo a whitelist automáticamente
  4. Alternativamente, añádelo manualmente en DNSBL Whitelist

Problema 2: «pfBlockerNG no está bloqueando nada»

Diagnóstico:

  1. Verifica que DNS Resolver esté activo: Status → Services
  2. Confirma que los clientes usan pfSense como DNS: nslookup google.com debe mostrar la IP de pfSense
  3. Verifica que las listas se descargaron: Firewall → pfBlockerNG → Update (no debe haber errores en rojo)
  4. Revisa logs: Status → System Logs → System (busca errores de pfBlockerNG)

Problema 3: «Error de memoria / Tabla llena»

Causa: Las listas de IPs son muy grandes para la memoria asignada.

Solución:

  1. Ve a System → Advanced → Firewall & NAT
  2. Aumenta Firewall Maximum Table Entries a 4000000 (4 millones)
  3. Guarda y reinicia el firewall

Problema 4: «Conexiones intermitentes / lentitud»

Causa: DNS está sobrecargado o hay demasiadas reglas.

Solución:

  1. Reduce el número de listas activas (empieza con 3-5 esenciales)
  2. Usa Unbound python mode en lugar de otros modos (más eficiente)
  3. Aumenta RAM si es posible (pfBlockerNG beneficia de más memoria)
  4. Deshabilita DNS Reply Logging si ya no lo necesitas

Problema 5: «Python mode no funciona / Script not found»

Diagnóstico:

# Verifica que el script Python existe
ls -la /usr/local/pkg/pfblockerng/dnsbl.py

# Verifica que Python3 está instalado
python3 --version

Solución:

  1. Reinstala pfBlockerNG-devel desde Package Manager
  2. Verifica que Python3 package está instalado: System → Package Manager → Installed Packages
  3. Si falta, instálalo: System → Package Manager → Available Packages → busca «python3» e instala

Problema 6: «Página de bloqueo muestra error SSL»

Causa: Certificado autofirmado no es confiado por el navegador.

Solución:

  1. Opción A: Acepta el certificado en cada navegador (click en «Avanzado» → «Continuar al sitio»)
  2. Opción B: Exporta el certificado pfSense Root CA e impórtalo como confiable en cada dispositivo
  3. Opción C: Desactiva HSTS mode para usar HTTP en la página de bloqueo (menos seguro pero sin advertencias)

15. Optimización y Mantenimiento

Automatización de actualizaciones:

  1. Ve a Firewall → pfBlockerNG → Update
  2. Configura Cron Update para actualizar listas automáticamente (recomendado: diariamente a las 3am)
  3. Activa Update Notification para recibir alertas si falla

Service Watchdog (auto-restart en caso de fallo):

  1. Ve a Services → Service Watchdog
  2. Añade pfBlockerNG a la lista de servicios monitorizados
  3. Guarda

Backup de configuración:

Antes de cambios importantes, siempre haz backup:

  1. Diagnostics → Backup & Restore
  2. Descarga el archivo config.xml
  3. Guárdalo en un lugar seguro

16. Casos de Uso Reales

Escenario 1: Hogar con niños

  • Activa listas de bloqueo de contenido adulto (Steven Black – Porn extension)
  • Bloquea trackers y ads para proteger privacidad
  • Usa whitelist para sitios educativos específicos
  • Configura notificaciones para detectar intentos de acceso a contenido bloqueado

Escenario 2: Oficina pequeña

  • Bloquea países de donde no esperas tráfico (reduce ataques en un 70-80%)
  • Usa listas de malware e IPs maliciosas
  • Monitoriza logs para detectar comportamiento sospechoso de dispositivos internos
  • Implementa DoH/DoT blocking para evitar bypass de políticas
  • Whitelist de IPs para servicios cloud críticos (Office 365, AWS, GCP)

Escenario 3: Homelab / servidor casero

  • GeoIP blocking agresivo (solo tu país + servicios cloud específicos)
  • Listas de IPs de ataques SSH/RDP (Firehol level 1, EmergingThreats)
  • Combina con fail2ban para bloqueo dinámico de IPs atacantes
  • Floating rules para priorizar bloqueos globales
  • Python mode para mínimo impacto en recursos

Escenario 4: Red con IoT devices

  • VLAN separada para IoT con reglas pfBlockerNG específicas
  • Bloquea todo tráfico saliente a China (mayoría de IoT phones home a servidores chinos)
  • Whitelist solo los dominios necesarios para funcionamiento de cada device (ej: Alexa necesita amazon.com, device-metrics-us.amazon.com)
  • Logs agresivos en esa VLAN para detectar comportamiento anómalo

17. Integración con Otros Servicios

pfBlockerNG + Suricata/Snort:

Para protección máxima, combina pfBlockerNG (bloqueo preventivo) con Suricata (detección de intrusiones):

  • pfBlockerNG bloquea amenazas conocidas antes de que lleguen
  • Suricata detecta comportamientos sospechosos que pasan el primer filtro
  • Configura Suricata para leer las listas de pfBlockerNG y viceversa

pfBlockerNG + Squid Proxy:

Combina bloqueo DNS con proxy HTTP para control total:

  • pfBlockerNG bloquea a nivel DNS (rápido, ligero)
  • Squid inspecciona contenido HTTP/HTTPS (más lento pero más control)
  • Usa pfBlockerNG para bloqueo general y Squid para políticas específicas por usuario/grupo

Notificaciones con n8n:

Puedes integrar pfBlockerNG con n8n para recibir alertas en Telegram/Discord cuando se bloqueen amenazas importantes. Consulta nuestra Guía Completa de n8n para configurar workflows de monitorización.

Preguntas Frecuentes (FAQ)

¿pfBlockerNG ralentiza mi conexión a internet?

No notablemente. El bloqueo DNS añade menos de 1-2ms de latencia. Si tienes suficiente RAM (2GB+) y usas Unbound python mode, el impacto es imperceptible.

¿Puedo usar pfBlockerNG y Pi-hole al mismo tiempo?

No es recomendable. Ambos hacen lo mismo (bloqueo DNS) y tendrías dos puntos de fallo. Elige uno: pfBlockerNG si ya tienes pfSense, Pi-hole si quieres algo standalone más simple.

¿Cómo desbloqueo un sitio rápidamente?

Desde cualquier dispositivo de tu red, ve a http://10.10.10.1:8081 (o tu VIP configurada). Verás la página de bloqueo con opciones para añadir a whitelist temporalmente.

¿Las listas de bloqueo se actualizan automáticamente?

Sí, si configuraste la frecuencia de actualización en cada feed (recomendado: una vez al día). Puedes forzar actualización manual en Firewall → pfBlockerNG → Update.

¿Qué pasa si bloqueo algo importante por error?

pfSense guarda backups automáticos de configuración. Ve a Diagnostics → Backup & Restore → Config History y restaura una versión anterior. Alternativamente, simplemente deshabilita la lista problemática y guarda.

¿Cuánta RAM necesita pfBlockerNG?

Mínimo 1GB, recomendado 2GB+. Con 4GB puedes usar todas las listas sin problemas. El consumo depende del número de entradas en tus listas (millones de dominios/IPs).

¿Funciona con dispositivos móviles fuera de casa?

Sí, si configuras una VPN (WireGuard o OpenVPN) para conectarte a tu red desde fuera. Así tus dispositivos móviles usarán el DNS de pfSense y estarán protegidos. Consulta nuestra guía de WireGuard con pfSense.

¿Puedo ver estadísticas de cuánto está bloqueando?

Sí, en Firewall → pfBlockerNG → Reports verás gráficos y tablas con:

  • Top dominios bloqueados
  • Top IPs bloqueadas
  • Bloqueos por país
  • Evolución temporal de bloqueos

¿Qué es mejor: Python mode u otros modos?

Python mode es superior en casi todos los casos: usa 90% menos memoria, inicia más rápido, y soporta listas más grandes. Solo usa otros modos si tienes problemas específicos de compatibilidad (extremadamente raro).

¿Cómo sé si Python mode está funcionando?

Ve a Diagnostics → Command Prompt y ejecuta: ps aux | grep python | grep dnsbl. Si ves un proceso, está funcionando. También en Firewall → pfBlockerNG → Reports verás estadísticas de DNSBL solo si está activo.

¿Puedo bloquear YouTube pero permitir YouTube Kids?

Sí, pero es complicado porque comparten dominios. La mejor opción es:

  1. Bloquea todo youtube.com en DNSBL
  2. Whitelist específicamente youtubekids.com
  3. Para control más granular, usa Squid proxy con filtrado de contenido

Conclusión y Próximos Pasos

pfBlockerNG transforma tu pfSense en una fortaleza digital que bloquea amenazas antes de que lleguen a tu red. Con esta guía has aprendido desde la instalación básica hasta configuraciones avanzadas de Python mode, GeoIP blocking, protección contra evasión DNS, troubleshooting y optimización.

Checklist de implementación completa:

  1. ✅ pfBlockerNG-devel instalado
  2. ✅ Python mode activado (máximo performance)
  3. ✅ 5-7 listas DNSBL activas (ads, malware, trackers)
  4. ✅ 3-5 listas IP activas (Firehol, Spamhaus, EmergingThreats)
  5. ✅ GeoIP configurado (si aplica a tu caso)
  6. ✅ DoH/DoT blocking activado
  7. ✅ DNS forced redirect (NAT port forward 53)
  8. ✅ Whitelist configurada con servicios críticos
  9. ✅ Límites de tabla aumentados (4M entries)
  10. ✅ Service Watchdog activo
  11. ✅ Actualizaciones automáticas (cron diario)
  12. ✅ Dashboard widgets añadidos
  13. ✅ Backup de configuración guardado

Métricas de éxito esperadas después de 1 semana:

  • 10,000-50,000 dominios bloqueados (depende del tamaño de tu red)
  • 100-1,000 IPs bloqueadas por día (tráfico malicioso)
  • Reducción de 70-80% en intentos de conexión a servidores de ads/trackers
  • Latencia DNS < 5ms (prueba con dig google.com @192.168.1.1)
  • Uso de CPU < 5% en pfSense (Python mode es eficiente)

Próximos pasos recomendados:

  1. Monitoriza logs durante la primera semana para ajustar whitelists
  2. Activa Service Watchdog para auto-restart en caso de fallo
  3. Considera combinar con Suricata para protección IDS/IPS completa
  4. Configura VPN para proteger dispositivos móviles fuera de casa
  5. Implementa notificaciones con n8n para alertas en tiempo real
  6. Ajusta listas según tus necesidades (añade/quita según bloqueos falsos positivos)

Artículos relacionados que te pueden interesar:

¿Te ha resultado útil esta guía? ¡Compártela y ayuda a otros a proteger sus redes! Si tienes dudas o quieres compartir tu experiencia con pfBlockerNG, déjanos un comentario.

Por ziru

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
El Diario IA
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.