Linux:Serveur DNS Bind
Un article de Djjnet.
Sommaire |
Configuration du serveur BIND
Le fichiers de configuration de bind utilise le symbole ; pour commencer des commentaires dans les fichiers de zones. # est aussi accepté pour le fichier named.conf.
Les interrogations DNS sont insensible à la "case" (majuscules/minuscules).
Fichier de configuration principale /etc/bind/named.conf
options {
;directory est le dossier où se situe les fichiers des zones (les définitions des noms de domaines)
directory "/var/dj-j/named";
pid-file "/var/run/bind/run/named.pid";
};
Limiter les logs inutiles :
logging {
category lame-servers{ null; };
};
Définition d'une zone (un domaine) :
zone "dj-j.net" {
#Il s'agit du DNS principale
type master;
#Par convention, un fichier de zone se nomme db.nomdedomaine
file "master/dj-j/db.dj-j.net";
#Authoriser les transferts pour les serveurs DNS secondaires :
allow-transfer {
212.180.111.252;
};
#Authoriser les requêtes pour tout le monde :
allow-query {
any;
};
};
Fichier de configuration de la zone (le domaine)
Dans notre exemple le fichier /var/dj-j/named/master/dj-j/db.dj-j.net
Les noms des serveurs doivent terminer par un point si :
- le domaine n'est pas celui de la zone
- le domaine de la zone est indiqué
S'il n'y a pas de point, le domaine de la zone sera ajouté à la fin.
;Depuis la version 9 de bind, il est nécessaire de commencer par
$TTL 86400
;Commencer par l'enregistrement du SOA :
dj-j.net. IN SOA ns.dj-j.net. webmaster.dj-j.net. (
2006110701 ; serial
43200 ; refresh 12h
3600 ; retry 1h
604800 ; expire 7d
86400) ; TTL 1d
;L'enregistrement SOA de classe IN (Internet) a pour DNS primaire ns.dj-j.net et pour email de la personne en charge du domaine : webmaster@dj-j.net
;Le @ est remplacé par un .
;Puis l'enregistrement des serveurs de noms :
dj-j.net. IN NS ns.dj-j.net.
dj-j.net. IN NS ns0.dj-j.net.
;L'enregistrement des serveurs de mails :
dj-j.net. IN MX 10 mx.dj-j.net.
dj-j.net. IN MX 20 mx2.itenec.net.
;Plus le chiffre est petit, plus le serveur est prioritaire.
;Dans l'exemple mx2.itenec.net est le serveur secondaire, il relaie les emails du domaine dj-j.net si le serveur mx.dj-j.net est indisponible.
;Il peut avoir pour valeur 0 à 65535. Généralement, les valeurs sont entre 1 et 100.
;Un serveur indiqué en tant que mx doit obligatoirement avoir un enregistrement A, il ne peut être un CNAME.
;Les enregistrements d'adresse et d'alias :
;A pour une adresse et CNAME pour les alias de machines
ns.dj-j.net. IN A 82.236.161.216
ns0.dj-j.net. IN A 212.180.111.252
mx.dj-j.net. IN A 82.236.161.216
sangoku.dj-j.net. IN A 82.236.161.216
www.dj-j.net. IN CNAME sangoku.dj-j.net.
intranetdj-j.net. IN CNAME sangoku.dj-j.net.
Les abreviations pour les fichiers de zones
Le nom de domaine peut ne pas être spécifié lorsqu'il s'agit de celui de la zone en cours, il n'y a alors pas de point à la fin :
sangoku IN A 82.236.161.216 www IN CNAME sangoku test IN CNAME www.dj-j.org.
Remarque : Cela n'est pas possible pour un enregistrement de type PTR (pour le reverse DNS)
Utilisation de @ pour remplacer le domaine de la zone :
@ IN SOA ns.dj-j.net. webmaster.dj-j.net. (
2006110701 ; serial
43200 ; refresh 12h
3600 ; retry 1h
604800 ; expire 7d
86400) ; TTL 1d
@ IN NS ns.dj-j.net.
@ IN NS ns0.dj-j.net.
Ne pas répérer le dernier nom utilisé :
@ IN SOA ns.dj-j.net. webmaster.dj-j.net. (
2006110701 ; serial
43200 ; refresh 12h
3600 ; retry 1h
604800 ; expire 7d
86400) ; TTL 1d
IN NS ns.dj-j.net.
IN NS ns0.dj-j.net.
Définition d'une zone sur le DNS secondaire
zone "dj-j.net" {
;Il s'agit du DNS secondaire
type slave;
;Le fichier n'est pas à créer, le DNS secondaire le transférera depuis le principale. Mais le dossier est à créer.
file "slave/dj-j/db.dj-j.net";
;Indiquer le(s) DNS principale(aux)
masters {
82.236.161.216;
};
};
Valeur de l'enregistrement SOA
- serial : doit être augmenté à chaque changement de la zone. Il est généralement formé de la date suivi d'un indicatif de modification de la journée.
- refresh : interval entre chaque mise à jour des DNS secondaires
- retry : temps après lequel le DNS secondaire retentera une mise à jour s'il n'avait pas réussi à joindre le DNS principale.
- expire : les données du DNS secondaire sont considérées expirées après ce temps d'indisponibilité du DNS principale. Le DNS secondaire ne répond plus.
- TTL : période de temps où les autres serveurs DNS garde en cache les réponses fournies.
Les ACL dans bind
Par défaut, les acl disponibles sont :
- none : aucune IP
- any : toutes les IPs
- localhost : IPs de la machine locale
- localnets : IPs du réseaux de la machine locale.
Définir un acl dans le fichier /etc/bind/named.conf :
acl "internal" {
{
192.168.100/24;
192.168.101/24;
};
};
Vous pouvez maintenant vous en servir dans les zones ou les options globales :
allow-query {
internal;
};
Mettre à jour le fichier des serveurs root
Dans cet exemple, notre fichier est /etc/bind/named.ca
Créer un fichier /etc/cron.monthly/updatebindroot et insérer la ligne suivante :
dig @a.root-servers.net . ns > /etc/bind/named.ca
Le rendre exécutable :
chmod +x /etc/cron.monthly/updatebindroot
Le fichier sera mis à jour une fois par mois.


