Vous êtes sur la page 1sur 6

Installation bind sous linux

Introduction
Le DNS (Domain Name Service) est un service Internet qui trace les adresses IP en fonction du FQDN (Fully
Qualified Domain Names) et vice versa.

BIND signifie Berkley Internet Naming Daemon.

BIND est le programme le plus communément utilisé pour faire la maintenance d’un serveur DNS sous
Linux.

Dans cet article, nous verrons comment installer et configurer un serveur DNS.

Informations réseau
Nous allons mettre en place un serveur local DNS pour le réseau montré sur le schéma ci-dessous.

Nous utiliserons le domaine « supinfo.net » comme exemple pour cette installation DNS. « mail », « web
», « ns » sont les hôtes qui sont sur le domaine.

Il est possible de configurer un simple système pour agir en tant que serveur DNS cache, Primaire/Master
(Le serveur Primaire/Master est le serveur principale qui fonctionne tout le temps) et Secondaire/Slave (Le
serveur Secondaire/Slave est un serveur qui peut être utiliser pour déléguer des tâches du serveur
principale ou encore prendre le relais si le principale meurt). Nous configurons ce serveur DNS en tant que
Master ainsi qu’en tant que serveur DNS cache.

Nous installerons les serveurs DNS sur l’adresse « 10.42.0.83 ».


Installation de Bind
Installez le package bind9 en utilisant le package approprié pour votre distribution Linux.

Sur Debian/Ubuntu utilisez la commande suivante :

$ sudo apt-get install bind9

Sur Red Hat/cent OS/Fedora utilisez la commande suivante :

# yum install bind9

Toutes les configurations DNS sont stockées sous le répertoire /etc/bind. La configuration primaire est
/etc/bind/named.conf, laquelle inclura les autres fichiers nécessaires. Le fichier nommé /etc/bind/db.root
décrit les serveurs DNS racines du monde.

Configurer le serveur DNS cache


Le travail d’un serveur DNS de cache et d’envoyer des requêtes aux autres serveurs DNS et de garder en
cache les réponses. Ainsi la prochaine fois que la requête sera faite, la réponse sera récupérée directement
depuis le cache. Ce cache est d’ailleurs, mise à jour de façon régulière.

Notez que même s’il est possible de configurer Bind pour qu’il soit un serveur primaire ainsi qu’un serveur
cache, il n’est pas conseillé pour des raisons de sécurité, de le faire. Avoir un serveur cache séparer est
préférable.
Tout ce que nous avons à faire pour configurer un serveur DNS cache est d’ajouter le serveur DNS de votre
FAI (fournisseur d’accès Internet) ou n’importe quel OpenDNS server au fichier
/etc/bind/named.conf.options. Par exemple, nous allons utiliser les serveurs DNS publiques de Google,
8.8.8.8 et 8.8.4.4.

Décommentez et modifié les lignes suivantes dans le fichier /etc/bind/named.conf.options.

forwarders { 8.8.8.8; 8.8.4.4;};

Après le changement dans le fichier, redémarrez le serveur DNS.

$ sudo service bind9 restart

Tester le serveur DNS cache


Vous pouvez utiliser la commande dig pour tester les services DNS :

$ dig ubuntu.com ;; Query time: 1323 msec

Maintenant lorsque vous effectuez une seconde fois la commande dig, il devrait y avoir une amélioration
au niveau du temps de la requête. Comme vous le voyez en dessous la seconde fois le temps n’est que de
3 ms car l’information a été récupérée directement depuis le serveur cache DNS.

$ dig ubuntu.com ;; Query time: 3 msec

Configurer le serveur DNS Primaire/Master


Maintenant, nous allons configurer bind9 comme le Master pour le domaine « supinfo.net ».

Comme première étape dans la configuration de notre serveur DNS, nous devons Forward et Reverse la
résolution de bind9.

Pour ajouter la resolution Forward et Reverse vers bind9, modifiez /etc/bind9/named.conf.local.

zone "supinfo.net" { type master; file


"/etc/bind/db.supinfo.net"; }; zone "0.42.10.in-addr.arpa" {
type master; notify no; file "/etc/bind/db.10"; };

