l’Almanet doLys Gnu/Linux – Open Source – Entreprises › Forums › L’almanet doLys Open Source › Aide-Mémoire DoT – DoH – DNSSEC sous Linux
- This topic has 0 réponse, 1 participant, and was last updated il y a 7 years et 1 month by
nam1962.
- AuteurArticles
- juillet 10, 2019 à 3:38 pm #11546
DoT, DoH, DNSCrypt, DNSSEC : qui fait quoi sous Linux ?
Quand on commence à vouloir sortir du DNS de son fournisseur d’accès, on tombe rapidement sur quatre acronymes :
- DoT : DNS over TLS ;
- DoH : DNS over HTTPS ;
- DNSCrypt : un autre protocole de DNS chiffré ;
- DNSSEC : vérification cryptographique de certaines réponses DNS.
Ils ne font pas tous la même chose et, surtout, ils ne se remplacent pas les uns les autres.
DNS classique
Le DNS traditionnel utilise généralement le port 53 en clair.
Concrètement, votre machine demande :
quelle est l'adresse IP de exemple.com ?et le résolveur lui répond.
Le problème : les requêtes sont visibles sur le réseau. Selon le fournisseur d’accès ou le pays, elles peuvent également être filtrées, modifiées ou redirigées.
Changer simplement le DNS de sa box pour mettre un autre résolveur évite éventuellement d’utiliser le résolveur du FAI, mais le trafic DNS reste en clair.
DoT : DNS over TLS
DoT chiffre les requêtes DNS dans une connexion TLS, généralement sur le port
853.Dans le montage que j’utilise :
applications ↓ Pi-hole ↓ Unbound ↓ DoT ↓ résolveurs DNS externesAvantages :
- les requêtes DNS ne circulent plus en clair entre votre machine et le résolveur final ;
- le protocole est simple et dédié au DNS ;
- Unbound sait très bien fonctionner comme relais DoT.
Inconvénient :
- le trafic est facilement identifiable comme du DNS chiffré, puisque le port 853 lui est dédié.
Tutoriel complet :
Installer Pi-hole et Unbound avec Docker
DoH : DNS over HTTPS
DoH transporte les requêtes DNS dans une connexion HTTPS.
Dans mon second montage :
applications ↓ Pi-hole ↓ dnscrypt-proxy ↓ DoH / DNSCrypt ↓ résolveurs DNS externesLe trafic passe alors dans du HTTPS, comme beaucoup d’autres échanges web.
Cela le rend généralement moins trivial à bloquer qu’un protocole DNS utilisant un port dédié.
J’utilise
dnscrypt-proxy, qui permet de travailler avec plusieurs résolveurs et de mélanger selon la configuration :- DoH ;
- DNSCrypt.
Le but n’est pas d’être marié à un seul protocole ou à un seul opérateur DNS. Le but est d’avoir plusieurs chemins de résolution chiffrés et de ne plus dépendre du DNS du fournisseur d’accès.
Tutoriel complet :
Installer Pi-hole avec DoH / DNSCrypt et dnscrypt-proxy sous Docker
DNSCrypt
DNSCrypt est un autre protocole permettant de chiffrer et d’authentifier les échanges avec un résolveur DNS compatible.
Il ne passe pas nécessairement par HTTPS comme DoH.
Dans ma configuration, il est utilisé via
dnscrypt-proxyen complément de DoH.L’intérêt est surtout la résilience : si plusieurs protocoles et plusieurs résolveurs sont disponibles, une panne ou un blocage sur un chemin ne condamne pas toute la résolution DNS.
Et DNSSEC dans tout ça ?
DNSSEC ne chiffre pas les requêtes DNS.
C’est important parce qu’on voit souvent les deux sujets mélangés.
DNSSEC sert à vérifier cryptographiquement qu’une réponse DNS signée n’a pas été falsifiée entre la zone DNS et le résolveur qui la valide.
En résumé :
DoT / DoH / DNSCrypt → protègent le transport des requêtes DNS DNSSEC → vérifie l'authenticité des réponses pour les domaines qui l'utilisentDNSSEC ne remplace donc ni DoT ni DoH.
Et DoT ou DoH ne remplacent pas non plus DNSSEC.
Les deux protections peuvent être complémentaires.
Pourquoi garder plusieurs modes ?
Parce qu’un système DNS qui ne fonctionne que tant qu’un seul composant est disponible est un système fragile.
J’utilise donc plusieurs possibilités :
- Pi-hole + Unbound en DoT ;
- Pi-hole + dnscrypt-proxy en DoH / DNSCrypt ;
- un fallback DNS neutre en cas de panne des stacks locales ;
- un fallback filtrant externe si je veux conserver temporairement un minimum de filtrage.
Un petit switcher permet de passer d’un mode à l’autre sans démonter toute la configuration.
Basculer facilement entre DoT, DoH, fallback neutre et fallback filtrant
Attention au fallback DNS classique
Utiliser directement un résolveur public sur le port 53 permet de ne plus demander les réponses au résolveur du FAI.
Mais cela ne chiffre pas le trafic.
Le fournisseur d’accès peut toujours voir les requêtes DNS qui transitent en clair.
Dans mon installation, ce mode est donc uniquement un secours manuel :
stack DNS chiffrée fonctionnelle → utilisation normale stack locale cassée → fallback temporaire stack réparée → retour au DNS chiffréPas de cron qui réécrit automatiquement
/etc/resolv.conftoutes les cinq minutes. Ce genre de bricolage finit surtout par se battre avec NetworkManager, systemd-resolved, Tailscale ou un autre gestionnaire réseau.Vérifier ce qu’on utilise réellement
Pour voir quel serveur DNS répond réellement :
dig kernel.org A | grep SERVERPour tester directement un DNS local :
dig @127.0.0.1 kernel.org A +shortPour voir ce que contient la configuration DNS système :
cat /etc/resolv.confEt pour regarder les résolveurs visibles depuis Internet :
Attention toutefois : un test de fuite DNS indique quels résolveurs ont traité vos requêtes. Il ne suffit pas, à lui seul, à expliquer toute la chaîne DNS locale.
En résumé
DNS classique → simple, mais en clair DoT → DNS chiffré sur TLS, généralement port 853 DoH → DNS transporté dans HTTPS DNSCrypt → protocole DNS chiffré supplémentaire DNSSEC → authentification des réponses signées, pas chiffrementPour mon usage, je ne cherche pas un protocole magique.
Je préfère avoir deux stacks réellement différentes, les tester, et pouvoir basculer de l’une à l’autre quand un chemin tombe :
Pi-hole + Unbound → DoT Pi-hole + dnscrypt-proxy → DoH / DNSCryptLe reste est une question de résilience, de choix des résolveurs et de contrôle réel de la configuration utilisée par le système.
Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc
- AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.