Installer votre résolveur DNS avec unbound

Pourquoi mettre en place un résolveur DNS ?

Avec une généralisation de la censure et de nombreuses pannes sur les résolveurs DNS des FAI, beaucoup d’articles recommandent l’utilisation des résolveurs DNS Google. Mais si ce dernier propose un service stable et performant, il peut être inquiétant de laisser google analyser l’ensemble des requêtes DNS que vous pouvez faire en naviguant sur le web.

Dans ce tutoriel, je vais donc vous expliquer comment mettre en place un résolveur DNS récursif, supportant la norme DNSSEC avec unbound. Pour l’installation, j’ai utilisé un VPS avec Ubuntu 16.04 LTS.

Installer et configurer unbound

Tout d’abord, il faut installer unbound :

apt update
apt install unbound

Après quoi, il faut créer un fichier de configuration dans le dossier /etc/unbound/unboud.conf.d/ que vous pouvez nommer mondns.conf par exemple.
Voici le contenu de ce fichier :

server:
 interface: 0.0.0.0
 interface: ::0
 access-control: 0.0.0.0/0 allow
 access-control: ::/0 allow
 root-hints: "/var/lib/unbound/root.hints"
 verbosity: 0
 qname-minimisation: yes
 
 num-threads: 2
 msg-cache-slabs: 4
 rrset-cache-slabs: 4
 infra-cache-slabs: 4
 key-cache-slabs: 4
 rrset-cache-size: 100m
 msg-cache-size: 50m
 outgoing-range: 465
 so-rcvbuf: 4m
 so-sndbuf: 4m
 port: 53
 do-ip4: yes
 do-ip6: yes
 do-udp: yes
 do-tcp: yes
 do-daemonize: yes
 hide-identity: yes
 hide-version: yes
 harden-glue: yes
 harden-dnssec-stripped: yes
 harden-referral-path: yes
 use-caps-for-id: yes
 prefetch: yes

Attention, l’option *qname-minimisation: yes *ne fonctionne que sur Ubuntu car unbound 1.5.7 n’est pas disponible sur le repository debian.

On télécharge ensuite le fichier contenant les IPs des 13 serveurs de la racine.

wget https://www.internic.net/domain/named.cache -O /var/lib/unbound/root.hints

Il ne nous reste plus qu’à redémarrer le service unbound :

service unbound restart

Et votre résolveur DNS est désormais opérationnel ! (vérifiez que le service unbound fonctionne correctement avec la commande service unbound status)
Vous pouvez maintenant éditer le fichier /etc/resolv.conf pour remplacer l’IP du nameserver utilisé par 127.0.0.1.

Ensuite, si vous souhaitez automatiser la mise à jour des serveurs de la racine, vous pouvez le faire en ajoutant un cron avec le script suivant :

wget https://git.virtubox.net/virtubox/unbound-dns-server/raw/master/update-root-dns.sh

chmod +x update-root-dns.sh

crontab -e

0 0 * * * ./update-root-dns.sh

Si vous souhaitez aller encore plus loin, vous pouvez également mettre en place un résolveur DNSCrypt qui permet de chiffrer les requêtes faites entre votre machine et le résolveur DNS.

Je vous invite à jeter un coup d’œil sur le tutoriel de noobunbox.

Tutoriel inspiré de l’article de shaftinc.fr.

Commentaires

licence creative common

L’ensemble des articles publiés sur jesuisadmin.fr sont mis à disposition
selon les termes de la licence CC BY-NC-SA 4.0.

Article précédent Article suivant