Vous êtes sur la page 1sur 7

IAT

TP N° 2 : Mise en place du serveur DNS sous Linux (2h)


Mettre en place un serveur DNS principal sous Linux (Ubuntu Server) avec Bind9, pour cela,
après avoir installé votre distribution Linux et configuré le réseau, suivez les étapes suivantes.

A. Installation du paquet bind9 bind9utils

Commençons par installer le paquet bind9 pour transformer notre serveur en serveur DNS,
grâce aux commandes suivantes :

# apt-get update : On met à jour la liste des paquets


# apt-get install bind9 bind9utils : On installe le paquet bind9
grâce à Aptitude

B. Les fichiers de configuration

Les fichiers de configuration de Bind se trouvent dans le répertoire suivant :

Ce répertoire contient les fichiers de configuration suivant :


fichier de conf bind

• Les fichiers "db." correspondent aux fichiers de zones incluent par défaut dans Bind.
Ils vont nous servir de modèle pour la création de nos fichiers de zones.

• Le fichier "named.conf" est le fichier de configuration de Bind9, dans lequel on


trouve un lien vers 3 autres fichiers : "named.conf.options" contient les options de
configuration de Bind; "named.conf.local" sert à déclarer des zones;
"named.conf.default-zones" contient la définition des zones inclues par défaut avec
Bind.

C. Sauvegarde des fichiers de bases

Par sécurité, vous pouvez, si vous le souhaitez copier les 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.sav
# cp named.conf.local named.conf.local.sav

D. Configuration de Bind

Comme je l'ai dis précédemment, le fichier de configuration global de Bind est le fichier
"named.conf.options", voici son contenu :
TP : DNS SOUS GNU/LINUX 1
On peut voir qu'il y a beaucoup de lignes commentées (celles qui débutent par "//"), en ce qui
concerne les options activent, voici quelques informations :

• directory : il s’agit du chemin vers le répertoire qui contient les fichiers de zone.

• dnssec-validation auto : le DNSSEC est un système qui permet de sécuriser les


échanges DNS.

• auth-nxdomain no : Le NXDOMAIN est le message qui signifie que le nom de


domaine n’existe pas (Non existent Domain).

• listen-on-v6 : Active le fait de résoudre les requêtes sur des adresses IPv6.

E. Construction des fichiers de zone

Tout d'abord, il y a deux types de zones :

• Les zones "normales" : elles permettent de retrouver l'adresse IP à partir du nom.

• Les zones "inverses" : elles permettent de retrouver le nom à partir de l'adresse IP,
c'est à dire de faire l'inverse des zones normales. Ce qui permet une résolution dans les
deux sens.

• La construction d'un fichier de zone :

• "$TTL 86400" correspond à la durée de vie des informations fournies et donc la


durée pendant laquelle elles sont gardées en cache par les autres serveurs DNS. Par
défaut, ce temps est définit sur 24 heures (86400 secondes).

• "SOA" signifie Start Of Authority, ceci indique le serveur qui a autorité sur la zone,
puis l’adresse mail du contact technique dont le caractère « @ » est remplacé par un
«.».

• Serial "1" : C’est la version du fichier de configuration. Le serial est surtout utile
quand plusieurs serveurs DNS agissent sur une même zone. Le serial est incrémenté
lorsque des modifications sont effectuées sur la zone, ce qui permet aux autres
serveurs DNS de voir que des modifications ont été effectuées.

TP : DNS SOUS GNU/LINUX 2


• Refresh "604800" : C’est le délai de rafraichissement pour la synchronisation des
configurations entre plusieurs serveurs DNS.

• Retry "86400" : C’est le délai au bout duquel un serveur DNS secondaire devra
retenter une synchronisation si celle qu'il a fait au bout du temps "refresh" a échouée.

• Expire "2419200" : Si toutes les tentatives de synchronisation échouent, un serveur


DNS secondaire considérera qu'il ne peut plus répondre aux requêtes concernant cette
zone une fois que le temps est écoulé. Par défaut le temps est de "2419200" secondes,
soit 28 jours.

• Negative Cache TTL "86400" : Durée de conservation dans le cache de l'information


"NXDOMAIN" lorsqu'un incident se produit.

• Le symbole "@" : Ce symbole permet de représenter le nom de domaine de la zone.


Par exemple, dans notre cas lorsqu'on met "@" c'est comme si on met "uin.info".

Note : Dans le fichier tout ce qui est après un point virgule n'est pas pris en compte par Bind.
Pour cause, ce sont des commentaires.

