Vous êtes sur la page 1sur 22

Ministère de la communication, REPUBLIQUE DE COTE D’IVOIRE

de l’Économie Numérique et de
la Poste.
Poste

Union-Discipline -Travail

DEPLOIEMENT ET
CONFIGURATION
D’UN SERVEUR DNS

PARTICIPANTS : ENSEIGNANT :

N’DO ROGER KAMAGATE BEMAN

DOUKA JEAN ROLAND

KOUAKOU BODROU B.
1

SOMMAIRE

INTRODUCTION

I- GENERALITES SUR LE SERVEUR DNS

1- Définition du serveur DNS

2- Fonctionnement du serveur DNS

3- Sécurité au niveau du serveur DNS

II- INSTALLATION DES MACHINES

1- Installation des serveurs DNS primaire et secondaire

2- Installation de la machine cliente

III- MISE EN PLACE DU SERVEUR DNS

1- Configuration du serveur DNS primaire

2- Configuration du serveur DNS secondaire

3- Configuration de la machine cliente

4- Mise en service du serveur DNS

CONCLUSION
2

INTRODUCTION

Les ordinateurs connectés à un réseau IP comme Internet possèdent des adresses IP. Ces
adresses sont numériques afin de faciliter leurs traitements par une machine. Pour
faciliter l’accès aux systèmes qui disposent de ces adresses, un mécanisme a été mis en
place pour permettre d’associer un nom à une adresse IP plus simple à retenir appelée
nom de domaine. Résoudre un nom de domaine consiste à trouver l’adresse IP qui lui
est associée et cela se fait à travers la mise en place d’une base de données distribuée.
Cette tâche est réalisée par un serveur appelé Serveur DNS. Le premier serveur DNS
s’appelle BIND et c’est le serveur DNS le plus utilisé et le plus populaire car environ
79% d’Internet fonctionne avec ce logiciel.

Alors comment fonctionne le serveur DNS ? Et comment déployer et configurer un


serveur DNS ?
3

I- GENERALITES SUR LE SERVEUR DNS

1- Définition
Conçu en 1983 par Jon Postel et Paul Mochaoetris, le DNS (Domain Name System, ou
système de Noms de Domaine en français) est un service dont la principale fonction est
de traduire un nom de domaine en adresse IP. Autrement dit, le serveur DNS permet la
jonction entre en un site web et une adresse IP qui lui est associé. C’est un annuaire qui
permet de relier un nom de domaine à une adresse IP.

2- Fonctionnement
Supposons que vous voulez entrer www.facebook.com dans votre navigateur pour
accéder au site de Facebook. Lorsque vous aller entrer ce nom de domaine, votre
machine doit commencer par le résoudre en une adresse IP. Mais comment ce
fait la résolution ?
 Tout d’abord, lorsque vous êtes connectés à votre réseau, immediatement votre
serveur DHCP vous donne une adresse IP, un masque de sous-réseau et
probablement une passerelle par défaut, ainsi qu’un serveur DNS.
 Lorsque vous entrez www.facebook.com , vous demandez une résolution au
serveur DNS que vous avez reçu de votre serveur DHCP. Alors celui-ci a deux
moyens de vous fournir la réponse : soit il possède lui-même la reponse, soit il
ne la connait pas et dans ce cas, il doit donc la demander à un autre serveur. Très
souvent il adopte le deuxième moyen car chaque serveur DNS étant responsable
d’un domaine ou d’un certain nombre de domaine bien précis, il se chargera donc
d’aller chercher la bonne réponse sur le bon serveur.

 Il va demander aux serveurs racine l’adresse IP de www.facebook.com . Mais


comme les serveurs racines ne sont pas responsables de ce domaine, ils vont le
rediriger vers un autre serveur qui peut lui donner une information, le serveur
DNS de com.

 Il demande ensuite au serveur DNS de com l’adresse IP de www.facebook.com.