Maintenant le fichier /etc/bind/db.supinfo.net va avoir les détails pour résoudre (la résolution de nom est
le fait de trouver le nom de l'hôte grâce à son adresse IP et vice-versa) le nom de l’hôte à son adresse IP
pour ce domaine/zone, et le fichier /etc/bind/db.10 va avoir les détails pour résoudre l’adresse IP au nom
d’hôte.

Mise en place de la Forward resolution pour le serveur DNS


Primaire/Master
Maintenant nous allons ajouter les détails qui sont nécessaires pour la forward resolution dans le fichier
/etc/bind/db.supinfo.net.

Premièrement, copiez /etc/bind/db.local dans /etc/bind/db.supinfo.net :


$ sudo cp /etc/bind/db.local /etc/bind/db.supinfo.net

Ensuite, modifiez le fichier /etc/bind/db.supinfo.net et remplacez ce qui suit.

1. Dans les lignes qui comportent SOA : localhost. - C’est le FQDN du serveur en charge de ce domaine.
Nous avons installé bind9 sur l’adresse 10.42.0.83, pour laquelle le nom d’hôte est « ns ». Remplacez donc
« localhost. » par « ns.supinfo.net. ». Vérifiez bien que cela termine par un point.

2. Dans les lignes qui comportent SOA : root.localhost. - C’est l’adresse e-mail de la personne qui est
responsable de ce serveur. Utilisez un point au lieu d’un arobase. On remplace donc par lak.localhost.

3. Dans les lignes qui comportent NS : localhost. - Cela définit le serveur DNS du domaine. Nous devons
changer ceci vers le FQDN du serveur DNS. Changez donc pour « ns.supinfo.net. ». Oubliez pas le « . » À la
fin.

Ensuite définissez-le record A et record MX pour le domaine. Le record A est celui qui associe le nom d’hôte
à l’adresse IP, et le record MX indiquera le serveur mail à utiliser pour ce domaine.

Une fois que les changements sont faits, le fichier /etc/bind/db.supinfo.net ressemblera à sa :

$TTL 604800 @ IN SOA ns.supinfo.net. lak.localhost. ( 1024 ;


Serial 604800 ; Refresh 86400 ; Retry 2419200 ;
Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.supinfo.net.
supinfo.net. IN MX 10 mail.supinfo.net. ns IN A 10.42.0.83 web IN A
10.42.0.80 mail IN A 10.42.0.70

Mise en place de la Reverse resolution pour le serveur DNS


Primaire/Master
Nous allons ajouter les détails nécessaires pour la Reverse Resolution dans le fichier /etc/bind/db.10.
Copiez le fichier /etc/bind/db.127 dans /etc/bind/db.10.

$ sudo cp /etc/bind/db.127 /etc/bind/db.10

Ensuite, modifiez le fichier /etc/bind/db.10, échangez les mêmes options que dans le fichier
/etc/bind/db.supinfo.net.

$TTL 604800 @ IN SOA ns.supinfo.net. root.localhost. ( 20 ;


Serial 604800 ; Refresh 86400 ; Retry 2419200 ;
Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.

Ensuite, pour chaque record A dans le fichier /etc/bind/db.supinfo.net, ajoutez un record PTR.

$TTL 604800 @ IN SOA ns.supinfo.net. root.supinfo.net. ( 20 ;


Serial 604800 ; Refresh 86400 ; Retry 2419200 ;
Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 83 IN PTR
ns.supinfo.net. 70 IN PTR mail.supinfo.net. 80 IN PTR
web.supinfo.net.
Enfin, redémarrez le service bind9 :

$ sudo service bind9 restart

Enregistrements
Il existe différents types d’enregistrements représentant chacun un type information
différent. Voici une liste des plus courants :

Enregistrement A
C’est l’enregistrement le plus courant. Il fait correspondre une adresse IPv4 à un nom
d’hôte.
www IN A A.B.C.D

Enregistrement AAAA
Variante de l’enregistrement A, il fait correspondre une adresse IPv6 à un nom d’hôte.
www IN AAAA ::A

Enregistrement CNAME (Canonical Name)


Il permet de créer un alias pointant vers un autre enregistrement du domaine courant
ou d’un domaine externe. Il est possible de créer un enregistrement CNAME pointant
vers un autre enregistrement CNAME mais cette pratique double le nombre de
requêtes, il et donc déconseillé de la pratiquer.
mail IN CNAME wwwftp IN CNAME ftp.domain.tld.www IN A A.B.C.D

Enregistrement MX (Mail Exchange)


Il donne le serveur d’envoi d’emails. Cet enregistrement doit pointer obligatoirement
vers un enregistrement de type A et pas un enregistrement CNAME. Il est possible de
définir une priorité sur chaque enregistrement pour donne le serveur email à requêter
en priorité. Si ce serveur est indisponible, le serveur ayant la priorité la plus proche sera
requêté à la place.
IN MX 10 mail1 IN MX 50 mail2mail1 IN A A.B.C.Dmail2 IN A
A.B.C.D

Enregistrement NS (Name Server)


Il définit les serveurs DNS du domaine. Cet enregistrement doit pointer obligatoirement
vers un enregistrement de type A et pas un enregistrement CNAME.
IN NS domain.tld.ns IN A A.B.C.D
Enregistrement TXT
Il permet de définir un enregistrement contenant un texte libre. Cet enregistrement est
notamment utilisé pour confirmer le détenteur du domaine pour pouvoir utiliser
certains services externes tel que Google Webmaster tools ou encore un service d’envoi
de mails (Mandrill, Mailgun, …).
domain.tld. IN TXT "text"

Test
Afin de s’assurer du bon fonctionnement de notre serveur et de vérifier que les
enregistrements ont bien été pris en compte et son correctes, des tests vont être
nécessaires. Pour tester ces enregistrements nous allons utiliser dig.
dig -x 127.0.0.1

Vous devriez voir une sortie console similaire à celle-ci :


; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> -x 127.0.0.1;; global options: +cmd;; Got answer:;; ->>HEADER<<-
opcode: QUERY, status: NOERROR, id: 63705;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0,
ADDITIONAL: 0[...];; Query time: 4 msec;; SERVER: 192.168.245.2#53(192.168.245.2);; WHEN: Wed Apr 08 16:30:11
CEST 2015;; MSG SIZE rcvd: 63

Vous pouvez également demander de voir les enregistrements DNS pour un domaine
spécifique.
dig mysite.lan

Il ne vous reste plus qu’à comparer le retour de la commande avec les enregistrements
que vous avez rentrez précédemment pour le domaine. Les enregistrements sont
normalement les mêmes.

Conclusion
Maintenant que nous avons configuré le serveur DNS pour notre domaine. Nous allons tester notre serveur
DNS en faisant un ping vers mail.supinfo.net depuis web.supinfo.net.

Si le ping s’effectue avec succès, alors le serveur DNS est bien configuré.

OUMAIMA DEROUI

Vous aimerez peut-être aussi