Saltar al contenido

Pi-hole y sinkholing DNS: bloquear rastreadores en toda la casa

    Pi-hole y sinkholing DNS:

    bloquear rastreadores en toda la casa

    Redes y privacidad  |  unfantasmaenelsistema.com

    Bloquear anuncios y rastreadores en el navegador está resuelto desde hace años con una extensión. El problema es todo lo demás: la smart TV que llama a servidores de telemetría, las apps del móvil que envían datos a decenas de dominios de publicidad, el frigorífico conectado, la consola, el portátil del trabajo. Nada de eso admite una extensión. La solución de red es interceptar el paso común a todos ellos: la resolución de nombres.

    Un sinkhole DNS es un servidor DNS propio que responde con una dirección nula a los dominios de una lista negra y reenvía el resto con normalidad. Puesto como DNS de toda la casa, corta la conexión con miles de dominios de rastreo antes de que se abra, para cualquier dispositivo. Pi-hole es la implementación más conocida. Este artículo explica cómo funciona, cómo montarlo bien —incluido el DNS cifrado por detrás— y, sobre todo, qué no hace.

    Qué aprenderás en este artículo

    Cómo funciona un sinkhole DNS: responder 0.0.0.0 (o NXDOMAIN) a dominios de una lista negra · Pi-hole frente a AdGuard Home y Blocky, y dónde instalarlo (Raspberry Pi o contenedor) · Listas de bloqueo: cuáles usar, cómo evitar y resolver falsos positivos · Poner un resolutor cifrado (DoH/DoT) o recursivo (unbound) como DNS ascendente del Pi-hole · Forzar que todos los dispositivos lo usen vía DHCP, y por qué eso no basta · Los límites reales: DNS embebido en apps, DoH del navegador, CNAME cloaking, IP fijas

    1. Qué es un sinkhole DNS

    Cuando un dispositivo quiere conectar con ads.ejemplo.com, primero pregunta a su servidor DNS qué dirección IP le corresponde. Un sinkhole intercepta esa pregunta: si el dominio está en su lista de bloqueo, responde con 0.0.0.0 o con NXDOMAIN («no existe»), y el dispositivo no llega a abrir la conexión. Si el dominio no está en la lista, el sinkhole reenvía la consulta a un DNS ascendente y devuelve la respuesta real.

    La gracia es que el DNS es el punto común: todos los dispositivos lo usan, hagan lo que hagan. Bloquear en esa capa cubre la tele, el móvil, los electrodomésticos y los invitados sin tocar ninguno. La contrapartida es que el bloqueo es por dominio entero: si un dominio sirve a la vez publicidad y contenido que quieres, no se puede filtrar solo una parte (para eso siguen haciendo falta los bloqueadores de navegador, que trabajan a nivel de URL y de elemento de la página).

    Sinkhole DNS y bloqueador de navegador se complementan

    El sinkhole cubre todos los dispositivos pero solo bloquea dominios completos. El bloqueador del navegador (uBlock Origin y similares) es más quirúrgico y bloquea elementos cosméticos y scripts de páginas concretas, pero solo en ese navegador. Lo razonable es tener los dos

    2. Pi-hole y sus alternativas

    OpciónPuntos fuertesA tener en cuenta
    Pi-holeEl más documentado; panel claro; enorme comunidad; add-ons (servidor DHCP integrado)DoH/DoT ascendente requiere un componente extra (cloudflared, unbound)
    AdGuard HomeUn solo binario; DoH/DoT/DNSCrypt ascendente y de servidor incluidos; filtros de tipo navegadorPanel algo menos granular en estadísticas históricas
    BlockyLigero, pensado para Docker/Kubernetes; configuración en YAML; rápidoSin interfaz propia rica; se combina con Grafana para las métricas
    Technitium DNSServidor DNS completo (autoritativo + recursivo) con bloqueo; muy flexibleMás funcionalidad de la que necesita un uso doméstico simple

    Para la mayoría de casas, Pi-hole o AdGuard Home son la elección correcta; el resto de este artículo usa Pi-hole como referencia, pero los conceptos valen para todos.

    3. Dónde y cómo instalarlo

    El sinkhole tiene que estar siempre encendido: si se cae, se queda toda la casa sin DNS. Las opciones habituales son una Raspberry Pi dedicada, un contenedor en un NAS o mini-PC que ya tengas encendido, o una máquina virtual pequeña. Pide muy pocos recursos (512 MB de RAM sobran).

    # --- Opcion A: instalador oficial en una Raspberry Pi / VM Debian ---
    curl -sSL https://install.pi-hole.net | bash
    #   asigna al equipo una IP FIJA durante el asistente
     
    # --- Opcion B: Docker Compose ---
    services:
      pihole:
        image: pihole/pihole:latest
        ports: ['53:53/tcp', '53:53/udp', '80:80/tcp']
        environment:
          TZ: 'Europe/Madrid'
          FTLCONF_webserver_api_password: 'usa-una-clave-larga'
          FTLCONF_dns_upstreams: '127.0.0.1#5335'   # unbound local (ver seccion 5)
        volumes: ['./etc-pihole:/etc/pihole']
        restart: unless-stopped
    • Dale al Pi-hole una IP fija (reserva DHCP o configuración estática). Esa IP será el DNS de toda la casa y no puede cambiar
    • Cambia la contraseña del panel por una larga y no lo expongas a internet bajo ningún concepto (ni el panel ni el puerto 53). Un DNS abierto a internet se usa para ataques de amplificación
    • Si quieres alta disponibilidad, monta un segundo Pi-hole y anúncialo como DNS secundario; ojo: los clientes reparten consultas entre primario y secundario, no lo usan solo como reserva

    4. Listas de bloqueo y falsos positivos

    Pi-hole viene con una lista por defecto razonable (StevenBlack). Se pueden añadir más, pero más no es mejor: listas enormes o agresivas multiplican los falsos positivos y aportan poco sobre una buena lista base. Empieza conservador y amplía solo si notas que algo se cuela.

    • Listas recomendables: la de Hagezi en su nivel «normal» o «pro», OISD, la propia StevenBlack. Todas se mantienen y documentan sus criterios
    • Evita agregadores gigantes de «todo lo que encuentres» y listas sin mantenimiento: rompen servicios legítimos
    • Falsos positivos: cuando algo deje de funcionar (el pago de una tienda, el inicio de sesión de una app), mira la pestaña de consultas del panel, localiza el dominio bloqueado y añádelo a la allowlist. Es normal tener una lista blanca de 10-20 dominios
    • Grupos: Pi-hole permite aplicar listas distintas por cliente. Útil para dejar la consola o la tele de los niños con un filtro más estricto y el resto normal

    Quien administra el DNS de la casa, responde de que la casa navegue

    Cuando un servicio falla, el resto de la familia no va a sospechar del Pi-hole: van a decir que «internet no funciona». Ten a mano cómo desactivarlo rápido (apuntar el router a un DNS normal), avisa de que existe, y no metas listas experimentales el día antes de irte de viaje

    5. DNS ascendente: cífralo o hazlo recursivo

    Por defecto, el Pi-hole reenvía lo que no bloquea a un DNS público (el de tu operador, Google, Cloudflare…) en claro por el puerto 53. Eso significa que tu operador —o quien esté en el camino— sigue viendo todos los dominios que visitas. Has bloqueado rastreadores pero no has ganado privacidad de resolución. Hay dos formas de cerrar ese hueco:

    OpciónCómoVentajaInconveniente
    Reenviar por DNS cifrado (DoH/DoT)cloudflared o dnscrypt-proxy local como upstream del Pi-holeSencillo; oculta tus consultas al operadorConfías en el resolutor elegido (Cloudflare, Quad9…)
    Resolver tú mismo (recursivo)unbound local como upstream (127.0.0.1#5335)No dependes de ningún resolutor; nadie ve el conjunto de tus consultasPrimeras consultas algo más lentas; un actor en ruta ve consultas sueltas a los autoritativos
    Ambasunbound recursivo + DoT hacia la raíz/Quad9 según configMáxima autonomía con cifradoMás piezas que mantener
    # --- unbound como recursivo local para Pi-hole (Debian) ---
    apt install unbound
    # /etc/unbound/unbound.conf.d/pi-hole.conf
    server:
        interface: 127.0.0.1
        port: 5335
        do-ip6: no
        harden-dnssec-stripped: yes      # valida DNSSEC
        qname-minimisation: yes          # revela lo minimo a cada autoritativo
        prefetch: yes
     
    # comprobar:
    dig @127.0.0.1 -p 5335 unfantasmaenelsistema.com +dnssec

    Después, en Pi-hole se desmarcan todos los DNS ascendentes públicos y se pone como «Custom upstream» 127.0.0.1#5335. A partir de ahí, tu casa bloquea rastreadores y resuelve sin filtrar sus consultas por el DNS del operador. Enlaza con nuestro artículo de DNS cifrado para el detalle de DoH/DoT.

    6. Forzar que todos lo usen

    De poco sirve el sinkhole si los dispositivos usan otro DNS. La forma correcta de imponerlo es por DHCP: que el router (o el propio Pi-hole como servidor DHCP) entregue la IP del Pi-hole como único servidor DNS a toda la red. Pasos y matices:

    • En el router: cambia el «DNS primario/secundario» que se anuncia por DHCP a la IP del Pi-hole. Si el router no deja quitar el secundario, usa el Pi-hole como servidor DHCP y apaga el del router
    • No pongas un segundo DNS que sea público (8.8.8.8): los dispositivos lo usarán a veces y se saltarán el filtro de forma aleatoria
    • Intercepta el puerto 53 saliente: crea una regla en el router que redirija (o bloquee) todo el tráfico UDP/TCP 53 que no vaya al Pi-hole. Así, un dispositivo con 8.8.8.8 escrito a fuego (muchas smart TV, Chromecast) acaba resolviendo por el Pi-hole igualmente
    • Reinicia los dispositivos o renueva sus concesiones DHCP para que cojan el cambio

    7. Lo que un sinkhole DNS no bloquea

    Es importante tener expectativas realistas. El bloqueo por DNS tiene agujeros por diseño:

    Técnica que lo evitaPor qué funcionaQué puedes hacer
    DoH en el navegadorChrome/Firefox pueden resolver por su cuenta vía HTTPS y saltarse el DNS de la redDesactivar «DNS seguro» en los navegadores (o por política); apuntarlos al Pi-hole si soporta DoH
    DNS embebido en apps y dispositivosApps que llevan su resolutor DoH/DoQ y dispositivos con IP fijas escritas a fuegoRedirección forzada del puerto 53 en el router; bloquear DoH conocido; aislar el IoT en su VLAN
    CNAME cloakingEl rastreador se sirve desde un subdominio del propio sitio que apunta (CNAME) al dominio de trackingPi-hole no lo resuelve de serie; AdGuard Home y algunas listas sí lo tratan
    Publicidad servida desde el dominio principalYouTube, redes sociales: el anuncio viene del mismo dominio que el contenidoNo se puede bloquear por DNS sin romper el servicio; ahí actúa el bloqueador de navegador
    Conexiones por IP directaMalware o telemetría que no consulta DNSFuera del alcance de un sinkhole; es trabajo del firewall y del IDS

    El sinkhole DNS reduce mucho el ruido de rastreo y telemetría con un esfuerzo bajo, pero no es un cortafuegos ni anonimato. Combínalo con navegador endurecido, segmentación del IoT y, si te importa la privacidad de resolución, DNS cifrado ascendente.

    8. Mantenimiento y métricas

    • Pi-hole actualiza las listas solo (semanalmente); puedes forzarlo con pihole -g. Actualiza el software con pihole -up
    • Revisa el panel de vez en cuando: porcentaje de consultas bloqueadas (un 10-25 % es normal), clientes que más consultan, dominios más bloqueados. Picos raros de un dispositivo suelen indicar telemetría agresiva o algo infectado
    • Vigila el tamaño de la base de datos de consultas y ajusta la retención si el disco es pequeño (una microSD agradece bajarla a 30-90 días)
    • Haz una copia de la configuración (Teleporter, en Ajustes) después de dejar la allowlist a tu gusto

    Conclusión

    Un sinkhole DNS como Pi-hole es de las mejores relaciones esfuerzo/resultado en privacidad doméstica: una hora de montaje y toda la casa —tele, móviles, IoT, invitados— deja de hablar con miles de dominios de rastreo y telemetría. La clave para que funcione y no dé guerra es conservadora: una IP fija, listas de bloqueo bien mantenidas y no exageradas, una allowlist para los falsos positivos y forzar el uso por DHCP más redirección del puerto 53.

    Para cerrar el círculo, ponle detrás un resolutor cifrado o recursivo (unbound), y asume sus límites: no bloquea el DoH del navegador, ni el DNS embebido en apps, ni la publicidad servida desde el dominio principal, ni las conexiones por IP. Es una capa excelente, no la única.

    Referencias

    Documentación oficial de Pi-hole (docs.pi-hole.net) y de AdGuard Home · Guía de Pi-hole + unbound para resolución recursiva (docs.pi-hole.net/guides/dns/unbound) · Listas de bloqueo: Hagezi (github.com/hagezi/dns-blocklists), OISD (oisd.nl), StevenBlack · r/pihole y el foro oficial para diagnosticar falsos positivos concretos · Nuestros artículos sobre DNS cifrado, VLAN y segmentación de red, y huella del navegador

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    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.