Table of Contents
Prérequis
Avant toute tentative de gestion DNS de votre nom de domaine, il vous est nécessaire d'avoir un contrôle total sur ce dernier. Un serveur DNS exige une machine sous Linux avec accès root.
Installation
BIND9 (pour Berkeley Internet Name Daemon) reste le standard en terme de serveur et de gestion DNS. La version 10 étant toujours en cours de développement, nous nous pencherons exclusivement sur la 9.
Exécuter la commande suivante dans le terminal de votre session (sous root, rappelons-le):
aptitude install bind9 dnsutils
Acceptez l'installation des diverses dépendances qui pourraient apparaitre et passez à l'étape suivante: la configuration.
Configuration
La configuration du serveur DNS passe par plusieurs fichiers, détaillés ci-dessous:
Fichier | Localisation | Description |
---|---|---|
resolv.conf | /etc/resolv.conf | Contient l'adresse IP de votre serveur et des DNS secondaires. |
named.conf | /etc/bind/named.conf | contient les configurations principales de votre serveur DNS. |
named.conf.local | /etc/bind/named.conf.local | Permet de définir les zones relatives à vos domaines assurant leurs résolutions par votre serveur DNS. |
named.conf.options | /etc/bind/named.conf.options | Permet de définir de nombreuses options sur votre serveur DNS. |
db.<domaine>.ext | /etc/bind/zones/db.<domaine>.ext | Fichier de configuration principal d'un domaine (NS, SOA, CNAME etc.) |
x.x.x.x.in-addr.arpa | /etc/bind/zones/x.x.x.x.in-addr.arpa | Fichier définissant la zone de reverse de l'adresse IP de votre machine. |
resolv.conf
resolv.conf permet de définir des adresses de serveurs de noms nécessaires à la résolution des adresses IP.
Son contenu est généralement déjà généré à l'installation de votre distribution par la société hébergeant votre machine.
Ouvrez le fichier avec la commande:
nano /etc/resolv.conf
Par défaut, son contenu est le suivant:
nameserver 127.0.0.1 nameserver x.x.x.x
La deuxième ligne correspond, fréquemment, à l'adresse reverse d'un DNS secondaire de votre société d'hébergement, il n'est pas conseillé de la supprimer.
Ajoutez à la fin du fichier:
search <Votre nom de domaine> nameserver <Adresse IP de votre machine> nameserver <DNS secondaire>
Exemple:
search exampledomain.com nameserver 91.121.28.186 nameserver 213.186.33.199
Le DNS secondaire (ici 213.186.33.199) est généralement fournit par la société hébergeant votre domaine.
Pour une aide plus complète sur la gestion de ce fichier, veuillez vous référer à cet article.
named.conf
named.conf contient les configurations principales de votre serveur DNS.
Ouvrez le fichier avec la commande:
nano /etc/bind/named.conf
Avant toute modification, prenez compte du commentaire d'avertissement:
If you are just adding zones, please do that in /etc/bind/named.conf.local
Passez donc à la configuration du fichier named.conf.local
Pour une aide plus complète sur la gestion de ce fichier, veuillez vous référer à cet article.
named.conf.local
named.conf.local permet de définir les zones relatives à vos domaines assurant leurs résolutions par votre serveur DNS.
Ouvrez le fichier avec la commande:
nano /etc/bind/named.conf.local
Puis ajouter une zone correspondant à votre nom de domaine:
zone "<domaine>.ext" { type master; file "/etc/bind/zones/db.<domaine>.ext"; allow-transfer {"none";}; };
Exemple:
zone "exampledomain.com" { type master; file "/etc/bind/zones/db.exampledomain.com"; allow-transfer {"none";}; };
- zone définit votre nom de domaine complet.
- type master définit le type de votre domaine.
- file définit le chemin du fichier contenant toutes les informations relatives à votre domaine.
- allow-transfer définit si votre domaine peut être transféré par une adresse ou un domaine spécifique (“none” indique qu'il ne peut pas être tranférable).
Pour une aide plus complète sur la gestion de ce fichier, veuillez vous référer à cet article.
named.conf.options
named.conf.options permet de définir de nombreuses options sur votre serveur DNS.
Voir cet article
db.<domaine>.ext
db.<domaine>.ext correspond au fichier de configuration principal de votre domaine. Si votre domaine est exampledomain.com alors le fichier sera db.exampledomain.com.
Créez et ouvrez le fichier avec les commandes (en prenant comme exemple le domaine exampledomain.com):
touch /etc/bind/zones/db.exampledomain.com nano /etc/bind/zones/db.exampledomain.com
Un contenu typique se présente comme ceci:
$TTL 12H $ORIGIN exampledomain.com. @ IN SOA servername.com. webmaster.exampledomain.com. ( 2012021401 ; Serial (yyyy mm dd rev) 6H ; Refresh 10M ; Retry 2W ; Expire 8H ; Minimum TTL ) IN NS servername.com. IN NS ns.hoster.com. IN MX 10 mail.exampledomain.com. exampledomain.com. IN A 91.121.28.186 ns IN A 91.121.28.186 mail IN A 91.121.28.186 www IN CNAME exampledomain.com. ftp IN CNAME exampledomain.com.
- $TTL (Time To Live) : Définit la durée pendant laquelle l'enregistrement sera conversé en cache par les DNS.
- $ORIGIN : Nom de domaine complet.
- servername.com. : Nom pleinement qualifié du serveur de nom.
- webmaster.exampledomain.com. : Adresse mail de l’administrateur du domaine (l'arobase doit être remplacer par un point).
- Serial : Numero de série permettant au serveur secondaire de savoir quand l'enregistrement doit être mis à jour. Il s'écrit par convention de la façon suivante AnnéeMoisJourRevision, ce qui donne par exemple 2012021401 (14 février 2012 révision 1). Le numéro de révision doit être incrémenté A CHAQUE modification du fichier.
- Refresh : Fréquence à laquelle le serveur secondaire vient consulter de nouveau le serveur primaire (rafraichissement) (ici 6 heures).
- Retry : Délai au bout duquel le serveur secondaire tente de reconsulter le serveur primaire si la dernière tentative à échouer (ici 10 minutes).
- Expire : Durée après laquelle il considérera que le serveur primaire a expiré (retiré du service) (ici 2 semaines).
- Minimum TTL : Durée de vie minimum du cache (ici 8 heures).
- NS : Noms des serveurs de nom gérant le domaine. Le premier étant la machine elle-même, le deuxième est le host secondaire (DNS) fourni par l'hébergeur de votre domaine.
- MX : Adresse des relais pour les emails.
- A : Enregistrement associant un nom à une adresse IP.
- CNAME : Alias renvoyant au nom de domaine principal (utilisé pour créer des sous-domaines et configuré via un Virtual Host).
Exemple:
Pour le domaine inyourface.net ayant pour serveur de nom ks25090.kimsufi.com (IP: 91.121.28.186), le host secondaire ns.kimsufi.com fournit par la société d'hébergement du domaine et une adresse email d'administration en owner@inyourface.net:
$TTL 12H $ORIGIN inyourface.net. @ IN SOA ks25090.kimsufi.com. owner.inyourface.net. ( 2012021405 ; Serial (yyyy mm dd rev) - Revision 5 6H ; Refresh 10M ; Retry 2W ; Expire 8H ; Minimum TTL ) IN NS ks25090.kimsufi.com. ; Host primaire IN NS ns.kimsufi.com. ; Host (DNS) secondaire IN MX 10 mail.inyourface.net. ; Relais email inyourface.net. IN A 91.121.28.186 ; Définition du domaine par l'adresse IP ns IN A 91.121.28.186 ; Définition du ns.inyourface.net par l'adresse IP mail IN A 91.121.28.186 ; Définition du mail.inyourface.net par l'adresse IP www IN CNAME inyourface.net. ; Définition de l'alias www.inyourface.net ftp IN CNAME inyourface.net. ; Définition de l'alias ftp.inyourface.net (accès ftp) forum IN CNAME inyourface.net. ; Définition de l'alias forum.inyourface.net (espace communautaire) www.inyourface.net. CNAME inyourface.net. ; Sous-domaine www pleinement déclaré (parfois nécessaire à son bon fonctionnement)
x.x.x.x.in-addr.arpa
x.x.x.x.in-addr.arpa correspond au fichier définissant la zone de reverse de l'adresse IP de votre machine. Si l'adresse IP de votre machine est 91.121.28.186 alors le reverse est 186.28.121.91 (l'inverse), le fichier de configuration sera donc 186.28.121.91.in-addr.arpa.
Créez et ouvrez le fichier avec les commandes (en partant du principe que le reverse est 186.28.121.91):
touch /etc/bind/zones/186.28.121.91.in-addr.arpa nano /etc/bind/zones/186.28.121.91.in-addr.arpa
Un contenu typique se présente comme ceci (reprenant l'exemple du domaine inyourface.net):
$TTL 12H @ IN SOA ks25090.kimsufi.com. owner.inyourface.net. ( 2012021401 ; Serial (yyyy mm dd rev) - Revision 1 8H ; Refresh 30M ; Retry 4W ; Expire 8H ; Minimum TTL ) IN NS ks25090.kimsufi.com. ; Host primaire IN NS ns.kimsufi.com. ; Host (DNS) secondaire IN PTR inyourface.net. ; Zone(s) gérée(s)
- PTR : Précise les zones (domaines) gérées par cette IP.
Tests des configurations
Avant d'indiquer à BIND9 de prendre en compte nos nouvelles zones, quelques tests s'imposent.
named.conf.local
Vérifiez la configuration du fichier named.conf.local via la commande:
named-checkconf /etc/bind/named.conf.local
Si aucun message d'erreur n'apparait c'est que la configuration est correcte.
db.<domaine>.ext
Vérifiez la configuration du fichier de votre domaine via la commande:
named-checkzone domaine fichier_zone_domaine
Exemple:
named-checkzone exampledomain.com db.exampledomain.com
Execution de la commande:
zone domaine/IN: load serial XXXXXXXX OK
Si un message de ce type apparait alors la configuration du fichier est correcte.
x.x.x.x.in-addr.arpa
Même procédé que précédemment.
Relancement de BIND9
Lorsque tous les fichiers de configurations ont été validés, nous pouvons forcer BIND9 a les prendre en compte via la commande:
/etc/init.d/bind9 reload
Tests du serveur DNS
Il est nécessaire de vérifier à présent que le serveur DNS répond correctement aux demandes extérieures.
Testez la résolution de domaine via la commande:
nslookup exampledomain.com. servername.com
Exemple:
nslookup inyourface.net. ks25090.kimsufi.com
Execution de la commande:
Server: ks25090.kimsufi.com Address: 91.121.28.186#53 Name: inyourface.net Address: 91.121.28.186
Si un message de ce type apparait alors la résolution est correcte.
Testez la résolution inverse (reverse):
nslookup 91.121.28.186 ks25090.kimsufi.com
On interroge le serveur secondaire afin de s'assurer qu'il a bien pris en compte le fichier de résolution du domaine:
dig inyourface.net +nssearch
Execution de la commande:
SOA ks25090.kimsufi.com owner.inyourface.net. XXXXXXXXXX [...] from server ks25090.kimsufi.com in 31 ms. SOA ks25090.kimsufi.com owner.inyourface.net. XXXXXXXXXX [...] from server ns.kimsufi.com in 22 ms.
Si un message de ce type apparait alors la résolution est correcte.
Conclusion
boring mode: on