Académique Documents
Professionnel Documents
Culture Documents
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.
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 ;
};
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};
};
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*".
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.
1.3. Named.ca
Ce fichier n’a pas à être modifier. Il contient les adresses des serveurs dns racine.
1.4. named.local
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:
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
Exemple de configuration :
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.
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"; };
};
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
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!