¿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:
- Accede a tu interfaz web de pfSense (normalmente
https://192.168.1.1o similar) - Ve a System → Package Manager → Available Packages
- Busca «pfblockerng» en el cuadro de búsqueda
- Selecciona «pfBlockerNG-devel» (versión recomendada por sus mejoras constantes y mejor soporte)
- Haz clic en + Install y confirma en la siguiente pantalla
- 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:
- Ve a Firewall → pfBlockerNG (aparecerá en el menú después de instalar)
- 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:
- Ve a Services → DNS Resolver
- Asegúrate de que Enable esté marcado
- En Network Interfaces, selecciona solo tus interfaces LAN (no WAN)
- En Outgoing Network Interfaces, selecciona WAN
- Activa Query Logging para debug (opcional, pero útil al principio)
- En Advanced Settings, asegúrate de tener:
Harden DNSSEC data: ✓ - 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
- Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
- DNSBL Mode: Selecciona Unbound python mode
- CNAME Validation: ✓ ACTIVADO (crítico para evitar evasión)
- Wildcard TLD Blocking: ✓ ACTIVADO (bloquea subdominios automáticamente)
- Python Group File: Deja en
/var/db/pfblockerng/dnsbl.json(default) - Guarda cambios
- 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:
- Ve a Firewall → pfBlockerNG → DNSBL
- 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):
- Ve a System → Cert Manager → Certificates
- Crea un certificado autofirmado:
- Descriptive name:
pfBlockerNG-DNSBL - Common Name:
dnsbl.localdomain - Certificate Type:
Server Certificate
- Descriptive name:
- Guarda
- Vuelve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
- SSL Certificate: Selecciona
pfBlockerNG-DNSBL - HSTS Mode: ✓ ACTIVADO
- 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:
- En la misma página, ve a la pestaña DNSBL Feeds
- Haz clic en + Add para añadir una lista
- 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):
- Steven Black – Lista completa (ads + malware + trackers + gambling + porn)
- EasyList – Bloqueo general de publicidad
- EasyPrivacy – Bloqueo de trackers
- Cameleon – Ads y analytics
- Malware Domain List – Dominios maliciosos conocidos
- Phishing Army – Protección contra phishing
- 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:
- Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
- Busca TLD Exclusion
- En TLD Blacklist, añade (uno por línea):
xyz top click loan download stream - 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:
- Ve a Firewall → pfBlockerNG → IP
- Selecciona la pestaña IPv4
- 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:
- Ve a Firewall → pfBlockerNG → IP → IP Settings
- Firewall Rule Placement: Selecciona Floating
- Floating Rule Direction: Both (bloquea entrada y salida)
- Floating Rule Action: Quick (detiene procesamiento inmediatamente)
- 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:
- Regístrate en MaxMind (gratis) para obtener una clave de GeoLite2: https://www.maxmind.com/en/geolite2/signup
- Copia tu License Key
- En pfSense, ve a Firewall → pfBlockerNG → Settings
- Pega tu clave MaxMind en MaxMind License Key
- Guarda
Ahora configura el bloqueo:
- Ve a Firewall → pfBlockerNG → IP → GeoIP
- Haz clic en + Add
- Selecciona los países que quieres bloquear (ej: CN, RU, KP para China, Rusia, Corea del Norte)
- Action: Deny Inbound (bloquea conexiones entrantes desde esos países)
- 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):
- Ve a Firewall → Aliases
- Crea un alias
GeoIP_Whitelistcon tipo Host(s) - Añade las IPs específicas a permitir
- Guarda
- Ve a Firewall → pfBlockerNG → IP → GeoIP Settings
- Custom Whitelist: Selecciona
GeoIP_Whitelist - 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:
- Ve a Firewall → pfBlockerNG → DNSBL
- En la pestaña DNSBL Whitelist, añade dominios que NO quieres bloquear nunca
- Ejemplo:
microsoft.com,apple.com,netflix.com - Guarda
Whitelist de IPs:
- Ve a Firewall → Aliases
- Crea un alias llamado
pfB_Whitelist - Añade las IPs o rangos que nunca deben ser bloqueados
- Guarda
Whitelist automática desde la página de bloqueo
La forma más rápida de desbloquear un dominio:
- Cuando un usuario accede a un dominio bloqueado, ve una página de bloqueo
- En esa página (si está autenticado como admin), verá un botón Add to Whitelist
- Un clic añade el dominio automáticamente a la whitelist
- 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
- Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Feeds
- Haz clic en + Add
- Configura un feed para bloquear DoH:
- Name:
Block_DoH - State: ON
- Action: Unbound
- Source: Usa la lista DoH Servers (predefinida)
- Name:
- Guarda
Bloquear tráfico DoT por puerto (853):
- Ve a Firewall → Rules → LAN
- Añade regla al inicio:
- Action: Block
- Protocol: TCP/UDP
- Destination: Any
- Destination Port: 853
- Description:
Block DNS over TLS
- 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:
- Ve a Firewall → NAT → Port Forward
- Haz clic en Add
- 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
- 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:
- Ve a Firewall → pfBlockerNG → Reports
- 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:
- Ve al Dashboard de pfSense
- Haz clic en + Add Widget (esquina superior derecha)
- Selecciona:
- pfBlockerNG (estadísticas generales)
- pfBlockerNG Alerts (bloqueos recientes)
- pfBlockerNG DNSBL (top dominios bloqueados)
- 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:
- Ve a System → Advanced → Firewall & NAT
- Firewall Maximum States:
1000000(1 millón) - Firewall Maximum Table Entries:
4000000(4 millones) - Guarda y reinicia pfSense
Optimizar Unbound para pfBlockerNG
- Ve a Services → DNS Resolver → Advanced Settings
- 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 - 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:
- Ve a Firewall → pfBlockerNG → DNSBL → DNSBL Settings
- DNS Reply Logging: ❌ DESACTIVADO (si ya no estás en fase de debug)
- Ve a Firewall → pfBlockerNG → IP → IP Settings
- Suppression: ✓ ACTIVADO (reduce logs de IPs repetidas)
- Guarda
12. Alertas y Notificaciones
Notificaciones por email
- Ve a System → Advanced → Notifications
- Configura SMTP (tu servidor de correo o Gmail con app password)
- Guarda
- Ve a Firewall → pfBlockerNG → Settings → General Settings
- Email Notifications: ✓ ACTIVADO
- Email Address: Tu email
- Alert Frequency: Daily (recomendado)
- 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:
- Configura un webhook en n8n que reciba logs de pfBlockerNG
- En pfSense, ve a Status → System Logs → Settings
- Remote Logging: ✓ ACTIVADO
- Remote Syslog Server: IP de tu servidor n8n con puerto (ej:
192.168.1.100:514) - 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:
- Ve a Diagnostics → Command Prompt
- 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:
- Ve a System → Cron
- Haz clic en Add
- 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
- Minute:
- 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:
- Ve a Firewall → pfBlockerNG → Reports → DNSBL
- Busca el dominio en los logs
- Haz clic en el icono + al lado del dominio para añadirlo a whitelist automáticamente
- Alternativamente, añádelo manualmente en DNSBL Whitelist
Problema 2: «pfBlockerNG no está bloqueando nada»
Diagnóstico:
- Verifica que DNS Resolver esté activo: Status → Services
- Confirma que los clientes usan pfSense como DNS:
nslookup google.comdebe mostrar la IP de pfSense - Verifica que las listas se descargaron: Firewall → pfBlockerNG → Update (no debe haber errores en rojo)
- 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:
- Ve a System → Advanced → Firewall & NAT
- Aumenta Firewall Maximum Table Entries a
4000000(4 millones) - Guarda y reinicia el firewall
Problema 4: «Conexiones intermitentes / lentitud»
Causa: DNS está sobrecargado o hay demasiadas reglas.
Solución:
- Reduce el número de listas activas (empieza con 3-5 esenciales)
- Usa Unbound python mode en lugar de otros modos (más eficiente)
- Aumenta RAM si es posible (pfBlockerNG beneficia de más memoria)
- 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:
- Reinstala pfBlockerNG-devel desde Package Manager
- Verifica que Python3 package está instalado: System → Package Manager → Installed Packages
- 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:
- Opción A: Acepta el certificado en cada navegador (click en «Avanzado» → «Continuar al sitio»)
- Opción B: Exporta el certificado pfSense Root CA e impórtalo como confiable en cada dispositivo
- 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:
- Ve a Firewall → pfBlockerNG → Update
- Configura Cron Update para actualizar listas automáticamente (recomendado: diariamente a las 3am)
- Activa Update Notification para recibir alertas si falla
Service Watchdog (auto-restart en caso de fallo):
- Ve a Services → Service Watchdog
- Añade pfBlockerNG a la lista de servicios monitorizados
- Guarda
Backup de configuración:
Antes de cambios importantes, siempre haz backup:
- Diagnostics → Backup & Restore
- Descarga el archivo
config.xml - 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:
- Bloquea todo
youtube.comen DNSBL - Whitelist específicamente
youtubekids.com - 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:
- ✅ pfBlockerNG-devel instalado
- ✅ Python mode activado (máximo performance)
- ✅ 5-7 listas DNSBL activas (ads, malware, trackers)
- ✅ 3-5 listas IP activas (Firehol, Spamhaus, EmergingThreats)
- ✅ GeoIP configurado (si aplica a tu caso)
- ✅ DoH/DoT blocking activado
- ✅ DNS forced redirect (NAT port forward 53)
- ✅ Whitelist configurada con servicios críticos
- ✅ Límites de tabla aumentados (4M entries)
- ✅ Service Watchdog activo
- ✅ Actualizaciones automáticas (cron diario)
- ✅ Dashboard widgets añadidos
- ✅ 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:
- Monitoriza logs durante la primera semana para ajustar whitelists
- Activa Service Watchdog para auto-restart en caso de fallo
- Considera combinar con Suricata para protección IDS/IPS completa
- Configura VPN para proteger dispositivos móviles fuera de casa
- Implementa notificaciones con n8n para alertas en tiempo real
- Ajusta listas según tus necesidades (añade/quita según bloqueos falsos positivos)
Artículos relacionados que te pueden interesar:
- VPN fácil y rápida con WireGuard y pfSense
- Guía Básica de pfSense: Desde el Hardware hasta la Configuración Inicial
- Guía Completa de n8n v2: De Cero a Experto en Automatización
- Home Assistant: Automatiza tu Casa desde Cero
- Docker Compose: De 0 a Homelab Completo en 2025
¿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.
