Vous êtes sur la page 1sur 8

1.

Configuration d’un serveur DNS sous unix

BIND (Berkeley Internet Name Domain), précédemment appelé: Berkeley Internet Name Daemon est
le serveur DNS le plus utilisé sur Internet, spécialement sur les systèmes de type UNIX et est devenu de
facto un standard.

La configuration de bind ce fait en modifiant le fichier :

 /etc/named.conf : Contient les paramètres généraux.


 /var/named/named.ca : Indique les serveurs dns racines.
 /var/named/named.local : résolution locale des adresses loopback
 et en créant des fichiers de zone dans le répertoire /var/named/.

1.1. /etc/named.conf

Le fichier racine pour la configuration du serveur de nom est le fichier "/etc/named.conf". Ce fichier est
lu au démarrage du service et donne la liste des fichiers qui définissent la base de données pour la zone.

Déclaration options

La déclaration options permet de paramétrer des options globales du serveur de noms. Une seule
déclaration options peut être utilisée dans le fichier /etc/named.conf. Voici un exemple de déclaration
options avec les options les plus utilisés :

options {

Directory chemin ;

};

 directory : spécifie le répertoire de travail du serveur de noms. Par défaut, le répertoire


/var/named est utilisé
 Déclaration de zone

Une déclaration de zone définit les caractéristiques particulières d’une zone, tel que le nom de son
fichier de configuration … :

Zone nom_domaine in {
Type master ;
File nom ;
};
zone nom_domaine in {
type slave ;
masters {adr_ip ; [adr_ip ; ]} ;
file nom ;
};
zone «.» in {
type hint ;
file nom;
};

Dans la déclaration, nom-domaine correspond au nom de la zone. Cet attribut est particulièrement
important, puisqu'il représente la valeur par défaut assignée à la directive $ORIGIN utilisés au sein du
fichier de zone correspondant.
Parmi les options les plus courantes de la déclaration de zone figurent:

 type : définit le type de zone. Ci-après figure une liste des types valides:
 hint : un type spécial de zone utilisé pour diriger des transactions vers les serveurs de noms
racines qui résolvent des requêtes lorsqu'une zone n'est pas connue autrement. Aucune
configuration au-delà de la valeur par défaut n'est nécessaire avec une zone hint.
 master : désigne le serveur de noms faisant autorité pour cette zone. Une zone devrait être
configurée comme de type master (maître) si les fichiers de configuration de la zone se
trouvent sur le système.
 slave : désigne le serveur de noms comme serveur esclave pour cette zone. Cette option
spécifie également l'adresse IP du serveur de noms maître pour cette zone.
 masters : l'option masters établit une liste des adresses IP à partir desquelles demander des
informations sur la zone faisant autorité. Cette option ne doit être utilisée que si la zone est définie
comme de type slave.
 file : spécifie le nom du fichier qui contient les données de configuration de la zone, dans le
répertoire de travail named.
 allow-transfer : spécifie les serveurs esclaves qui sont autorisés à requérir un transfert des
informations de la zone. Par défaut toutes les requêtes de transfert sont autorisées.
 notify : informe les serveurs esclaves lorsqu'une zone est mise à jour. Les options suivantes
sont acceptées:
 yes : informe les serveurs esclaves.
 no : n’informe pas les serveurs esclaves.
 allow-query : spécifie les clients qui sont autorisés à requérir des informations à propos de
cette zone. Par défaut toutes les requêtes d'informations sont autorisées.
 allow-update : spécifie les hôtes qui sont autorisés à mettre à jour dynamiquement des
informations dans leur zone. Par défaut aucune requête de mise à jour dynamique n'est autorisée.
Ci-dessous se trouve un exemple de déclaration de zone pour le serveur de nom primaire
hébergeant ofppt.org :
Zone ofppt.org IN {
type master;
file db.ofppt;
allow-update {none};
};