Mais tout comme auparavant, le serveur DNS de com renvoie l’adresse IP du
serveur DNS qui dépend de lui, le serveur DNS de facebook.com

 Enfin, il demande au serveur DNS de facebook.com l’adresse IP de


www.facebook.com et là nous sommes à la source, le serveur DNS de
facebook.com connait l’adresse IP recherché et peut donc l’envoyer.
4

Maintenant nous avons l’adresse IP de www.facebook.com et pouvons directement


accéder au site de Facebook.

NB : Un serveur qui fournit un nom de domaine sans avoir eu à demander l’information


à quelqu’un d’autre fait « autorité »

Les serveurs DNS utilisent un système de cache dans lequel toute information reçue
est stockée pour ne pas avoir à redemander une information de façon répétitive. Mais
ils ne feront pas autorité pour autant car l’information stockée en cache peut ne plus
être valide après un certain temps.

Principe d’une requête DNS


5

3- Sécurité au niveau du serveur DNS

Nous devons aborder le volet sécurité car il existe des moyens de vous diriger
vers d’autres serveurs après avoir demandé à accéder à un site.

En effet, il existe des virus qui modifient vos paramètres réseaux ou votre fichier
« hosts » pour faire pointer les requêtes DNS vers des serveurs pirates. Dans ce cas,
toutes les informations que vous envoyez au serveur sont reçues par le pirate.

Nous pourrons le constater souvent au sein des entreprises dans lesquelles


l’administrateur réseau modifie l’une des entrées DNS d’un site vers un autre site.

L’administrateur réseau de l’ESATIC pourrait ainsi par exemple faire de telles sortes
que, pendant les séances de TP dans la salle informatique, tout étudiant voulant se
connecter à Facebook se connecte au site de l’ESATIC. Cela peut ne pas être un
problème, mais nous verrons la gravité de ce phénomène si nous voulons par exemple
nous connecter à notre banque car cette personne pourrait avoir accès à nos informations
confidentielles.

Ainsi pour empêcher qu’une personne mal intentionnée puisse accéder à nos
informations au cas où cette personne espionne le réseau, nous pouvons utiliser le
protocole https.
6

II- INSTALLATION DES MACHINES


La mise en œuvre du service DNS nécessite l’utilisation d’au moins deux machines, une
qui jouera le rôle de serveur pour la fourniture de service et l’autre, le client, qui recevra
le service de la part du serveur. Mais il est nécessaire de préciser que pour l’élaboration
de notre travail nous utiliserons deux (2) serveurs à savoir un serveur DNS primaire et
un serveur DNS secondaire.
Pour faire ce travail, il nous a été demandé d’utiliser un environnement virtuel pour
l’installation de ces différentes machines. Il est important de procéder au choix de
logiciel de virtualisation pour la réalisation de cette tâche. Il existe plusieurs logiciels de
virtualisation. Ici, nous vous présentons une liste non exhaustive des logiciels de
virtualisation les plus répandus. Nous avons :

- VMware Workstation

-VMware Fusion

-Hyper-V

-VirtualBox

-QEMU
7

Cependant, les plus utilisés sont VirtualBox et VMware Workstation qui sont open
source. Pour ce travail, nous nous pencherons sur VirtualBox pour la virtualisation de
nos machines serveur et cliente.

1- Installation des serveurs DNS primaire et secondaire


L’installation de ces deux serveurs est identique, donc une seule installation sera faite
dans cette partie. Pour notre travail nous utiliserons la distribution Ubuntu-server-18.04
de Linux.
Démarrez la machine “server-primaire ou server-secondaire” avec l’image .iso
d’Ubuntu Server dans le lecteur CD virtuel pour lancer l’installation du système.

Interface plus austère : sélectionnez le langage qui vous convient le mieux


