Warda-DNS Warda : de l’anglais ward — protéger, gardien
v0.9.10

Article

Bloquer le DNS sortant sur votre routeur ou votre box

Un filtre DNS ne voit que les questions qu’on lui pose. Une télévision, une application ou un logiciel malveillant qui interroge directement 8.8.8.8 le contourne, sans la moindre erreur. La parade revient au routeur : seul le boîtier Warda peut envoyer du DNS vers Internet.

Publié le · faits vérifiés le

01Pourquoi c’est au routeur de le faire

Votre box donne l’adresse de Warda aux appareils, et la plupart l’utilisent. Mais certains écrivent leur propre serveur DNS dans leur logiciel : des télévisions, des enceintes et des caméras utilisent 8.8.8.8 quoi que dise le réseau. Un programme peut faire de même, et un logiciel malveillant aussi, pour parler à ses serveurs sans être vu.

Ces requêtes n’arrivent jamais à Warda : il ne peut ni les bloquer, ni même les voir. Seul le routeur, que chaque paquet traverse pour sortir, peut les arrêter. La règle est simple : les ports du DNS ne sont ouverts qu’au boîtier Warda.

02Les ports à fermer

Le DNS classique utilise le port 53 (UDP et TCP). Le DNS over TLS utilise le port 853 en TCP, et le DNS over QUIC le port 853 en UDP. Ce sont les ports qu’une règle peut fermer :

  • autoriser les ports 53 et 853, TCP et UDP, depuis l’adresse de Warda (et ses adresses IPv6) vers Internet : Warda en a besoin pour interroger ses propres serveurs, en chiffré ;
  • refuser les ports 53 et 853 depuis tous les autres appareils du réseau vers Internet ;
  • ou, pour le port 53 seulement, rediriger les requêtes vers Warda au lieu de les refuser : une télévision où 8.8.8.8 est écrit continue de fonctionner, et elle est filtrée.

03Une règle générique

Sur un routeur sous Linux (OpenWrt, un routeur fait maison), une règle nftables comme celle ci-dessous suffit, avec 192.168.1.53 remplacé par l’adresse de votre boîtier Warda. Sur pfSense, OPNsense ou un routeur à vous, l’idée est la même : une règle sur l’interface du réseau local qui laisse passer l’adresse de Warda vers les ports 53 et 853, puis, en dessous, une règle qui bloque ces ports pour le reste du réseau.

Faites de même en IPv6 avec les adresses de Warda : un appareil qui interroge en IPv6 contourne une règle écrite pour l’IPv4 seul. Beaucoup de box des fournisseurs n’ont pas un tel pare-feu : un routeur à vous, derrière la box, porte alors la règle.

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
  }
}

04Les limites, dites franchement

Un port ne ferme que ce qui l’utilise. Le DNS over HTTPS passe par le port 443, celui de tous les sites sécurisés : aucune règle de port ne peut le fermer sans fermer le web. Warda répond à cette partie par les noms : les services connus de DNS chiffré, de VPN et de proxy sont bloqués pour les enfants et les ados, et Firefox garde le DNS du réseau (il interroge un nom de test, auquel Warda répond comme il faut).

Le port 853 ne se redirige pas : une requête chiffrée envoyée à Warda à la place de son serveur échouerait au contrôle du certificat. Refusez-le, et la plupart des appareils reviennent au DNS du réseau. Un VPN, enfin, transporte tout dans son tunnel, DNS compris : Warda bloque les services de VPN connus pour les mineurs et, avec l’abonnement, vous signale les tentatives.

05Sources

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

Tout le site d’assistance

Warda, le filtre DNS de toute la maison

Warda est gratuit pour la maison et fonctionne sur un Raspberry Pi, avec Docker ou sous Debian.

Télécharger WardaCe que Warda bloque