9

Click here to load reader

Créer Un Serveur DNS Avec Bind9 Sous Linux

Embed Size (px)

DESCRIPTION

Creation DNS sous Linux

Citation preview

  • Crer un serveur DNS avec Bind9 sous Linux

    Vous avez sans doute dj entendu parler du DNS, un protocole incontournable dans lemonde du rseau. Vous retrouvez ce protocole dans absolument nimporte quel appareilpouvant se connecter internet ou sur un rseau quelconque : ordinateurs, box internet,consoles de jeu, smartphones

    Le fait est que sans DNS, avec les millions dappareils connects internet aujourdhui et lesmilliers de serveurs qui existent dans le monde, il serait impossible de pouvoir surfercorrectement sur internet. Rien quen voulant accder un moteur de recherche, par exempleGoogle, grce au DNS vous tapez dans votre URL google.fr . Mais si aucun serveur DNSnavait t mis en place, alors la place de google.fr , il aurait fallu entrer 173.194.41.151 . Encore faut-il savoir que cette adresse IP appartient Google. Il est toutde mme plus facile de retenir un nom quune suite de chiffre vous ne trouvez pas ?

    Et dans un rseau dentreprise avec 300 postes vous imaginez sil fallait retenir les 300 IPplus les IP des routeurs, serveurs Cest absolument impossible et la ractivit en cas depanne serait catastrophique !

    Comme vous pouvez le constater, pas de DNS, pas dinternet et une gestion des rseauxdentreprise dsastreuse. Cest aussi simple que a.

    Cest pour cela que je vais vous expliquer comment fonctionne un serveur DNS et lesconfigurations appliquer pour en crer un. Si vous voulez suivre le tutoriel suivant, il vavous falloir un Linux (Debian ou Ubuntu feront trs bien laffaire) et Bind9 dinstall (je vousrecommande de linstaller par lintermdiaire des dpts logiciels).

    1) Fonctionnement dun serveur DNSLe service DNS cest quoi ? Pour info, DNS = Domain Name System. Cest un systmehirarchique distribu permettant la rsolution des noms de machines en adresses IP etinversement.

    Le DNS considre le rseau comme une arborescence de domaines.

    Voici un schma sur le fonctionnement de larborescence :

  • Un nom de domaine est en fait une succession de domaines spars par un point. Par exemple .net. est un TLD (Top Level Domain), sous-domaine de la racine. virtualix.net. est unsous-domaine de .net. .

    La rsolution de nom de domaine se fait en parcourant la hirarchie de haut en bas et donc dedroite gauche. Si la dlgation ne se fait pas correctement chaque niveau alors larsolution de nom de domaine ne se fera pas.

    Le FQDN (Fully Qualified Domain Name) dsigne de manire unique une machine dans lerseau. Ici le FQDN est www.virtualix.net. .

    Dans une entreprise vous aurez toujours deux serveurs DNS. Un serveur primaire et unserveur secondaire qui va soccuper de la rsolution de nom de domaine en cas dedysfonctionnement du serveur primaire.

    Dans un serveur DNS vous avez deux types de zones : le premier type va rsoudre les nomsde domaine par nom dhte et le deuxime type va rsoudre les noms de domaine parrsolution inverse (A partir dune adresse IP).

    Maintenant que vous savez comment fonctionne le service DNS, attaquons nous la crationdun serveur DNS. La rsolution de nom se fera uniquement de manire locale, on utiliseradonc comme domaine virtualix.intra . En effet comme les requtes se feront uniquement demanire locale on peut crer arbitrairement nos domaines de premier niveau.

  • 2) Cration du serveur DNS matreLorsque vous avez install Bind9 depuis les dpts, le dossier de configuration de celui-ci sesitue /etc/bind/ .

    Les fichiers de configuration de Bind9 se nomment named.conf , named.conf.local et named.conf.options .

    Voici le fichier named.conf :

    On ne touchera pas ce fichier.

    Voici le fichier named.conf.local :

    Cest ce fichier quon modifiera pour ajouter nos zones.

    Le fichier named.conf.options ne sera pas abord dans cet article.

    On va crer donc les zones correspondant virtualix.intra .Ma carte est configure avec ladresse IP fixe suivante :192.168.1.2; 255.255.255.0

    Voici quoi ressemble le fichier named.conf.local configur :

  • Dans le fichier de configuration on peut voir que le serveur est bien de type master et queles fichiers de zone se situeront dans /etc/bind/ .

    Maintenant configurons les fichiers de zones.

    Voici quoi ressemble le fichier zone.virtualix.intra :

    Voici quoi ressemble le fichier rev.192.168.1 :

  • Et cest l que vous vous dites, mais cest quoi IN, SOA, CNAME, PTR et toutes cesvaleurs, je ny comprends rien. Patience jy viens.

    Les fichiers de configuration qui contiennent les enregistrements DNS sont appels Ressource Records . Ces Ressource Records contiennent diffrents typesdenregistrements que nous allons dcrypter :

    - TTL (Time To Live) : Cest un terme trs connu dans le domaine du rseau et quidfinit dans le cas prsent la dure de vie de lenregistrement dans la mmoire cache duserveur.

    - IN : Correspond la famille de protocoles TCP/IP.

    - SOA (Start of Authority) : Permet de dfinir et dcrire le serveur ayant autorit sur lazone ainsi que ladresse lectronique de ladministrateur du serveur DNS.Serial : Cest le numro de version pour la zone en question. Par convention le serial est dfinide cette faon : YYYYMMDDxx . YYYYMMDD est la date laquelle la zone a tdernirement modifie et xx est le numro de version du jour.Refresh : Priodicit laquelle les serveurs esclaves regardent si le serial a t incrment.Dans le cas o il la t, les serveurs esclaves copient la mise jour de la zone en question.Retry : Dure entre la dernire tentative de mise jour qui a choue et la prochaine tentativede mise jour de la zone en question.Expire : Dure de validit de la zone pour les serveurs esclaves. Si les serveurs esclaves nepeuvent joindre le serveur matre, la zone est considre comme invalide.Minimum : Dure de vie des demandes denregistrements conservs dans la mmoire cacheconsidrs comme inexistants.

    - NS (Name Server) : Noms des serveurs faisant autorit sur la zone (matres ouesclaves).

    - MX (Mail Exchanger) : Nom de serveur de courrier lectronique.

    - CNAME : Permet de dfinir des alias associ des noms de machines.

    - A : Fais correspondre un nom dhte une adresse IPv4. Si ladresse est de type IPv6, letype denregistrement est AAAA .

  • - PTR : Fais correspondre une adresse IPv4 ou IPv6 un nom dhte. Cest linverse de A ou AAAA .

    Aprs avoir configur Bind9 vous pensez que le travail est termin et que votre serveur DNSest fonctionnel. Seulement comment en tre sr sans avoir test notre configuration ? Cestpour cela que nous allons tre notre propre client sur le serveur matre en modifiant lun destrois fichiers dcrits ci-dessous suivant votre configuration.

    Il faut modifier le fichier /etc/dhcp/dhclient.conf si votre carte est en mode DHCP etdcommenter puis modifier les deux lignes suivantes :

    Si votre carte est en mode statique, il faut modifier le fichier /etc/resolv.conf et ajouter leslignes suivantes :

    Si vous avez resolvconf dinstall et que votre carte est en mode statique, il faut modifierle fichier /etc/resolvconf/resolv.conf.d/head pour ajouter les deux lignes du dessus.

    Lentre search indique que maintenant nous faisons partie du domaine virtualix.intra et lentre nameserver indique que notre serveur DNS sera le premier appel pour larsolution de nom de domaine.

    Aprs toutes ces oprations, redmarrez le serveur puis faites des tests pour voir si le serveurDNS fonctionne correctement en utilisant les commandes suivantes : host, nslookup et dig.

    Voici comment utiliser la commande host :

    Voici comment utiliser la commande nslookup :

    Voicicomment utiliser la commande dig :

  • Vous pouvez aussi consulter les logs systme de Bind9 avec la commande suivante :

    tail -30 /var/log/syslog

    Si tout fonctionne, vous tes enfin parvenu avoir un serveur DNS fonctionnel. Autrementreprenez toutes les tapes depuis le dbut. Il suffit parfois dune seule faute de frappe danslun des fichiers de configuration pour empcher le bon fonctionnement du serveur DNS.

    3) Cration du serveur DNS esclaveMaintenant que le serveur matre a t cr, il est temps de passer la cration du serveuresclave qui servira en tant que serveur de secours en cas de dfaillance du serveur matre afinde permettre la continuit du service.

    Aprs avoir install votre distribution Linux et Bind9 sur votre deuxime serveur nous allonspasser la configuration du service DNS.

    Sur mon second serveur ma carte rseau est configure avec ladresse IP fixe suivante :192.168.1.3 ; 255.255.255.0

    Pour le serveur esclave, le fichier named.conf.local sera configur de cette manire :

    Dans le fichier de configuration on peut voir que le serveur est de type slave , il fautrenseigner ladresse IP du ou des serveur(s) matre(s) et enfin il faut mettre un nom de fichiermais pas le chemin entier /etc/bind/ .Pourquoi ? Parce que lorsque la zone sera copie, Bind mettra les fichiers de zone dans /var/cache/bind puisque ces fichiers sont temporaires et seront recopis partir du serveurmatre si les fichiers de zone ont t modifis.

  • Revenons maintenant sur le serveur matre et procdons quelques petits changements sur lefichier de configuration et sur les fichiers de zone afin dintgrer le serveur secondaire auserveur principal.

    Voici la configuration pour le fichier named.conf.local :

    On peut voir dans le fichier de configuration du serveur matre que deux lignes ont trajoutes: notify et allow-transfer qui autorisent le serveur esclave recopier les informationsde zone.

    Voici maintenant la configuration pour les deux fichiers de zone zone.virtualix.intra et rev.192.168.1 :

  • Comme vous pouvez le constater, je viens de rajouter une entre A et une entre NS ,les entres de mon serveur esclave.

    Maintenant faites comme pour le serveur matre et faites en sorte dtre votre propre client surle serveur esclave et faites les tests avec host, nslookup et dig .

    Pour tre certain que le transfert de zone seffectue correctement, je vous invite consulter leslogs systme. Si le transfert a bien t effectu alors votre serveur DNS esclave estoprationnel, sinon reprenez toutes les tapes depuis de dbut.

    4) ConclusionAu cours de cet article nous avons dfini ce quest un service DNS et nous avons cr unservice DNS complet avec un serveur matre et un serveur esclave.

    Dans un prochain article, jaborderai les notions de DNS dynamique (DNS + DHCP) et descurisation du service DNS.