Tout de suite, vous voyez que l’interface d’installation est moins conviviale que sur la
version Desktop. On est dans le monde des pro, on est en mode texte. De plus, malgré
le “bienvenue” dans le bandeau d’en-tête, nous n’avons pas accès au français.
Personnellement, dans les langues proposées, je me sens plus à l’aise avec l’anglais…
donc c’est ce que je choisis pour la suite.
En sélectionnant “Install Ubuntu”, vous allez pouvoir lancer l’installation du système.
L’écran de configuration du réseau vous propose ensuite de configurer votre interface
réseau en DHCP. C’est très bien, sélectionnez “Done” pour passer à la suite.
8

Choisissez l'installation par défaut sur un disque entier Choisissez les options par défaut
pour le partitionnement du disque. Finalement, créez un compte utilisateur pour terminer
l’installation. Il ne vous reste plus qu’à redémarrer la machine et votre serveur est
installé ! Vous voyez que par défaut, aucune interface graphique n’est installée et vous
n’avez accès qu’à une console avec du texte blanc sur fond noir… bienvenue chez les
vrais pros de Linux ;-) Comme pour votre client, il ne nous reste plus qu’à installer une
interface pour le réseau local et vous serez prêt à travailler.
 Fixation de l’adresse réseau des serveurs DNS primaire et secondaire
Installez une 2e carte réseau de type "réseau interne" Vous voyez bien votre carte 1 en
“NAT”, cliquez sur la carte 2 et sélectionnez “Réseau interne”. Cliquez sur “OK” et
démarrez votre machine virtuelle : elle aura maintenant deux cartes réseaux et nous
allons configurer cette deuxième carte.

On vient maintenant sur l’interface console du server et Par la commande


vous pouvez voir l’interface locale "lo” ainsi
que vos deux interfaces réseaux. Normalement, celle que l’on vient de rajouter et
9

qu’on va configurer ici est celle qui n’a pas encore d’adresse IP (ligne qui
commence par inet ). Notez son nom : chez moi elle s’appelle enp0s8

Pour attribuer une IP statique à cette interface, créez le fichier :


/etc/netplan/60-lan_statique.yaml :
Nous allons maintenant fixez l’adresse IP de chaque serveur DNS dans le fichier
/etc/netplan/60-lan_statique.yaml :
 Adresse réseau du serveur DNS primaire (server-primaire)

Une fois le fichier enregistré, vous pouvez appliquer la nouvelle configuration

par la commande :
 Adresse réseau du serveur DNS secondaire (server-secondaire)
10

Une fois le fichier enregistré, vous pouvez appliquer la nouvelle configuration


par la commande :

 Mise en place du paquetage BIND


IL faut maintenant installer le paquetage BIND chargé de fournir le service DNS sur
chaque serveur (serveur primaire et serveur secondaire).
BIND (Berkeley Internet Name Domain) est un logiciel open source permettant de
résoudre les requêtes DNS. Il fournit une plate-forme robuste et stable sur laquelle nous
pouvons construire des systèmes informatiques distribués. Mais il nous incombe la
responsabilité de dire que nous allons, pour ce travail, utiliser la version 9 de BIND
(BIND9).
Pour installer bind9 il faut saisir la commande suivante :

Ensuite installer dnsutils pour fournir des outils très pratiques pour tester et débugger
le service DNS avec la commande :

La documentation BIND9 peut également être trouvée dans le paquet bind9-doc. De


ce fait il convient de l’installer avec la commande :

 Rôle du serveur secondaire


La configuration du serveur DNS secondaire très important dans notre système. En effet,
un serveur DNS primaire interroge un ou plusieurs autre(s) serveur(s) DNS pour
résoudre un nom quand-t-il ne peut le faire lui-même notamment le serveur secondaire.
2- Installation de la machine cliente
La machine cliente peut utiliser soit le système d’exploitation Windows, Linux ou
MacDOS. Mais pour ce travail nous avons utilisé deux machines clientes pour les tests
à savoir Windows et Linux.
La procédure d’installation de la machine cliente sera illustrée avec une machine
utilisant le système Windows, mais plus précisément la version 7 de Windows.
Comme pour le serveur, éteignez votre machine cliente puis dans “configuration” - >
“réseau”, ajoutez une carte 2 en mode “Réseau interne”. Vous pouvez maintenant
redémarrer votre client pour pouvoir configurer cette nouvelle carte réseau.
11

