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