La déclaration de zone pour le serveur esclave de ofppt.org ressemble à l’extrait ci-dessous :


Zone ofppt.org IN {
type slave;
file db.ofppt.org;
masters {192.168.0.1};
};

Remarque : Plusieurs outils sont disponibles pour réaliser des tests de la configuration du serveur et de
ses zones :

 named-checkconf : Pour chercher les erreurs de syntaxe dans les fichiers "named.conf*".

 named-checkzone : Similaire à checkconf, mais pour les fichiers de zones.

1.2. Fichiers de zone

Il existe deux fichiers de configuration pour chaque zone. L’un est nécessaire pour trouver l’adresse
IP d’après le nom de l’hôte (résolution directe) et l’autre pour trouver le nom d’hôte d’après l’adresse IP
(résolution inverse). Chaque fichier de zone est nommé selon le paramètre fourni à l’option file dans la
déclaration zone (/etc/named.conf).
Directive de fichier de zone
Les directives sont identifiées par le symbole ($) suivit du nom de la directive. Elles apparaissent au haut
du fichier de zone. Les directives les plus couramment utilisées sont les suivantes:
 $TTL : règle la valeur par défaut de Time to Live (TTL) (ou temps de vie) pour la zone. Cette
valeur exprimée en secondes, correspond à la durée pendant laquelle les enregistrements de
ressources de la zone resteront valides. Chaque enregistrement de ressources peut contenir
sa propre valeur TTL, qui remplace alors cette directive. En accroissant cette valeur, les serveurs
de noms distants peuvent mettre en cache ces informations de zone pendant plus longtemps.
Cela réduit le nombre de requêtes effectuées au sujet de cette zone, mais rallonge également le
temps nécessaire pour la prolifération des changements des enregistrements de ressources.
 $ORIGIN : attache le nom de domaine à tout enregistrement non-qualifié. L'utilisation de la
directive $ORIGIN n'est pas nécessaire si l'on nomme la zone dans /etc/named.conf parce que le
nom de la zone est utilisé par défaut, comme la valeur de la directive $ORIGIN
Enregistrement de ressources
Les enregistrements de ressources représentent les premiers composants d’un fichier de zone. Il existe
de nombreux types différents d’enregistrements de ressources, les plus fréquemment utilisé sont
énumérés ci-dessous.
 SOA (Start of Authority) : L’enregistrement SOA (ou Origine d’autorité) indique l’origine de la
zone. Voici la syntaxe de cet enregistrement :
@ IN SOA nom_serveur. email_contact. (
numero_serie ; Serial
rafraichissement ; Refreah
nombre_essais ; Retry
expiration ; Expire
ttl_minimum) ; Minimum
Le symbole @ place la directive $ORIGIN (ou le nom de domaine). Le serveur de noms primaire
faisant autorité pour ce domaine est utilisé pour le nom_serveur et l'adresse email de la personne à
contacter à propos de cet espace de nom est remplacée par email_contact.
Voici la description des paramètres d’un enregistrement SOA :
 numéro_série est incrémentée chaque fois que vous changez le fichier de zone afin que named
sache qu'il doit recharger cette zone. La valeur numéro_série est utilisée par le serveur esclave
pour déterminer s'il est en train d'utiliser des données de zone périmées et doit donc les rafraîchir.
 rafraîchissement indique à tout serveur esclave combien de temps il doit attendre avant de
demander au serveur de noms maître si des changements ont été effectués dans la zone.
 nombre_essai (retry) précise au serveur de noms esclave l'intervalle pendant lequel il doit
attendre avant d'émettre une autre requête de rafraîchissement, au cas où le serveur de noms
maître ne répondrait pas.
 expiration Si le serveur maître n'a pas répondu à une requête de rafraîchissement avant que la
durée indiquée dans expiration ne se soit écoulée, le serveur esclave cesse de répondre en tant
qu'autorité pour les requêtes au sujet de cet espace de nom.
 ttl_minimum demande que d'autres serveurs de noms placent en cache les informations