III- Mise en place du service DNS

L’installation du paquetage BIND9 chargé de l’implémentation du service DNS s’est


faite en même temps que certains fichiers de configuration dudit service. Certains
fichiers trouvent dans le répertoire de configuration de BIND9 /etc/bind et d’autres dans
le répertoire d’enregistrement des ressources pour les zones /var/cache/bind. Parmi ces
fichiers on peut citer en autres :
/etc/bind/named.conf : Qui est le fichier principal de configuration du serveur DNS.
/etc/bind/named.conf.options : fichier contenant les options de BIND9.
/etc/bind/named.conf.default-zones : Ce fichier contient les configurations des zones
par défaut.
/etc/bind/named.conf.local : fichier contenant votre zone.
/etc/bind/named.conf.log : On crée ce fichier et On y définit les différentes méthodes de
log pour les différentes catégories.
/etc/bind/db.mondomaine : Il s’agit de la base de données contenant des noms de
domaine
/etc/bind/db.mondaine.inv : Il s’agit de la base de données contenant les adresses IP
permettant de faire une résolution inverse.

1- Configuration du serveur DNS primaire


Dans cette partie du travail, les configurations et les captures d’écran faites sont celles
qui ont permis la mise en place de nos serveurs primaire et secondaire.
 Modification du fichier /etc/bind/named.conf.local
12

Pour accéder au contenu du fichier etc/bind/named.conf.local, il faut taper la commande


nano etc/bind/named.conf.local ou vim /etc/bind/named.conf.local
Les paramètres utilisés pour la configuration du fichier etc/bind/named.conf.local :

Figure 1: Tableau des paramètres de configuration du fichier named.conf.local

Figure 2: Tableau des paramètres de configuration du fichier named.conf.local (suite)

Bonheur.be: est la zone qui permet d’associer au nom de domaine une adresse IP.
Master : permet de préciser qu’il s’agit du serveur DNS primaire.
0.168.192.in-addr.arpa : permet de réaliser l’opération inverse à celle de la zone
bonheur.be
 Ecriture du fichier de zone db.bonheur.be.zone
13

Le fichier de zones réunit tous les enregistrements qui indiquent vers quels serveurs
pointent votre domaine et ses sous-domaines. Vous devez créer votre fichier de zones
tout en gardant le modèle du contenu du fichier db.local afin de définir quelles
adresses et machines devra utiliser votre serveur DNS. Voici comment doit être
renseigné ce fichier :

Figure 1: Tableau des paramètres de configuration d'une zone


Après avoir fait ces configurations, il convient de procéder à une vérification afin
de se rassurer qu’aucune erreur n’a été commise en tapant la commande :

Si la commande n'affiche rien, c'est que le fichier named.conf est valide. Ensuite,
vérifiez la syntaxe du fichier de zone en tapant la commande :
14

Si la commande n'affiche aucun message d'erreur, alors il n'y a pas d'erreur de


syntaxe dans le fichier de zone. Vous pouvez alors dire à Bind de relire son fichier
de configuration avec la commande :

NB : Attention, si vous faites un restart au lieu d'un reload, le cache de votre


serveur DNS se videra.
 Écriture du fichier de zone inverse db.0.168.192.rev
Le fichier de zones inverses réunit tous les enregistrements qui indiquent vers
quels serveurs pointent vos adresses IP. Vous devez créer votre fichier de
zones inverses tout en gardant le modèle du contenu du fichier db.127 afin de
définir quelles adresses et machines devra utiliser votre serveur DNS.
Voici comment doit être renseigné ce fichier :

La configuration du fichier de la zone inverse est identique à celle de la zone de


