Wiki Informatique - Bind9

Bind9

BIND pour Berkeley Internet Name Domain est un serveur DNS proposé par l’ISC (Internet Systems Consortium), que vous pouvez utiliser sur Linux, notamment sur Debian, Ubuntu, ou encore Fedora. Il est mondialement connu et utilisé par des entreprises, des agences gouvernementales ou encore des institutions financières. Il dispose de toutes les fonctionnalités nécessaires pour répondre aux besoins en matière de sécurité, de stabilité et de performances.

1.  Mise en place

1.1  Installation avec APT

sudo apt-get update
sudo apt-get install bind9 dnsutils

1.2  Configuration de BIND9

Les fichiers de configuration de Bind se trouvent dans le répertoire “/etc/bind”

Par défaut, ce répertoire contient déjà un ensemble de fichiers de configuration. Vous devez savoir que :

1.3  Sauvegarde des fichiers de base

Par sécurité, vous pouvez effectuer une copie des 2 fichiers de Bind (named.conf.options et named.conf.local) qui sont susceptibles d’être modifiés lors de la mise en place du DNS. Pour cela, utilisez les commandes suivantes :

cd /etc/bind
cp named.conf.options named.conf.options.bkp
cp named.conf.local named.conf.local.bkp

1.4  Configuration globale de BIND9

Comme je l’ai dit précédemment, les options de configuration de Bind sont définies dans le fichier “named.conf.options”. Voici un aperçu de ce fichier, dans sa configuration par défaut :

image Named.conf.options

On peut voir qu’il y a beaucoup de lignes commentées (celles qui débutent par “//”), ainsi que plusieurs options définies par défaut. Nous allons devoir ajuster cette configuration.

sudo nano /etc/bind/named.conf.options

Dans ce fichier, vous allez devoir définir plusieurs options, notamment pour permettre la résolution des noms externes, via les DNS publics de Cloudflare (1.1.1.1) et Quad9 (9.9.9.9), que vous pouvez remplacer par d’autres IP. Il convient aussi de mettre en écoute le serveur DNS.

Voici la configuration commentée que vous pouvez utiliser :

options {
     // Répertoire de travail de Bind
     directory “/var/cache/bind”;

     // Redirecteurs DNS (résolveurs externes)
     forwarders {
          1.1.1.1;
         9.9.9.9;
     };

     // Mode récursif, pour résoudre les noms externes
     recursion yes;

     // Active la validation DNSSEC (vérifier l’authenticité des réponses DNS signées)
     dnssec-validation auto;

     // Ecouter sur toutes les interfaces réseau en IPv4 et IPv6
     listen-on { any; };
     listen-on-v6 { any; };
};

Pour aller plus loin, nous pouvons définir une ACL (règle d’accès) pour indiquer que seules les machines du LAN peuvent contacter ce serveur DNS. Ainsi, nous autorisons “192.168.1.0/24”, le serveur lui-même (localhost) et le réseau auquel il est connecté, soit “192.168.14.0/24” (localnets).

Cette ACL doit être déclarée avant le bloc “options” :

// Autoriser uniquement certains réseaux à solliciter ce DNS
acl “lan” {
     192.168.1.0/24;
     localhost;
     localnets;
};

Puis, dans le bloc “options”, à la suite des directives “listen-on” mais avant la fermeture du bloc, ajoutez ceci :

     // Autoriser les requêtes pour les hôtes de l’ACL “lan”
     allow-query { lan; };

Quand c’est fait, enregistrez le fichier. Vous pouvez le fermer et exécuter la commande ci-dessous pour vérifier la syntaxe :

sudo named-checkconf

S’il y a des erreurs de syntaxe, les numéros de lignes seront retournés dans la console. Sinon, c’est que c’est bon.

Nous venons d’effectuer la configuration de base de Bind9. Passons à la suite : la création du fichier de zone.

2.  Création d’un nouvelle zone DNS

2.1  Déclaration de la Zone

Nous allons devoir déclarer notre nouvelle zone DNS. Pour cela, éditez ce fichier de configuration :

sudo nano /etc/bind/named.conf.local

Puis, ajoutez le code suivant :

zone “it-connect.local” {
     type master;
     file “/etc/bind/db.it-connect.local”;
     allow-update { none; };
};

Pour rappel, nous allons créer la zone DNS “it-connect.local” et le fichier de zone sera “/etc/bind/db.it-connect.local”. L’instruction “allow-update { none; };” permet de refuser les mises à jour des enregistrements DNS par un tiers non autorisé.

Quand c’est fait, enregistrez et fermez le fichier.

Désormais, vous allez copier le fichier “db.local” pour l’utiliser comme base pour votre nouvelle zone :

sudo cp /etc/bind/db.local /etc/bind/db.it-connect.local

Quand c’est fait, vous pouvez passer à l’édition du fichier de zone.

2.2  Configuration de la zone DNS

Nous allons modifier le fichier de zone pour le configurer et créer nos premiers enregistrements DNS. Nous verrons comment créer un enregistrement A, ainsi qu’un alias CNAME.

Commencez par ouvrir le fichier de zone :

sudo nano /etc/bind/db.it-connect.local

Après modifications, voici le fichier de zone “it-connect.local” prêt à l’emploi. Il permet de déclarer le serveur local, à savoir SRV-DNS, comme serveur faisant autorité sur la zone. Nous déclarons également un enregistrement A avec l’adresse IP du serveur DNS, à savoir “192.168.14.99”.

Quelques explications supplémentaires :

Enfin, terminons par un rappel sur les types d’enregistrements principaux, puisqu’ils ont chacun un rôle différent :