pour cette zone pendant au moins cette durée (en secondes).
 NS : Name Server
L’enregistrement NS indique le serveur de noms responsable d’un domaine. Sa syntaxe est la suivante :
IN NS seveur.
 A : Address
L’enregistrement A indique l’adresse d’un hôte. Voici la syntaxe de cet enregistrement :
nom_hôte_complet IN A adresse_IP
Par exemple, la ligne :
www.ofppt.org. IN A 10.73.127.132
Indique l’adresse IP du serveur Web www.ofppt.org. Le fichier de zone doit contenir au moins un
enregistrement A par hôte. Il est possible d’indiquer uniquement le nom de l’hôte, comme dans l’exemple
suivant :
www IN A 10.73.127.132
Le nom de domaine sera automatiquement ajouté au nom de l’hôte.
 CNAME : Canonical Name
L’enregistrement CNAME indique l’alias d’un hôte officiel. Voici la syntaxe d’un enregistrement
CNAME :
nom_alias IN CNAME nom_hote.
Par exemple, l’enregistrement
ftp.ofppt.org. IN CNAME www.ofppt.org.
indique que le nom ftp.ofppt.org. est associé à www.ofppt.org. . Il est aussi possible d’utiliser uniquement
les noms d’hôtes comme dans l’exemple suivant :
ftp IN CNAME www

 MX :
Indique les serveurs SMTP à contacter pour envoyer un courriel à un utilisateur d'un domaine donné.
ofppt.org. IN MX 10 mai1l.ofppt.org.
ofppt.org. IN MX 20 mai1l1.ofppt.org.

10, 20 : Indique la priorité


L'enregistrement de ressources MX doté de la priorité la plus basse est préféré aux autres.
Toutefois, de multiples serveurs de messagerie peuvent avoir la même valeur pour distribuer
uniformément le trafic d'emails entre eux.
 PTR : Domain Name Pointer
Cet enregistrement transforme une adresse IP en nom d’hôte. C’est le service des noms de
domaine inverse. Voici la syntaxe d’un enregistrement PTR :
adresse_IP IN PTR nom_hôte.
Par exemple, l’enregistrement
10.73.127.132 IN PTR www.ofppt.org.
associe l’adresse IP 10.73.127.132 à l’hôte www.ofppt.org.

1.3. Named.ca

Ce fichier n’a pas à être modifier. Il contient les adresses des serveurs dns racine.

1.4. named.local

@ IN SOA linux.ofppt.org. root. ofppt.org .(


2000101500 ; numéro de série
28800 ; rafraîchissement toutes les 8 heures
14400 ; nouvel essai toutes les 4 heures
604800 ; expiration dans 7 jours
86400 ) ; temps de vie minimal 24 heures
NS linux.ofppt.org.
1 PTR localhost.
Normalement, les valeurs de ce fichier ne doivent pas être modifiées. Si une modification doit être faite
dans ce fichier vous devez modifier le numéro de série doit être modifié afin de faire connaître cette
modification aux autres serveurs dns.
2. Configuration d’un client DNS

Pour accéder aux différents serveurs de l’Internet, il est nécessaire de configurer le client DNS. La
partie cliente d’un DNS s’appelle un « resolver ». Il s'agit d'un ensemble de fonctions écrites en C
permettant aux différents programmes de lancer une requête de résolution de nom. Les fichiers de
configuration du « resolver » s'appellent /etc/resolv.conf et /etc/host.conf.

2.1. /etc/host.conf

Ce fichier permet de spécifier au système la manière de résoudre les adresses IP en fonction des
noms. Si vous utilisez les services d'un serveur de noms, il doit contenir ces deux lignes:

order hosts, bind


multi on