domaine à quelques détails près (voir le tableau des paramètres de configuration d’une
zone de la figure 3). La différence est perceptible dans l’utilisation du
Paramètre PTR en lieu et place de A ainsi que l’utilisation des adresse IP en lieu et
place du nom de domaine. Ces détails permettent de préciser qu’il s’agit d’une
résolution inverse (on associe l’adresse IP à un nom de domaine).
Pour la suite des configurations, il importe de créer tous les fichiers de log à utiliser à
savoir :
touch /var/log/named/update_debug.log
touch /var/log/named/security_info.log
touch /var/log/named/bind.log
Après avoir crée ces fichiers, il va falloir changer le propriétaire root en bind avec les
commandes suivantes :
chown bind:bind /var/log/named/update_debug.log
15

chown bind:bind /var/log/named/security_info.log


chown bind:bind /var/log/named/bind.log
Pour que ces modifications soient prises en compte, l’on exécute la
commande

Si cette configuration se fait sans erreur, alors la commande qui permet


d’afficher l’état du bind est
Et produit le résultat suivant :

 Éditer le fichier /etc/resolv.conf


/etc/resolv.conf est le fichier de configuration de la bibliothèque resolver permettant
de déterminer, entre autre, quel(s) serveur(s) DNS utiliser pour résoudre un nom de
domaine.
Dans ce fichier vous devez y répertorier :
‐ Votre nom de domaine
‐ Le domaine sur lequel seront exécutées les recherches.
- Et les serveurs DNS avec en premier prioritairement votre serveur DNS qui
correspond à l’adresse IP STATIC que vous avez fixé sur votre interface principale
plus haut dans la configuration
16

 Éditer le fichier /etc/hosts


Ce fichier permet d’attribuer des noms d'hôtes à chacune des adresses IP.
Voici les modifications que vous devez apporter à ce fichier :

‐ L’adresse IP de vos serveurs DNS 192.168.0.2 et 192.168.0.3

‐ La première ligne ne doit pas être modifiée puisque c’est la boucle locale.
‐ VOTREhostname (server-primaire ou server-secondaire).
‐ VOTREhostname.VOTREdomaine.TLD (server-primaire.bonheur.be).
Après avoir finir la configuration du serveur DNS primaire, nous passons à la
configuration du serveur DNS secondaire.
2- Configuration du serveur DNS secondaire

 Modification du fichier /etc/bind/named.conf.local


17

Pour accéder au contenu du fichier etc/bind/named.conf.local, il faut taper la commande


nano etc/bind/named.conf.local ou vim etc/bind/named.conf.local.
Les paramètres des tableaux de la figure 1 et 2 sont utilisables pour la configuration du
fichier /etc/bind/named.conf.local du serveur secondaire.

Type= slave : permet de préciser qu’il s’agit d’un serveur secondaire et l’on ajoute
l’adresse IP du serveur primaire avec le paramètre masters {192.168.0.2}
 Ecriture du fichier de zone db.bonheur.be.zone et de zone inverse
0.168.192.rev
Ces fichiers n’ont plus besoin d’être configurés pour le serveur DNS
secondaire car ils sont directement chargés du serveur primaire vers le serveur
secondaire grâce au paramètre allow-transfer {192.168.0.3} utilisé dans la
configuration du fichier named.conf.local du serveur primaire. Mais pour ceci
soit fait sans erreur il va falloir créer d’abord les fichiers
touch /var/log/named/update_debug.log
touch /var/log/named/security_info.log
touch /var/log/named/bind.log
Ensuite changer le propriétaire root de ces fichiers en bind avec les commandes
suivantes :
chown bind:bind /var/log/named/update_debug.log
chown bind:bind /var/log/named/security_info.log
chown bind:bind /var/log/named/bind.log
18

Et enfin exécuter la commande

 Éditer le fichier /etc/resolv.conf et /etc/hosts


Ces fichiers du serveur secondaire contiennent les mêmes spécifications que celles
notifiées pour le serveur primaire.
3- Configuration de la machine cliente
La configuration de la machine cliente consiste à éditer les fichiers /etc/resolv.conf et
/etc/hosts.
 Éditer le fichier /etc/resolv.conf et /etc/hosts
