altevo.net

Serveur Unbound

Unbound logo

Unbound est un serveur libre pour héberger soi-même le service DNS. Il a pour rôle de traduire les noms de domaines en adresse IP afin de ne pas devoir les mémoriser soi-même, exemple altevo.net = 109.123.262.78.

Habituellement, ce service est assuré par les fournisseur d'accès à internet (FAI), ce qui leur permet au passage de conserver un historique de toutes les requêtes mais aussi de mettre en place de la censure ou des bridages sur certains domaines (ex. Youtube) en utilisant le principe du DNS menteur !

Utiliser son propre serveur de noms de domaines sur sa machine ou son réseau local offre alors un réel intérêt de sécurité mais aussi de pouvoir contourner ce genre de pratiques, c'est là qu'Unbound intervient.

Installation

Son paquet est disponible directement dans les dépôt Debian:

sudo apt install unbound

 

Ou sur son site officiel si l'on veut être certain d'utiliser la dernière version.

Configuration

Configuré en serveur cache, Unbound va effectuer les requêtes DNS et mettre les réponses en mémoire cache pour les requêtes à venir, ce qui permet de limiter leur nombre et surtout de gagner en temps de latence.

Pour cela, il suffit éditer un seul fichier en tant qu'administrateur: /etc/unbound/unbound.conf

sudo nano /etc/unbound/unbound.conf

 

Exemple de configuration de base:

server:
 verbosity: 1     #de 0 à 5 selon vos besoins d'infos, 0 pour les erreurs seulement
 interface: 192.168.0.1     #adresse du serveur DNS Unbound, 0.0.0.0 pour plusieurs interfaces
 access-control: 192.168.0.0/24 allow     #autoriser son réseau, par défaut tout est refusé sauf localhost
 #choix possibles: deny (drop message), refuse (polite error reply), allow (recursive ok), allow_snoop (recursive et nonrecursive ok)

#activer ipv4, ipv6 et le support des protocoles
do-ip4: yes
do-ip6: yes     #désactiver (no) si erreur au lancement du service 
do-udp: yes
do-tcp: yes

#activer les logs
logfile: /var/log/unbound

#cacher l'identitié et la version du serveur
hide-identity: yes
hide-version: yes

#limiter l'usurpation de dns
harden-glue: yes

#prendre en compte la casse
use-caps-for-id: yes

#ne pas interroger localhost
do-not-query-localhost: yes

#ajouter la zone qui transfère les requêtes DNS non effectuées par son serveur vers le domaine racine
forward-zone:
 name: "."
 forward-addr: 208.67.222.222     #serveur DNS OpenDNS
 forward-addr: 208.67.220.222     #serveur DNS OpenDNS
 forward-addr: 8.8.8.8     #serveur DNS de google
 forward-addr: 8.8.4.4     #serveur DNS de google

 

Une fois le fichier enregistré, redémarrer Unbound:

sudo service unbound restart

 

Redémarrer Unbound avec systemd:

sudo systemctl restart unbound.service

 

Tester le bon fonctionnement

Vérifier que la mise en cache fonctionne correctement sur un site non visité:

drill exemple.com @192.168.0.1

 

Pour que la commande drill fonctionne, il faut avoir installé ldnsutils:

sudo apt install ldnsutils

 

Pour contrôler les erreurs éventuelles du fichier de configuration:

unbound-checkconf /etc/unbound/unbound.conf