Installer son propre DNS avec Unbound

Publié le 21/03/2015

Un DNS (Domain Name Server) est comme son nom l'indique un serveur de noms de domaine : sur internet chaque machine est identifiée par son adresse IP, or il est difficile pour un être humain de retenir des adresses comme 88.191.250.176 et ceci pour chaque site web (à moins que vous ne soyez une base de donnée ambulante).

Les DNS font donc correspondre les noms de domaines aux adresses IP correspondantes.

Par exemple : linuxfr.org => 88.191.250.176
 

La plupart des gens utilisent les DNS de leur fournisseur d'accès internet, cependant ces DNS sont souvent dit « menteurs », c'est à dire qu'ils ne renvoient pas la vrai adresse de certains sites (pour des raisons de censure dans le pays, …). Il est donc important d'avoir un DNS non-menteur afin de pouvoir naviguer librement, de plus les DNS de certains FAI sont souvent plus lent que d'autres.
 

Quelles solutions à cela ?

 

1- Utiliser des DNS publiques comme ceux de OpenDNS ou Google

2- Installer son propre DNS

 

Mais comme Google connaît déjà assez de choses sur nous et que l'on aime la bidouille on va installer notre propre serveur. On se connecte à notre serveur, Raspberry, ordinateur personnelle ou autre machine Linux... et en root pour l'aventure !

 

Installer Unbound :

# apt-get install unbound

Récupérer la configuration des DNS racine :

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

 

Fichier de configuration de Unbound : /etc/unbound/unbound.conf

# Unbound configuration file for Debian.
server:
# Configuration de unbound pour les performance crypto DNSSEC
# en utilisant la clé des serveurs root
auto-trust-anchor-file: "/var/lib/unbound/root.key"
# Activer les logs
verbosity: 1
#Répondre aux requêtes DNS sur toutes les interfaces réseau.
interface: 0.0.0.0
#Port requêtes DNS
port: 53
#Activation de l'IPv4
do-ip4: yes
#Activation de l'IPv6
do-ip6: no
# Activation udp
do-udp: yes
#Activation tcp
do-tcp: yes
#plages adresse ip autorisée à utiliser le DNS (mettez votre réseau)
access-control: 192.168.1.0/24 allow
#chemin du fichier root.hints avec les infos sur les DNS racine
root-hints: "/var/lib/unbound/root.hints"
#Cacher les infos sur le serveur DNS
hide-identity: yes
hide-version: yes
#paramètre limitant l'usurpation de DNS
harden-glue: yes
#Requérir les infos DNSSEC pour les zones de confiance
harden-dnssec-stripped: yes
#Options permettant de ne pas prendre la casse en compte lors des requêtes d'url.
#HomeServer-DIY.net sera traduit en homeserver-diy.net par le serveur et il communiquera la bonne IP
use-caps-for-id: yes
#valeur mini de la TTL en secondes. Ne pas dépasser 1h
cache-min-ttl: 3600
#valeur max de la TTL en secondes.
cache-max-ttl: 86400
#activation du prefetch. Si un requête est faite lorsque la tll expire dans moins de 10% du temps qu'il lui est imparti
#le cache se mettra à jour aussitôt après avoir répondu à la requête.
prefetch: yes
#nombre de core du DNS
num-threads: 1
## Tweaks et optimisations du cache
#Nombre de slabs à utiliser . Doit être une puissance de 2 du num-threads.
msg-cache-slabs: 8
rrset-cache-slabs: 8
infra-cache-slabs: 8
key-cache-slabs: 8
#Taille du cache en Mo:
rrset-cache-size: 51m
msg-cache-size: 25m
#Taille du buffer pour le port UPD en entrée. Evite la perte de message lors des requêtes
so-rcvbuf: 1m
#Renforcer la vie privée des adresses du LAN. Ne mettre que des adresses locales
private-address: 192.168.1.0/24
#Si non nulles, les réponses indésirables ne sont pas seulement signalés dans les statistiques,
#mais aussi ajoutées à un total cumulé maintenu par thread.
#Si elle atteint le seuil, un avertissement est affiché et une action défensive est prise, le cache est vidé pour éviter l'empoissonnement DNS.
#Une valeur de 10000 est suggérée, la valeur par défaut est de 0 (service désactivé).
unwanted-reply-threshold: 10000
#Autorisé à répondre aux requêtes du localhost
do-not-query-localhost: no
# Est-ce que cette section supplémentaire, doit être conservée intacte pour les données non-sécurisées
# Utile pour protéger les utilisateurs d'une validation de données potentiellement boguées
# Toutes les données non signés dans la section supplémentaire seront retirés des messages sécurisés
val-clean-additional: yes


 

On redémarre notre DNS :

# service unbound restart

 

Et vous voilà avec votre petit DNS fonctionnel, vous pourrez ainsi sûrement diminuer votre temps de réponse lors des requêtes DNS et ne pas subir les aléas politiques.

 

Ce fichier de configuration est tiré du site de de Nicolas et Tom.

 

Credit image : matrixfans.net

Publié dans informatique dns server linux hack censor


captcha