Dans ce fichier nous allons mettre les informations qui nous permettrons d’accéder ou
joindre nos différents serveurs.
Tout le travail au niveau du client est réalisé dans la partie installation.
4- Mise en service du serveur DNS
Cette partie consiste, après les différentes configurations des serveurs DNS primaire et
secondaire, à savoir si les serveurs font ce pourquoi ils ont été mis en place. Pour
s’assurer de la bonne marche des choses mises en place, nous allons faire des tests à
l’aide de quelques commandes et interpréter par la même occasion les résultats de ces
tests.
Le démon qui fait tourner le service DNS Bind9 est named et il faut toujours le
redémarrer après chaque modification avec la commande :

ATTENTION : Il est vivement conseillé de regarder les logs pour vérifier que le
démarrage du démon s’est correctement effectué avec la commande :

Il faut maintenant vérifier la configuration des fichiers de bind9 avec la commande :


19

 named –g
Le lancement du démon bind9 « named » avec l’option –g permettra de détecter
d’éventuelles erreurs. Si la commande précédente renvoie des erreurs, elle est assez
verbeuse et elle vous donnera des indications sur les modifications à apporter (quel
fichier, quelle ligne, quel problème...). Une mauvaise configuration de Ubuntu-Server
(Partie installation) peut compromettre l'intégrité des services de bind9.
 Tests du fonctionnement de la résolution des noms, résultats et
interprétation
Les tests présentés ici devraient être exécutés sur la machine cliente.
Il existe plusieurs outils pour tester le bon fonctionnement de la résolution des noms tels
que ping, nslookup, host.
 Ping
La commande « ping » est la plus simple (mais la plus limité). Elle permet de tester la
résolution du nom, mais pas la résolution inverse. Pour ce faire, il faut taper la
commande. .

Le server-secondaire a repondu correctement à la requête du client.donc on peut dire, au


vu, des résultats que ce service fonctionne normalement.
 nslookup
La commande « nslookup » du paquet « dnsutils », permet également de tester la
résolution du nom et la résolution inverse :
- Résolution de nom avec nslookup

Le résultat de cette commande montre que la résolution du nom s’est faite sans aucun
problème. En rentrant le nom de domaine du serveur, nous avons récupéré son adresse
IP.
- Résolution inverse avec nslookup
20

Comme nous pouvons le voir, la résolution inverse a belle et bien fonctionné puisque
nous avons obtenu le nom de domaine du serveur primaire à partir de son adresse IP.
Les commandes host et dig ne semblent pas fonctionner sur le système d’exploitation
Windows. De ce fait, nous allons les tester sur une machine Linux.
 host
La commande « host », permet de tester la résolution du nom et la résolution inverse.
- La résolution de nom avec la commande host

Nous constatons que la résolution s’est bien faite puisque nous avons obtenu l’adresse
IP du serveur à partir de son nom de domaine.
- La résolution inverse avec la commande host

Le résultat de cette commande est satisfaisant, ce qui montre une fois de plus que notre
serveur DNS a été bien installé et bien configuré.
 Dig
La commande « dig » du paquet « dnsutils », permet également de tester la résolution
du nom et la résolution inverse. Mais la commande « dig » permet surtout
d’interroger directement le serveur bind9 et obtenir de nombreuses autres
informations.

Figure 4: résultat d'une résolution de nom avec dig Figure 5: résultat de la résolution inverse avec dig
21

CONCLUSION

Au terme de ce travail élaboré dans le cadre de notre projet, nous pouvons dire que les
résultats obtenus sont satisfaisants du point de vue des tests de notre serveur DNS qui
fonctionne correctement. Ainsi notre objectif est atteint dans la mesure où nous avons
détaillé le fonctionnement, déployé et configuré le serveur DNS.
Ce projet a été très enrichissant et nous a permis de nous sentir dans la peau d’un
administrateur réseau.

Vous aimerez peut-être aussi