La première ligne des fichiers définit l’ordre dans lequel les services de résolution de noms doivent
être interrogés. Dans notre exemple, c’est d’abord le fichier local /etc/hosts qui est parcouru. Si aucune
correspondance n’est trouvée, le programme interroge le serveur de noms.

La deuxième ligne indique, par le terme « multi on », permet d'avoir plusieurs adresses IP pour un
même nom de machine dans /etc/hosts.

2.2. /etc/resolv.conf

Permet d'affecter les serveurs de noms à interroger pour faire la résolution des noms.

search microapp.fr
# Adresse du serveur de noms
nameserver 205.1.1.1
nameserver 205.1.1.5
nameserver 205.1.2.1

L’entrée « search » impose au programme de tenter de résoudre un nom incomplet. Ce nom de


domaine est ajouté après les noms incomplets. Cette entrée s’appelait précédemment « domain », pour
ce fichier. Conformément à la demande RFC1535 (Request For Comment 1535), il est fortement
recommandé de ne plus utiliser l’entrée « domain ».

3. Démarrage du serveur DNS


Il est possible de démarrer le serveur de nom manuellement à l’aide de la commande suivante :
#service named restart / start / stop

4. teste du serveur DNS


Les commandes ping nslookup, host et dig permettent de tester le serveur DNS, elles sont décrites dans
les sections suivantes.
- Ping
Le programme ping permet de vérifier si une connexion fonctionne en affichant de l’information semblable
à celle ci-dessous :
# ping shuttle.mike.fr
PING shuttle.mike.fr (132.195.99.2): 56 data bytes
64 bytes from 132.195.99.2: imcp_seq=0 ttl=254 time 5.9 ms
64 bytes from 132.195.99.2: imcp_seq=1 ttl=254 time 5.9 ms
64 bytes from 132.195.99.2: imcp_seq=2 ttl=254 time 5.9 ms
- dig
L'utilitaire dig permet de faire des requêtes DNS évoluées et fournit un maximum d'informations sur la
requête. Il est très utile pour vérifier la bonne configuration d'un serveur DNS.
Exemples d'utilisation de dig :
Requête sur le champ "A" du nom www.mondomaine.org auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 www.mondomaine.org A
Requête sur la champ "MX" du nom mondomaine.org auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 mondomaine.org MX
Requête sur tous les champs du nom mondomaine.org auprès du serveur DNS 12.42.112.242 :
% dig @12.42.112.242 mondomaine.org ANY
Requête inverse (i.e. reverse DNS) sur l'IP 12.42.111.242 auprès du serveur DNS
12.42.112.242 :
% dig @12.42.112.242 -x 12.42.111.242

Exemple de configuration :

foo.org. IN SOA ns1.foo.org. hostmaster.foo.org. (


20001210011 ; numéro de série
10800 ; rafraîchissement
3600 ; nouvel essai
604800 ; Obsolescence après une semaine
86400 ) ; TTL minimal de 1 jour
# Enregistrement de type NS pour le domaine foo.org:
foo.org. IN NS ns1.foo.org.
foo.org. IN NS ns2.foo.org.
# Enregistrements de type A : Nous devons décrire la correspondance Nom / Adresse
ns1.foo.org. IN A 192.168.0.1
ns2.foo.org. IN A 192.168.0.2
localhost.foo.org. IN A 127.0.0.1
# Enregistrements de type CNAME : Ce sont les alias (Canonical Name). Une requête du type
http://www.foo.org sera adressée à ns1.foo.org, puisque www est un alias de ns1.
ns1.foo.org. IN CNAME www.foo.org.
ns2.foo.org. IN CNAME ftp.foo.org.

# Enregistrement de type PTR : Ils serviront à la résolution de nom inverse.


1.0.168.192.in-addr.arpa. IN PTR ns1.foo.org.
2.0.168.192.in-addr.arpa. IN PTR ns2.foo.org.

5. Mise en place d’un serveur DNS dynamique

