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

Résolveur DNS Public Ouverts de VirtuBox

Si vous n’avez pas l’envie ou la patience de mettre en place votre propre résolveur DNS, vous pouvez utiliser ceux mis à disposition par VirtuBox  :

Nom : dns.vtbox.net

IPv4 : 163.172.189.181
IPv6 : 2001:bc8:4400:2100::25:5

Nom : sdns.vtbox.net

IPv4 : 217.182.205.213
IPv6 : 2001:41d0:302:2100::7a77

Les deux résolveurs utilisent la même configuration que ci-dessus, avec l’ajout de trois lignes afin d’avoir les statistiques d’utilisation :

statistics-interval: 0
extended-statistics: yes
statistics-cumulative: yes

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.

Poster un Commentaire

Soyez le premier à commenter !

Me notifier des
avatar
wpDiscuz