June 24, 2026
Convierte tu Raspberry Pi en el guardián de tu red doméstica
Pi-hole + Unbound + CrowdSec: DNS privado, sin anuncios y con detección de intrusos

By Aaron Hinojosa
4 min read
Hace unos días, un dispositivo de un familiar se vio comprometido. Nada catastrófico, pero sí suficiente para hacerme replantear qué tan expuesta estaba la red de casa y lo inrónico que es que seamos expertos en computación con redes domésticas expuestas en la mayoría de los casos
¿Por qué estas tres herramientas?
Antes de entrar en comandos, vale la pena entender qué hace cada pieza y por qué importa.
Unbound — Tu propio resolver DNS
Normalmente, cuando tu dispositivo pregunta "¿dónde está google.com?", esa consulta va a los servidores DNS de tu ISP o de Google. Estos DNS saben exactamente qué sitios visitas y cuándo, lo cual es un nivel de exposición que mucha gente ignora.
Unbound resuelve eso convirtiéndote en tu propio DNS: en lugar de delegar esa pregunta a un tercero, consulta directamente a los servidores raíz de internet, lo que resulta en privacidad real y en soporte para DNSSEC, una capa de validación que garantiza que el dominio que pediste es exactamente el que recibes, sin manipulación de por medio.
Pi-hole — Un bloqueador de anuncios local
Pi-hole funciona como un DNS sinkhole: cuando cualquier dispositivo de tu red intenta conectarse a un dominio conocido de publicidad, rastreo o malware, Pi-hole simplemente responde "ese dominio no existe" y la conexión nunca se realiza.
Técnicamente no es una herramienta de seguridad, sino un bloqueador de anuncios a nivel de red. Pero, la mayoría del malware que llega a dispositivos domésticos lega a través de anuncios maliciosos en sitios completamente normales. Al cortar esa conexión antes de que el dispositivo siquiera la intente, Pi-hole elimina silenciosamente una de las fuentes de infección más comunes, sin instalar nada en cada dispositivo.
CrowdSec — Detección de intrusos colaborativa
CrowdSec monitorea los logs del sistema en tiempo real buscando comportamientos sospechosos: escaneos de puertos, intentos de fuerza bruta, accesos anómalos. Cuando detecta algo, bloquea la IP ofensora directamente en el firewall mediante su bouncer de iptables, además las IPs maliciosas que detecta cualquier usuario de la comunidad se comparten en tiempo real con todos los demás, lo que resulta en que tu Raspberry llega con inteligencia de amenazas activa desde el primer minuto, sin que tengas que configurar nada adicional.
El flujo de datos
Así es como viaja una consulta DNS dentro de tu red con este setup:
Dispositivo (teléfono, laptop, smart TV)
│
│ consulta DNS (ej: "¿dónde está facebook.com?")
▼
Pi-hole (:53)
│
├── ¿Está en la lista de bloqueo? → ✗ bloqueado aquí
│
└── No bloqueado → reenvía a Unbound
│
Unbound (:5335)
│
└── Consulta recursiva a servidores raíz de internet
│
▼
Respuesta DNS legítima y validada (DNSSEC)Dispositivo (teléfono, laptop, smart TV)
│
│ consulta DNS (ej: "¿dónde está facebook.com?")
▼
Pi-hole (:53)
│
├── ¿Está en la lista de bloqueo? → ✗ bloqueado aquí
│
└── No bloqueado → reenvía a Unbound
│
Unbound (:5335)
│
└── Consulta recursiva a servidores raíz de internet
│
▼
Respuesta DNS legítima y validada (DNSSEC)CrowdSec corre de forma paralela, monitoreando los logs del sistema operativo y bloqueando IPs agresivas a nivel de firewall antes de que lleguen a cualquier servicio.
Antes de empezar: prepara tu Raspberry Pi
Yo usé una Pi 3b+ y la recomiendo por ser una versión más recortada y barata que la 4 o la 5, ya que los 3 servicios corriendo no gastan ni la mitad del procesamiento disponible por unos $100 USD
1. Instala el sistema operativo
Si tu Raspberry Pi es nueva (o quieres empezar desde cero), necesitas grabar el sistema operativo en una microSD.
Descarga Raspberry Pi Imager desde el sitio oficial: 👉 https://www.raspberrypi.com/software/
Cuando el Imager te pregunte qué sistema instalar, no elijas el escritorio. Ve a otros y luego a Raspberry Pi OS Lite (64 bits), recomiendo el Lite para acceder por SSH, no tiene sentido tener un escritorio virtual
Puedes encontrar la imagen directamente en: 👉 https://www.raspberrypi.com/software/operating-systems/
Antes de grabar, el Imager te permite configurar usuario, contraseña, nombre del host, credenciales wifi, y habilitar SSH directamente. Hazlo, de preferencia con una llave ssh, pero si no también puedes entrar con contraseña
2. Actualiza el sistema
Conéctate por SSH a tu Raspberry y ejecuta:
sudo apt update
sudo apt upgrade -ysudo apt update
sudo apt upgrade -y3. Instala Unbound
sudo apt install unbound -ysudo apt install unbound -yCrea el archivo de configuración:
sudo nano /etc/unbound/unbound.conf.d/pi-hole.confsudo nano /etc/unbound/unbound.conf.d/pi-hole.confPega el siguiente contenido:
server:
verbosity: 0
interface: 127.0.0.1
port: 5335
do-ip4: yes
do-udp: yes
do-tcp: yes
do-ip6: yes
prefer-ip6: no
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: no
edns-buffer-size: 1232
prefetch: yes
num-threads: 1
so-rcvbuf: 1m
private-address: 192.168.0.0/16
private-address: 169.254.0.0/16
private-address: 172.16.0.0/12
private-address: 10.0.0.0/8
private-address: fd00::/8
private-address: fe80::/10
private-address: 192.0.2.0/24
private-address: 198.51.100.0/24
private-address: 203.0.113.0/24
private-address: 255.255.255.255/32
private-address: 2001:db8::/32server:
verbosity: 0
interface: 127.0.0.1
port: 5335
do-ip4: yes
do-udp: yes
do-tcp: yes
do-ip6: yes
prefer-ip6: no
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: no
edns-buffer-size: 1232
prefetch: yes
num-threads: 1
so-rcvbuf: 1m
private-address: 192.168.0.0/16
private-address: 169.254.0.0/16
private-address: 172.16.0.0/12
private-address: 10.0.0.0/8
private-address: fd00::/8
private-address: fe80::/10
private-address: 192.0.2.0/24
private-address: 198.51.100.0/24
private-address: 203.0.113.0/24
private-address: 255.255.255.255/32
private-address: 2001:db8::/32Unbound escucha en 127.0.0.1:5335 — solo accesible localmente, que es exactamente lo que queremos.
4. Instala Pi-hole
curl -sSL https://install.pi-hole.net | bashcurl -sSL https://install.pi-hole.net | bashEl instalador tiene interfaz de texto. Cuando llegues a la configuración de DNS:
- Selecciona "Custom" como proveedor de DNS upstream
- Ingresa
127.0.0.1#5335(apuntando a Unbound)
Completa el resto del asistente con los valores por defecto, o a tu gusto según dependa
5. Asigna IP estática a la Raspberry
Para que el resto de la red siempre encuentre tu DNS en la misma dirección, necesitas una IP fija. Con NetworkManager:
# Verifica el nombre de tu interfaz de red
nmcli device status
# Configura IP estática (ejemplo: 192.168.0.2)
sudo nmcli con mod "El nombe que obtuviste en el paso anterior" \
ipv4.addresses 192.168.0.2/24 \
ipv4.gateway 192.168.0.1 \
ipv4.dns 127.0.0.1 \
ipv4.method manual
# Aplica los cambios
sudo nmcli con up "El nombe que obtuviste en el paso anterior"# Verifica el nombre de tu interfaz de red
nmcli device status
# Configura IP estática (ejemplo: 192.168.0.2)
sudo nmcli con mod "El nombe que obtuviste en el paso anterior" \
ipv4.addresses 192.168.0.2/24 \
ipv4.gateway 192.168.0.1 \
ipv4.dns 127.0.0.1 \
ipv4.method manual
# Aplica los cambios
sudo nmcli con up "El nombe que obtuviste en el paso anterior"aquí recomiendo usar la interfaz eth0 y tener la Raspberry conectada por ethernet, al principio será por wifi seguramente, pero cuando dejes la IP estática es mejor por ethernet
6. Instala CrowdSec
curl -s https://install.crowdsec.net | sudo sh
sudo apt install crowdsec -y
sudo apt install crowdsec-firewall-bouncer-iptables -ycurl -s https://install.crowdsec.net | sudo sh
sudo apt install crowdsec -y
sudo apt install crowdsec-firewall-bouncer-iptables -yInstala las colecciones de reglas recomendadas:
sudo cscli collections install crowdsecurity/nginx
sudo cscli parsers install crowdsecurity/whitelistssudo cscli collections install crowdsecurity/nginx
sudo cscli parsers install crowdsecurity/whitelistscrowdsecurity/nginxdetecta patrones de ataque en logs webcrowdsecurity/whitelistsevita falsos positivos bloqueando tu propia red local
7. Habilita y activa todos los servicios
# Unbound
sudo systemctl enable unbound
sudo systemctl restart unbound
# Pi-hole
sudo systemctl enable pihole-FTL
sudo systemctl restart pihole-FTL
# CrowdSec
sudo systemctl enable crowdsec
sudo systemctl restart crowdsec
sudo systemctl enable crowdsec-firewall-bouncer
sudo systemctl restart crowdsec-firewall-bouncer# Unbound
sudo systemctl enable unbound
sudo systemctl restart unbound
# Pi-hole
sudo systemctl enable pihole-FTL
sudo systemctl restart pihole-FTL
# CrowdSec
sudo systemctl enable crowdsec
sudo systemctl restart crowdsec
sudo systemctl enable crowdsec-firewall-bouncer
sudo systemctl restart crowdsec-firewall-bouncerVerifica que todo corre correctamente:
sudo systemctl status unbound pihole-FTL crowdsec crowdsec-firewall-bouncersudo systemctl status unbound pihole-FTL crowdsec crowdsec-firewall-bouncerEl último paso: apunta tu router al nuevo DNS
Todo lo que instalaste sirve de poco si los dispositivos de tu red siguen usando el DNS de tu ISP. Entra al panel de configuración de tu router y cambia el servidor DNS primario a:
192.168.0.2192.168.0.2El procedimiento varía según el modelo de router, pero generalmente se encuentra en: Configuración LAN → DHCP → DNS primario
Una vez guardado, los dispositivos que renueven su conexión DHCP empezarán a usar Pi-hole + Unbound automáticamente.
Resultado final
Con este setup tienes:
- Privacidad DNS: tus consultas no pasan por tu ISP ni por Google
- Bloqueo de anuncios y malvertising en todos los dispositivos de la red, sin instalar nada en cada uno
- Validación DNSSEC: protección contra envenenamiento de caché DNS
- Detección y bloqueo de IPs maliciosas con inteligencia colectiva en tiempo real
Todo corriendo en un hardware que consume menos de 5W y cabe en la palma de tu mano.