A la suite de l'en-tête du fichier, on peut écrire les enregistrements DNS en mettant un


enregistrement par ligne.

F. Les types d'enregistrements

Il y a plusieurs types d'enregistrements qui ont chacun un rôle différent :

• NS (Name Server) : Sert à définir le ou les serveurs DNS qui répondent à cette zone.

• A : Enregistrement d'un hôte ayant une adresse IPv4 (32 bits).

• AAAA : Enregistrement d'un hôte ayant une adresse IPv6 (128 bits).

• CNAME (Canonical Name) : Enregistrement qui sert d'alias à un enregistrement


"A" déclaré auparavant.

• MX : Sert à définir le ou les serveurs SMTP à utiliser pour l'envoie des mails selon
un ordre de priorité définit dans l'enregistrement.

G. La syntaxe d'un enregistrement

• Dans les zones « normales » pour les enregistrements « A » :

<nom-de-l'hote> IN A

• Dans les zones « normales » pour les enregistrements « CNAME» :

<nom-de-l'alias> IN CNAME <nom-de-l'enregistrement-de-référence>

• Dans les zones « inverses » pour les enregistrements « PTR » :

IN PTR <nom-de-l'hote>

TP : DNS SOUS GNU/LINUX 3


Remarque : L’adresse IP ne doit pas être indiquée sur 4 octets parce que si la zone inverse est
« 192.168.1 » on indique uniquement le dernier octet de l’adresse IP dans les enregistrements.
Si la zone est « 172.16 » on indiquera les deux derniers octets de l’adresse IP dans les
enregistrements.

H. Mise en place de la zone « uin.info »

Dans un premier temps, on va mettre en place la zone « normale » c'est-à-dire celle qui permet
de retrouver l’adresse IP à partir du nom. De ce fait, le nom de la zone sera le nom du domaine
c'est-à-dire « uin.info».

Pour cela, éditez le fichier « named.conf.local » qui permet d’indiquer les zones. Ajoutez-y
ceci :

// Déclaration de la zone « uin.info» :


zone "uin.info" {
type master;
file "/etc/bind/db.uin.info";
allow-update { none; };
};

• zone "uin.info": On définit le nom de la zone.

• type master : On indique que ce serveur fait autorité sur la zone.

• file "/etc/bind/db.uin.info" : On indique le lien vers le fichier contenant la base


d’enregistrements pour la zone.

• allow-update { none ;} : On n’autorise pas les mises à jour du fichier


d’enregistrements par un tiers, ce qui permet d’augmenter la sécurité et être sur qu’il
n’y ait que le serveur DNS qui s’occupe de la zone.

Une fois que vous avez déclaré la zone, quittez le fichier. Puis, copiez le fichier « db.empty »
sous le nom « db.uin.info» (qui correspond au nom que nous avons indiqué dans la déclaration
de la zone) pour partir d’un fichier modèle :

# cd /etc/bind
# cp db.empty db.uin.info

Ensuite, éditez le fichier “db.uin.info” pour que l’on y ajoute les enregistrements nécessaires.
De plus, on ajoute un enregistrement pour le serveur DNS lui-même. Ce qui donnera les
enregistrements suivants :

srvuin IN A x.x.x.x
poste1 IN A y.y.y.y
poste2 IN A Z.Z.Z.Z

Cet enregistrement permettra de joindre les postes grâce au nom de domaine « www.uin.info».

Serveur Web

On pourrait créer un second enregistrement de type « A » pour faire correspondre l’adresse IP


du serveur Web au nom d’hôte « www » mais on va utiliser le type d’enregistrement « CNAME
». Ainsi, on créera un alias de « srvuin » en « www », en mettant l’enregistrement suivant :

www IN CNAME srvuin

De ce fait, on pourra joindre le serveur Web en utilisant le FQDN « www.uin.info».


TP : DNS SOUS GNU/LINUX 4
Note : Un FQDN (Fully Qualified Domain Name) est un nom de domaine pleinement qualifié,
contenant le nom d’hôte et le nom du domaine.

Lorsqu’on interroge le serveur DNS pour la résolution de noms, il voit que « www » correspond
à « srvuin » et que « srvuin » correspond à l’adresse IP « x.x.x.x ». De ce fait, il y a deux
requêtes effectuées dans la base.

I. Redémarrage de Bind9

Pour que Bind9 prenne en compte les changements que nous venons d’effectuer, on le
redémarrage grâce à la commande suivante :

# service bind9 restart ou # /etc/init.d/bind9 restart

J. Test de la configuration et des fichiers de zones

