Modifier son DNS
Pour sa sécurité, il peut être intéressant de choisir son DNS.
Pour les fournisseurs de DNS, il y a https://www.opennic.org/ qui se veut neutre, sans traceurs1) ni censure, et qui est gratuit. Il y a aussi ceux de la FDN, dont je connais mieux les acteurs et que je vais privilégier ici.
Vieille méthode
Mais peut-être encore valable suivant les OS alors je laisse ça là.
Si on a Network-manager/Wicd il y a des solutions graphiques. Sinon, il faut modifier /etc/resolv.conf. Attention, si ce fichier démarre par un message comme “# Generated by resolvconf”, il faut utiliser ce qui le génère, ici, le logiciel resolvconf (que j'ai du installer sur mon archlinux à un moment, via le paquet openresolv).
Ou encore mieux, créer un fichier “/etc/resolv.conf.head” contenant l'adresse des serveurs DNS qu'on veut utiliser. Pour la FDN :
#FDN nameserver 80.67.169.40 nameserver 2001:910:800::40
Puis lancer la commande
sudo resolvconf -u
Le fichier /etc/resolv.conf est mis à jour. Un test avec nslookup permet de vérifier le serveur par où on passe :
nslookup liev.re Server: 80.67.169.40 Address: 80.67.169.40#53 Non-authoritative answer: Name: liev.re Address: 37.187.4.122
Méthode en 2023
Sur Archlinux il y a maintenant resolvectl.
Pour ajouter ses DNS, créer /etc/systemd/resolved.conf.d/dns_servers.conf afin d'éviter que tout soit écrasé lors de la prochaine mise à jour.
sudo mkdir /etc/systemd/resolved.conf.d/ sudo nano /etc/systemd/resolved.conf.d/dns_servers.conf
Voir plus bas une config complète et faut que je reprenne toute cette page.
Puis on relance le service comme un bourrin :
sudo systemctl restart systemd-resolved.service
La commande resolvectl status|grep “DNS Server” devrait nous indiquer le bon DNS. resolvectl status seul donne l'ensemble de la configuration.
Si jamais une propagation est lente, il parait que la commande resolvectl flush-caches peut aider mais chez moi il a mieux valu choisir le bon DNS.
resolvectl query example.org nous indique comment la requête est traité, et donne entre autre des indications sur la vitesse de réponse.
Vider le cache DNS de Firefox
C'est parfois le navigateur qui saoule.
Aller sur about:networking. Dans le menu à gauche, choisir DNS et “vider le cache DNS”.
DoH et DoH
De quoi on cause
Ces deux sigles barbares émergent de ma veille, comme étant “à utiliser” pour plus de confidentialité.
De base, une requête DNS passe en clair et est visible par tout observateur sur le trajet : le FAI, les divers relais, et tous les acteurs malveillants en embuscade (gouvernements, pirates). DoH et DoH ajoutent un chiffrement qui rend cela bien plus complexe2). Par ailleurs cela garantit l'intégrité de la réponse DNS, si la réponse est modifiée ce sera détecté. Soyons honnête, à mon niveau de menace ça protège principalement du FAI, mais comme ces derniers ne sont pas les derniers à revendre, exploiter et manipuler les données de leurs clients… Et cela désactive de facto la censure via les DNS menteurs.
Attention, le résolveur DNS continue à voir en clair ce qu'on passe comme requête, donc il faut en choisir un de confiance. Bortzmeyer explique ça mieux que moi dans les conditions d'utilisation de son service (mais en plus de mots !).
Deuxième point d'attention : la politique du résolveur a des conséquences. Sebsauvage recense plusieurs résolveurs en détaillant les filtres qui peuvent être appliqués. Certains mensonges peuvent être recherchés, par exemple bloquer les domaines malveillants ; à voir ce qui est considéré comme malveillants. Ou bloquer les domaines de pub. À titre personnel je préfère sans filtre sur mon ordinateur principal, mais filtré sur le smartphone (qui est une boite noire à la sécurité douteuse par ailleurs donc bien plus sensible aux attaques).
DoT (DNS over TLS) passe par TLS (port 853), ce qui le rend blocable. Le trafic DNS passe donc sur un port dédié.
DoH (DNS over HTTPS) utilise HTTPS donc le port 443, et ça on ne peux pas le bloquer si facilement. Ça ressemble à un trafic web classique, et on peut le paramétrer directement dans les navigateurs.
Comment l'activer ?
En théorie “c'est facile”, DoH se renseigne dans le navigateur. Mais je fais face à quelques soucis :
- J'utilise plusieurs navigateurs afin d'afficher certains sites et de séparer mes profils. Donc il faut refaire la manip plusieurs fois.
- Firefox (au moins) décide des DNS qu'il accepte ou non. FDN ou Bortzmeyer ? Il n'aime pas. Il désactive DoH à chaque redémarrage. Je n'ai pas encore testé avec Vivaldi et Chromium mais vu que ces navigateurs sont encore moins propres, ma confiance est limitée.
Sur archlinux, on va de nouveau bidouiller /etc/systemd/resolved.conf.d/dns_servers.conf :
- https://wiki.archlinux.org/title/Systemd-resolved#DNS_over_TLS
[Resolve] DNS=80.67.169.12#ns0.fdn.fr 2001:910:800::12#ns0.fdn.fr 80.67.169.40#ns1.fdn.fr 2001:910:800::40#ns1.fdn.fr 2001:41d0:302:2200::180#dot.bortzmeyer.fr FallbackDNS=2001:bc8:2c86:853::853#dns.shaftinc.fr DNSOverTLS=yes Domains=~.
DNS: le format court ip#domain, séparés par des espaces. On peut aussi déclarer uniquement les ip et ensuite les domaines avecDomains=. Ici j'ai mis du FDN et Bortzmeyer (valable en 2025).FallbackDNS: à renseigner, parce que sinon par défaut c'est cloudflare, google, quad9. Ici j'ai choisi Shaft.
Ensuite :
sudo systemctl restart systemd-resolved resolvectl status
La dernière commande montre la config complète de resolvectl.
DNSSEC
J'ai vu passer dans une config de resolvectl le paramètre DNSSEC=yes. Ce serait bien que j'aille comprendre ce qu'est DNSSEC du coup.