CONFIGURER UN SERVEUR DNS SOUS UBUNTU 12.04 LTS Atelier 3 1. Créer une zone primaire de recherche directe 2. Créer une zone primaire de recherche inversée 3. Créer un serveur DNS secondaire Par Jawad Errougui
1. Créer une zone primaire de recherche directe Il s'agit de la principale fonction de Bind : déclarer des zones publiques ou privées. Cela nécessite deux étapes : 1. La création d'un fichier de zone 2. La déclaration de la zone L'exemple suivant montre la création de la zone isgim.tri. Nous utiliserons un fichier de zone existant comme modèle pour la création du fichier /etc/bind/db.isgim.tri : sudo cp /etc/bind/db.local /etc/bind/db.isgim.tri Adaptez-le à vos besoins Voici un exemple de fichier de zone pour isgim.tri : ; BIND data file for isgim.tri $ORIGIN. $TTL 300 ; 5 minutes isgim.tri IN SOA ns1.isgim.tri. j-errougui.isgim.tri. ( 1110210007 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expire 300 ; minimum ) @ IN NS ns1.isgim.tri. @ IN A 192.168.254.10 @ IN MX 10 mail.isgim.tri. $ORIGIN isgim.tri. serv-web IN A 192.168.254.15 serv-ftp IN A 192.168.254.16 serv-mail IN A 192.168.254.17 Par Jawad Errougui Page 2 sur 6
www IN CNAME serv-web ftp IN CNAME serv-ftp mail IN CNAME serv-mail NB : Vous devez incrémenter le numéro de série (Serial Number) à chaque fois que vous modifiez le fichier de zone. Si vous faites de multiples modifications en une seule fois, n'incrémentez le numéro qu'une seule fois. Un fichier de zone est composé d'enregistrement de différents types (SOA, NS, A, PTR, CNAME, MX, SRV ). Quelques explications : $ORIGIN définit le suffixe des lignes suivantes c est l équivalent du signe «@» au début d une ligne. $TTL définit la durée de cache des lignes suivantes le SOA (Start of Authority) est obligatoire, il débute la définition d'une zone avec les paramètres suivants : ns1.isgim.tri est le serveur autoritaire (Primary Master) de la zone j-errougui.isgim.tri est l'email de l'administrateur avec un. à la place de @ 0812201401 est le numéro de série, il permet de donner une version à la configuration actuelle, il faut l'incrémenter à chaque modification. Ici il est créé avec jour mois année révision. viennent ensuite les différentes durées d'expiration en secondes : refresh, retry et expire sont utilisées pour la synchronisation des serveurs secondaires minimum (300 s) est important, il indique la durée de cache des réponses négatives les enregistrements de type A correspondent à l'association classique d'une IP à un nom. Par exemple www.isgim.tri sera résolu en 192.168.254.15 les enregistrements de type CNAME sont des mappages vers d'autres enregistrements les enregistrements de type NS définissent les serveurs DNS capables de répondre aux requêtes les enregistrements de type MX identifient les relais de messagerie SMTP pour les mails du domaine (nom@isgim.tri). Si plusieurs enregistrements sont présents, ceux avec la priorité la plus petite sont prioritaires. Si les priorités sont identiques, un équilibrage de charge est réalisé. Dans l'exemple il y a un seul serveur mail. isgim.tri avec la priorité 10. Par Jawad Errougui Page 3 sur 6
A noter que les enregistrements textes sont relatifs à la zone par défaut, il faut ajouter un. à la fin pour indiquer qu'il s'agit de noms absolus. Ensuite, il faut renseigner la zone dans Bind, pour cela la modification de /etc/bind/named.conf.local est le moyen le plus approprié : zone " isgim.tri " { type master; file "/etc/bind/db.isgim.tri "; Pour appliquer les modifications, il faut redémarrer bind : sudo /etc/init.d/bind9 restart Ou encore sudo service bind9 restart 1. Créer une zone primaire de recherche inversée Maintenant que la zone de recherche directe est configurée pour résoudre les noms d hôtes en adresses IP, il est nécessaire de paramétrer la zone de recherche inverse (Reverse zone). Celle-ci permet de résoudre les adresses IP en noms d hôtes. Pour cela modifiez /etc/bind/named.conf.local et ajoutez ce qui suit : Pour ajouter votre propre résolution de zone DNS, il faut à nouveau créer un fichier de zone inverse, par exemple db.192.168.254 : Créez le fichier de zone inverse en le basant sur le modèle «db.127» sudo cp /etc/bind/db.127 /etc/bind/db.192.168.254 Modifiez ensuite /etc/bind/ db.192.168.254 en changeant les mêmes options que dans /etc/bind/db.isgim.tri : $ORIGIN. $TTL 60 ; 1 minute 254.168.192.in-addr.arpa IN SOA ns1.isgim.tri. j-errougui.isgim.tri. ( 0812201404 ; serial 604800 ; refresh (1 week) 86400 ; retry (1 day) 2419200 ; expire (4 weeks) Par Jawad Errougui Page 4 sur 6
60 ; minimum (1 minute) ) @ NS ns1.isgim.tri. 10 PTR ns1.isgim.tri. 15 PTR www.isgim.tri. 16 PTR ftp.isgim.tri. 17 PTR mail.isgim.tri. Ensuite on ajouter la zone à named.conf.local : zone "254.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168.254"; Après avoir créé le fichier de zone de recherche inverse, redémarrez BIND9 : sudo service bind9 restart 2. Créer un serveur DNS secondaire Le principe du serveur secondaire est de se synchroniser sur le primaire afin d'avoir un serveur de secours. Il est notamment obligatoire pour tout domaine public. Lorsqu'il y a une modification du primaire, celui-ci notifie les secondaires, la zone est transférée et stockée dans un fichier temporaire. Le serial est utilisé pour identifier la version du fichier, il est important de l'incrémenter à chaque modification. Par défaut le primaire autorise tous les transferts et notifie automatiquement les serveurs définis par les enregistrements NS. Il est cependant possible de configurer manuellement ces éléments. Pour cela, ajoutez l'option allow-transfer dans les définitions de zone de recherche directe et inverse du fichier /etc/bind/named.conf.local : zone "isgim.tri" { type master; file "/etc/bind/db.isgim.tri"; allow-transfer {192.168.254.11; Par Jawad Errougui Page 5 sur 6
also-notify {192.168.254.11; Redémarrerz Bind9 dans le serveur DNS primaire : sudo service bind9 restart Installez ensuite le paquetage bind9 sur votre serveur secondaire de la même manière que pour le serveur primaire. La déclaration d'une zone «slave» sur le deuxième serveur est également relativement simple : zone "isgim.tri" { type slave; file "/var/cache/bind/db.isgim.tri"; masters {192.168.254.10; Faites de même pour la zone secondaire de recherche inversée Il faut choisir un répertoire modifiable et définir l'adresse IP du DNS primaire. Le répertoire par défaut des fichiers de zones DNS non-autoritaires est : /var/cache/bind/ NB : Vous devez renseigner dans les fichiers de zones primaires de recherche directe et inversée le serveur DNS secondaire pour qu il puisse participer aux résolutions de la zone, une fois le primaire n est plus accessible. Pour se faire, ajoutez les deux lignes suivantes au fichier /etc/bind/db.isgim.tri : @ IN NS ns2.isgim.tri ns2 IN A 192.168.254.11 Puis dans /etc/bind/db.192.168.254 ceci. @ IN NS ns2.isgim.tri 11 IN PTR ns2.isgim.tri Par Jawad Errougui Page 6 sur 6