Dans ce article nous allons installer puis configurer un serveur DNS récursif qui peut pourrat être utilisé par des machines clientes pour résoudre des noms ou pour contourner certaines restrictions de certains Fournisseurs d’accès à Internet qui bloquent la résolution de certains Noms de Domaines.

Nous utiliseront ici UNBOUND, un résolveur et cache DNS très utilisé dans les systèmes BSD et Linux pour mettre en place des serveurs DNS récursifs car il est léger et simple à paramétrer. Son système de cache lui permet de garder en mémoire pendant un certain temps, les requêtes déjà initialisées par les machines clientes et de les redistribuer , ce qui évite de refaire souvent les mêmes requêtes et ainsi préserver les ressources de la machine faisant office de serveur DNS

Installation
sudo apt install unbound
Configuration

Nous éditions le fichier de configuration /etc/unbound/unbound.conf pour mettre en place les configurations suivantes :

On configure les interfaces réseaux sur lesquels notre serveur, doit écouter les requêtes DNS ( ATTENTION ! Ne pas laissez votre serveur DNS accessible à tous, cela pourrait conduire par exemple à des attaques de type CACHE POISONNING)

# Interface d’écoute IPv4 et IPv6 sur le réseau
interface: 192.168.1.6                                                                                                                          interface : 127.0.0.1
interface: fe80::20c:29ff:feb8:4d5a
# On déclare les réseaux autorisés à soumettre des requêtes DNS à notre Serveur
access-control: fe80::20c:29ff:feb8:4d5a/64 allow
access-control: 192.168.1.0/24 allow                                                                                                                        access-control: 0.0.0.0 deny

On va cacher les informations relatifs à notre Serveur DNS pour donner le moins d’information possible à un potentiel qui essayerai de faire de la reconnaissance dans le but d’exploiter une vulnérabilité présente dans la version du serveur DNS en place

# 0n cache la version et l’ID du service Unbound
hide-version: yes
hide-identity: yes
# On autorise les requêtes aussi bien en IPv4 qu'en IPv6
do-ip4: yes
do-ip6: yes

On spécifie le fichier à créer manuellement et qui devra contenir les logs de notre serveur DNS

#Chemin vers le fichier de log du serveur                                                                                                             logfile:/var/log/unbound/unbound.log

#Définition du niveau de verbosité dans le fichier de log                                                                                                                                              verbosity:3

Une fois la configuration du serveur Unbound terminée, nous allons créer et spécifier les droits sur le fichier de logs du serveur.

mkdir /var/log/unbound                                                                                                                                     touch /var/log/unbound/unbound.log                                                                                                                         chown -R unbound:unbound /var/log/unbound

On redémarre finalement le service unbound le serveur sera prêt à recevoir des requêtes DNS de la part des machines clients et à procéder à la résolution de noms :

sudo systemctl start unbound