Des commandes de test de configuration et de test des zones sont comprises dans Bind, les voici
:

• Test de la zone « uin.info» :

# cd /etc/bind (Répertoire où sont stockés les fichiers de zones)


# named-checkzone uin.info db.uin.info

Si tout est correct, vous obtiendrez le résultat suivant :

• Test de la configuration de Bind :

# cd /etc/bind (Répertoire où sont stockés les fichiers de zones)


# named-checkconf named.conf.options

S’il n’y pas d’erreurs de détectées, aucun message ne sera retourné.

K. Configuration des paramètres réseaux du serveur

Il faut déclarer que le serveur est lui-même un résolveur c’est-à-dire un serveur DNS capable
de résoudre les requêtes DNS:

search uin.info (Domaine de recherche)


domain uin.info (Domaine)
nameserver x.x.x.x (adresse du serveur)

Ensuite le réseau pour que la configuration soit prise en compte :

# /etc/init.d/networking restart

L. La commande « nslookup »

TP : DNS SOUS GNU/LINUX 5


Nslookup est un utilitaire disponible sous Windows et Linux qui permet d’interroger un
serveur DNS dans le but d’obtenir des informations sur la résolution d’un nom en adresse IP et
inversement. Par exemple, sur le serveur, saisissez la commande :

# nslookup srvuin.uin.info

On vous indique d’abord quel est le serveur qui vous a répondu puis en dessous le nom de
l’enregistrement et l’adresse IP qui lui correspond. Suite à ce résultat on peut tirer la conclusion
que notre serveur DNS fonctionne.

Si on fait la même chose pour l’enregistrement « www.uin.info» on peut voir que notre alias
c'est-à-dire l’enregistrement CNAME fonctionne :

On peut voir également qu’on accède à notre serveur web en saisissant « www.uin.info»:

M. La zone inverse

Maintenant que notre première zone fonctionne, nous allons créer la zone inverse à celle-ci
c'est-à-dire celle qui permettre de retrouver le nom « srvuin.uin.info» à partir de l’adresse IP «
x.x.x.x ».

Cela se fait sur le même principe que pour la zone « normale ». Pour être plus précis, on édite
le fichier « named.conf.local » et on ajoute la déclaration de la zone. Ensuite, on copie fait une
copie « db.empty » pour partir d’un fichier modèle puis on ajoute les enregistrements dans le
fichier de zone.

• Modification de named.conf.local :

// Déclaration de la zone inverse à « uin.info» :


zone "1.168.192.in-addr.arpa" {
type master;
file "db.uinrev";
allow-update {none;};
};

Exemple de cas sur 192.168.1.0/24

Vous pouvez remarquer que le nom de la zone est « 1.168.192.in-addr.arpa », tout d’abord on
indique, dans l’ordre inverse, les 3 octets de l’adresse IP de la zone représentant le réseau, donc
pour le réseau « 192.168.1.0 » ça donnera « 1.168.192 ». Ensuite on ajoute « in-addr.arpa »
qui est un nom de domaine créé et utilisé mondialement pour la résolution inverse.

• Les enregistrements dans le fichier « db.inverse.uin.info» :

TP : DNS SOUS GNU/LINUX 6


1 IN PTR srvuin (192.168.1.1)
2 IN PTR poste1 (192.168.1.2)

L’enregistrement de type PTR, pour “Pointer Record” permet d’associer une adresse IP à un
nom, ce qui correspond à ce que nous souhaitons faire dans cette zone.

• Que faire après ?

Comme pour la zone précédente, il faut redémarrer le service bind9. Ensuite, vous pouvez
refaire des tests de configuration et des zones grâce à named-checkconf et named-checkzone.
Vous pouvez également faire des tests grâce à nslookup en mettant une adresse IP plutôt qu’un
nom pour vérifier si la zone inverse fonctionne bien.

N. Vider le cache DNS de Windows

Si votre configuration DNS vous semble bonne sur votre serveur DNS et que votre client
Windows a bien comme DNS votre serveur, et lorsque vous faites un nslookup sur un nom ou
une adresse IP vous obtenez une erreur, videz le cache DNS de Windows grâce à la commande
suivante :

C:\ ipconfig /flushdns

O. Débugger le serveur DNS

En cas de problème, vous pouvez également consulter les logs du système qui vous aideront à
les résoudre. Pour rappel on les trouve dans le fichier suivant :

# Tail –f /var/log/syslog

????? MERCI POUR VOTRE ATTENTION ??????

TP : DNS SOUS GNU/LINUX 7

Vous aimerez peut-être aussi