Unbound en Windows: cómo lo instalé, cómo lo configuro y por qué lo elijo frente a AdGuard Home y Technitium

Unbound en Windows: cómo lo instalé, cómo lo configuro y por qué lo elijo frente a AdGuard Home y Technitium

Introducción

En mi infraestructura decidí implementar Unbound como resolvedor DNS principal en Windows,
priorizando recursión real, privacidad, control total del flujo DNS y una superficie de ataque mínima.

Probé soluciones populares como AdGuard Home y Technitium DNS, pero tras un análisis técnico profundo llegué a la conclusión
de que Unbound es superior cuando lo que busco es DNS nativo, limpio y sin intermediarios innecesarios.

En este documento describo mi configuración completa y explico por qué descarté otras alternativas.


Qué es Unbound desde el punto de vista técnico

Unbound es un resolver DNS recursivo validante que:

  • Implementa los RFC de DNS de forma estricta
  • Consulta directamente a los root servers
  • Valida DNSSEC de manera nativa
  • No depende de resolvers upstream por diseño
  • Está optimizado para rendimiento y seguridad

Para mí, Unbound no es un filtro, no es un proxy y no es una interfaz web. Es un resolver DNS puro, y eso es exactamente lo que necesito.


Configuración base de Unbound

Archivo de configuración:
C:\Program Files\Unbound\service.conf

server:
  interface: 0.0.0.0
  port: 53

  access-control: 127.0.0.0/8 allow
  access-control: 192.168.1.0/24 allow

  verbosity: 1
  do-ip4: yes
  do-ip6: no
  do-udp: yes
  do-tcp: yes

  harden-glue: yes
  harden-dnssec-stripped: yes
  harden-referral-path: yes
  use-caps-for-id: yes

  qname-minimisation: yes
  aggressive-nsec: yes

  prefetch: yes
  prefetch-key: yes

  cache-min-ttl: 300
  cache-max-ttl: 86400

  rrset-roundrobin: yes

  root-hints: "C:/Program Files/Unbound/root.hints"
  auto-trust-anchor-file: "C:/Program Files/Unbound/root.key"

Modo full recursivo (sin upstreams)

Este es el modo que utilizo por defecto y el que recomiendo. En esta configuración no defino ningún
forward-zone.

Qué ocurre internamente

  • Unbound consulta directamente a los servidores raíz
  • Luego contacta a los servidores TLD y autoritativos
  • Cada respuesta se valida con DNSSEC y se cachea localmente

Ventajas técnicas

  • Privacidad: mis consultas DNS no pasan por terceros
  • Independencia: no dependo de Google, Cloudflare u otros proveedores
  • Resiliencia: el resolver sigue funcionando incluso si un upstream falla

Uso de upstream clásico (UDP / TCP)

En redes restrictivas o entornos donde no puedo acceder a los root servers,
utilizo forwarders DNS tradicionales:

forward-zone:
  name: "."
  forward-addr: 8.8.8.8
  forward-addr: 1.1.1.1

Esta opción sacrifica independencia, pero puede ser necesaria en algunos escenarios.


DNS-over-TLS (DoT)

Cuando necesito cifrado nativo sin renunciar a estabilidad, utilizo DNS-over-TLS:

forward-zone:
  name: "."
  forward-tls-upstream: yes
  forward-addr: 1.1.1.1@853#cloudflare-dns.com
  forward-addr: 9.9.9.9@853#dns.quad9.net

De esta forma las consultas viajan cifradas y el servidor upstream se autentica mediante TLS.


DNS-over-HTTPS (DoH)

Unbound no implementa DoH directamente, y considero que esto es una buena decisión de diseño.

Cuando necesito DoH, utilizo una arquitectura modular:

Unbound → cloudflared o stubby → proveedor DoH

forward-zone:
  name: "."
  forward-addr: 127.0.0.1@5053

Así mantengo a Unbound enfocado exclusivamente en resolver DNS.


Uso de Quad9

En algunos escenarios utilizo Quad9 por su enfoque en privacidad y seguridad:

forward-zone:
  name: "."
  forward-tls-upstream: yes
  forward-addr: 9.9.9.9@853#dns.quad9.net
  forward-addr: 149.112.112.112@853#dns.quad9.net

Por qué no uso AdGuard Home

  • No es un resolver recursivo real; funciona principalmente como proxy DNS
  • Depende de upstreams externos en casi todos los casos
  • Mezcla DNS y filtrado en el mismo proceso
  • Introduce complejidad innecesaria para un resolver principal

Para mí, el bloqueo de anuncios debe ser una capa separada, no parte del resolver DNS.


Por qué no uso Technitium DNS

  • Es una solución muy completa, pero excesivamente pesada para DNS puro
  • El resolver recursivo no es el foco principal del diseño
  • Incluye demasiadas capas y abstracciones
  • Aumenta la superficie de ataque y la complejidad operativa

Prefiero una herramienta que haga una sola cosa y la haga bien.


Conclusión

Elegí Unbound porque necesito un resolver DNS recursivo, validante, independiente y minimalista.
No busco interfaces llamativas ni funciones extra, solo DNS bien implementado.

Unbound cumple exactamente con eso.


Comentarios

2 respuestas a “Unbound en Windows: cómo lo instalé, cómo lo configuro y por qué lo elijo frente a AdGuard Home y Technitium”

  1. Abraham Avatar
    Abraham

    Me gusta tu aproximación y no conocía unbound, y me hace replantear el uso de Adguard y revisar como lo tengo configurado.

    Lo que no me convence de esta aproximación es que cuando se usa recursividad se expone al ISP con texto plano porque va por el puerto 53, y cuando se quiere usar DoT ya tenemos que depender de terceros y perdemos la recursividad, ¿o yo lo entendí mal? Si es así no es privado, lo único que decides a quién cedes tu privacidad.

    En mi caso, e imagino que no es excluyente el uso de Adguard o PiHole o parecidos, pensando en limitar telemetrias y anuncios, y se puede montar en varios dockers, uno responsable de resolver y el otro aplica el filtraje deseado.

    1. Si se expone en texto plano. Ya que el protcolo es udp sin encriptación.

      Pero al ISP le va a ser dificil seguir lo que estas consultando.
      Primero siempre vas al root, y de ahi vas consultando por parte. Es un com, es google.com y es drive.google.com
      Armar todo a destinos diferentes por cada dominio, es dificil de armar. No imposible. Pero tus datos ya estan repartidos por 3 o 4 servidores antes de llegar a google.com

      La privacidad se logra, no dando toda le info a todod un servicios como si lo haces por ejemplo a Cloudflare. Le preguntas por http://www.google.com (de una). Y eso el ISP si lo puede capturar en UDP. Eso puede ser intercpetado, bloqueando el puerto DOT o DOH.

      La recursividad es, para mi opinión, la mejor forma de proteger la privacidad. Eres dueño de todos tus datos. No hay nadie entre tu y el servidor NS del destino. Y tu crear tus reglas, los ttl los filtros. Tu eres el Cloudflare.

Responder a dagorretCancelar respuesta