Decouverte et installation de Bind9

Sur ce poste, je vais apprendre comment installer et utiliser BIND9. Mais tout d’abord c’est quoi Bind9, c’est un serveur DNS tout simplement. Un serveur DNS c’est comme un annuaire, pour le vous donner un exemple, voici un schema explicatif :

flowchart LR A[Navigateur] -- univ-pau.fr --> B((Serveur DNS)) B --> D(univ-pau.fr IN A 194.167.156.113) D -- Reponse DNS --> A

Dans ce schema plutot simple, nous pouvons voir que quand on tape sur le navigateur le site univ-pau.fr par exemple, le serveur BIND9, recherchera sur ces correspondances et nous donnera une reponse que notre navigateur comprendra.

Installation de Bind9

Maintenant que nous avons une idée sur ce qu’est un serveur DNS, nous allons passer à l’installation de Bind9. Pour cela, nous allons utiliser la commande suivante :

sudo apt install bind9 bind9utils bind9-doc

Cette commande va installer Bind9 ainsi que ses utilitaires et sa documentation. Les utilitaires sont des outils qui nous permettent de configurer et de gerer notre serveur DNS. Qui vont nous permettre de faire des requetes DNS, de tester notre serveur DNS, etc.

Configuration de Bind9

Maintenant que nous avons installé Bind9, nous allons passer à sa configuration. Pour cela, nous allons utiliser l’editeur de texte nano pour modifier le fichier de configuration de Bind9 qui se trouve dans le repertoire /etc/bind/named.conf.options.

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

Sur ce fichier nous allons modifier les lignes suivantes :

acl LAN {
    192.168.1.0/24;
};
options {
    directory "/var/cache/bind";
    allow-query { localhost; LAN; };
};

acl LAN* : C’est une liste d’adresses IP qui sont autorisées à faire des requêtes DNS sur notre serveur DNS. Dans notre cas, nous avons autorisé les machines du réseau local à faire des requêtes DNS sur notre serveur DNS.

Sur le champ options, nous avons ajouté bash allow-query { localhost; LAN; }; pour autoriser les requêtes DNS sur notre serveur DNS.

directory "/var/cache/bind"; : C’est le repertoire ou Bind9 va stocker les fichiers de cache.

Pour verifier que notre configuration est correcte, nous allons utiliser la commande suivante :

sudo named-checkconf

Avec cette commande on peut specifier le fichier de configuration que l’on veut verifier, dans notre cas, nous allons verifier le fichier /etc/bind/named.conf.options.

sudo named-checkconf /etc/bind/named.conf.options

Configuration des zones

Nous allons maintenant configurer les zones de notre serveur DNS. Pour cela, nous allons modifier le fichier /etc/bind/named.conf.local avec la commande suivante :

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

Sur ce fichier, nous allons ajouter les lignes suivantes :

zone "makhal.lan" IN {
        type master;
        file "/etc/bind/zones/makhal.lan";
};

Sur ce fichier nous avons cree une zone qui s’appelle makhal.lan et qui est de type master. Le type master signifie que notre serveur DNS est le serveur primaire pour cette zone. Nous avons aussi specifie le fichier de zone qui se trouve dans le repertoire /etc/bind/zones/makhal.lan.

Maintenant nous allons creer le repertoire zones et le fichier de zone makhal.lan avec les commandes suivantes :

sudo mkdir /etc/bind/zones
sudo nano /etc/bind/zones/makhal.lan

Sur ce fichier nous allons ajouter les lignes suivantes :

$TTL 604800
@       IN      SOA     ns1.makhal.lan. admin.makhal.lan. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.makhal.lan.
@       IN      A
ns1     IN      A

Sur ce fichier nous avons specifie le TTL qui est le temps de vie du cache, le SOA qui est le nom du serveur primaire, le Refresh qui est le temps de rafraichissement du cache, le Retry qui est le temps d’attente avant de reessayer de contacter le serveur primaire, le Expire qui est le temps d’expiration du cache et le Negative Cache TTL qui est le temps de vie du cache negatif.

Apres ça, nous avons specifie le nom du serveur primaire.

Pour verifier que notre configuration est correcte, nous allons utiliser la commande suivante :

sudo named-checkconf

Avec cette commande on peut specifier le fichier de configuration que l’on veut verifier, dans notre cas, nous allons verifier le fichier /etc/bind/named.conf.local.

Maintenant on va verifier que notre fichier de zone est correcte avec la commande suivante :

sudo named-checkzone makhal.lan /etc/bind/zones/makhal.lan

Redemarrage de Bind9

Normallement, nous avons fini la configuration de notre serveur DNS, maintenant nous allons redemarrer Bind9 avec la commande suivante :

sudo systemctl restart bind9

Test de notre serveur DNS

Avant toute chose nous devons mettre l’addresse DNS du serveur DNS sur les machines clientes. Pour cela, nous allons modifier le fichier /etc/resolv.conf avec la commande suivante :

sudo nano /etc/resolv.conf

Sur ce fichier nous allons ajouter la ligne suivante :

nameserver ip_du_serveur_dns

Maintenant nous allons tester notre serveur DNS.

Sur une machine cliente ou vous avez configure votre serveur DNS, nous allons tester notre serveur DNS avec la commande suivante :

nslookup makhal.lan

Sur ce test, nous avons fait une requete DNS sur notre serveur DNS pour le domaine makhal.lan.

Et voila, nous avons fini la configuration de notre serveur DNS avec Bind9.