Un serveur DNS dynamique (DDNS) est un serveur DNS qui sera mis à jour automatiquement
par un serveur DHCP. Les clients du réseau qui se connecteront, vont obtenir une adresse IP
automatiquement, et feront partit du domaine.
De cette façon, l'administrateur du réseau ne devra plus mettre à jour le nom d'hôtes du client
avec son adresse IP dans les fichiers de zones, du serveur DNS, c'est le serveur DHCP qui mettra
à jour automatiquement le fichier.

Pour configurer un DDNS il faut modifier les fichiers de configuration des deux serveurs. A
savoir le fichier dhcpd.conf, et le fichier named.conf.

5.1. Modification du serveur DHCP

La modification du serveur DHCP consiste à activer la mise à jours automatique du serveur DNS,
d’indiquer pour quelle zone le serveur DHCP doit faire la mise à jour et en fin de sécuriser l’accès au
serveur DNS par un e clé cryptée.
Code DHCP:
include "/etc/rndc.key";
ddns-update-style interim;
ddns-updates on;
ddns-domainname "ofppt.org";
ddns-rev-domainname "in-addr.arpa";
zone ofppt.org
{
primary 192.168.0.201;
key rndckey;
}

zone 0.168.192.in-addr.arpa
{
primary 192.168.0.201;
key rndckey;
}

 include "/etc/rndc.key": Pour que le serveur DHCP, puisse mettre à jour le DNS, une clef cryptée
doit être déclaré dans le fichier de configuration du serveur DHCP, pour une question de sécurité.
Vérifier que vous avez bien le fichier rndc.key.
 ddns-update-style interim: Indique la méthode de mise à jour DNS.
 ddns-updates on: active la mise à jours dynamique.
 ddns-domainname "ofppt.org": indique la zone qui va être mis à jours dynamiquement.
 ddns-rev-domainname "in-addr.arpa": la zone inverse, La valeur "in-addr.arpa" correspond à
chaque réseaux/sous réseaux.
 Zone : Il faut indiquer dans quelle zone le serveur DHCP peut écrire dans le fichier de configuration
du serveur DNS.
5.2. Modification du serveur DNS

La modification du serveur DNS consiste à indiquer sur quel port est autorisée la mise à jour ainsi que à
partir de quelle machine et de sécuriser l’accès au serveur DNS par une clé cryptée.
Code DNS:
include "/etc/rndc.key";

controls
{
inet 127.0.0.1 port 953 allow { 127.0.0.1; 192.168.0.201; } keys { "rndckey"; };
inet 192.168.0.0 port 953 allow { 127.0.0.1; 192.168.0.201; } keys { "rndckey"; };
};

zone " ofppt.org "


{
type master;
file "db.ofppt.org ";
allow-update { key rndckey; };
notify yes;
};
zone "0.168.192.in-addr.arpa"
{
type master;
file “db.192.168.0";
allow-update { key rndckey; };
notify yes;
};

La clef: Il faut déclarer clef en faisant une inclusion du fichier clef (Comme pour le serveur DHCP).
Le port d'écoute (controls): Avec cette ligne, on autorise la mise à jour par une clef sur le port 953.
Les zones: On précise les zones qui doivent être mis à jour par le serveur DHCP

5.3. Les droits

Pour terminer avec la configuration il ne reste plus qu'à modifier les droits d'accès au dossier: /var/named,
par les commandes suivantes:
# chmod 2775 /var/named
# chown root:named /var/named
Maintenant, il ne reste plus qu'à redémarrer les deux serveurs par les commandes suivantes:
# service named restart
# service dhcpd restart
Remarque : si vous éditez vos fichiers de zone, vous n'allez pas voire le nom d'hôtes et l'adresse IP du
client qui vient d'être ajouté par le DHCP, c'est pourquoi il y a les deux nouveaux fichiers .jnl. Mais après
quelques minutes les fichiers de zone vont être mis à jour automatiquement!

Vous aimerez peut-être aussi