Warda-DNS Warda: del inglés ward — proteger, guardián
v0.9.10

Artículo

Bloquear el DNS saliente en tu router

Un filtro DNS solo ve las preguntas que le hacen. Un televisor, una aplicación o un software malicioso que consulta directamente 8.8.8.8 se lo salta, sin ningún error. La solución le toca al router: solo la caja Warda puede enviar DNS a Internet.

Publicado el · datos comprobados el

01Por qué le toca al router

Tu router da la dirección de Warda a los dispositivos, y la mayoría la usa. Pero algunos llevan su propio servidor DNS escrito en su software: televisores, altavoces y cámaras que usan 8.8.8.8 diga lo que diga la red. Un programa puede hacer lo mismo, y también un software malicioso que quiere hablar con sus servidores sin ser visto.

Esas consultas nunca llegan a Warda: no puede bloquearlas, ni siquiera verlas. Solo el router, que cruza cada paquete al salir, puede pararlas. La regla es sencilla: los puertos del DNS solo están abiertos para la caja Warda.

02Los puertos que cerrar

El DNS clásico usa el puerto 53 (UDP y TCP). El DNS over TLS usa el puerto 853 en TCP, y el DNS over QUIC el puerto 853 en UDP. Son los puertos que una regla puede cerrar:

  • permitir los puertos 53 y 853, TCP y UDP, desde la dirección de Warda (y sus direcciones IPv6) hacia Internet: Warda los necesita para consultar sus propios servidores, cifrados;
  • rechazar los puertos 53 y 853 desde todos los demás dispositivos de la red hacia Internet;
  • o, solo para el puerto 53, redirigir las consultas a Warda en lugar de rechazarlas: un televisor con 8.8.8.8 escrito sigue funcionando, y queda filtrado.

03Una regla genérica

En un router con Linux (OpenWrt, un router casero), basta una regla de nftables como la de abajo, cambiando 192.168.1.53 por la dirección de tu caja Warda. En pfSense, OPNsense o un router propio, la idea es la misma: una regla en la interfaz de la red local que deja pasar la dirección de Warda hacia los puertos 53 y 853, y debajo una regla que bloquea esos puertos para el resto de la red.

Haz lo mismo en IPv6 con las direcciones de Warda: un dispositivo que consulta por IPv6 se salta una regla escrita solo para IPv4. Muchos routers de los operadores no tienen un cortafuegos así: un router propio detrás del suyo lleva entonces la regla.

nft
table inet warda_dns {
  chain forward {
    type filter hook forward priority filter; policy accept;
    # 192.168.1.53: the address of Warda, the only one that may ask outside
    ip saddr 192.168.1.53 accept
    meta l4proto { tcp, udp } th dport { 53, 853 } reject
  }
}

04Los límites, sin rodeos

Un puerto solo cierra lo que lo usa. El DNS over HTTPS va por el puerto 443, el de todos los sitios seguros: ninguna regla de puertos puede cerrarlo sin cerrar la web. Warda responde a esa parte por los nombres: los servicios conocidos de DNS cifrado, VPN y proxy se bloquean para niños y adolescentes, y Firefox mantiene el DNS de la red (consulta un nombre de prueba, al que Warda responde como debe).

El puerto 853 no se puede redirigir: una consulta cifrada enviada a Warda en lugar de a su servidor fallaría la comprobación del certificado. Recházalo, y la mayoría de los dispositivos vuelve al DNS de la red. Por último, una VPN lleva todo dentro de su túnel, DNS incluido: Warda bloquea los servicios de VPN conocidos para los menores y, con la suscripción, te avisa de los intentos.

05Fuentes

  1. IETF, RFC 7858, «Specification for DNS over Transport Layer Security (TLS)», puerto 853
  2. IETF, RFC 9250, «DNS over Dedicated QUIC Connections», puerto 853 en UDP
  3. IETF, RFC 8484, «DNS Queries over HTTPS (DoH)»

Todo el centro de ayuda

Warda, el filtro DNS de toda la casa

Warda es gratis para el hogar y funciona en una Raspberry Pi, con Docker o en Debian.

Descargar WardaQué bloquea Warda