Installation et configuration d'un serveur Bind9 secondaire (Slave)
1 Introduction
Lorsque vous voulez vous monter vous même votre serveur DNS, vous devez obligatoirement posséder un serveur secondaire. Si vous n'avez pas d'autres machines, utilisez Gandi, sinon suivez cette doc ;-).
N'oubliez pas de rensigner sur le serveur primaire le serveur secondaire.
2 Installation
Sur le serveur secondaire :
apt-get |
apt-get install bind9 |
Pour OpenBSD, rien à faire, c'est installé de base.
3 Configuration
Avant de commencer, déclarez dans vos enregistrements de vos noms de domaine les seveurs secondaires (resignez les champs NS + ACL named.conf), sinon les notifications ne se feront pas.
3.1 Configuration des droits
Si vous voulez un environnement chrooté, procédez comme ceci, sinon passez cette étape :
Editez ensuite le fichier /etc/default/bind9 afin de lui indiquer de chrooter au boot du service :
/etc/default/bind9 |
OPTIONS="-u bind -t /var/lib/named" ... |
3.2 host.conf
Voici comment configurer le fichier /etc/host.conf :
/etc/host.conf |
order hosts,bind multi on |
Nous venons donc dire ici qu'il faut d'abord regarder dans le fichier host et ensuite dans Bind quand des requêtes son effectuées depuis le serveur.
3.3 named.conf
Ce fichier doit contenir les mêmes informations au niveau RNDC et au niveau zone externe (à répliquer) :
include "/etc/bind/named.conf.options"; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 // TSIG Security | RNDC Key key "rndc-key" { algorithm hmac-md5; secret "a4fGtm0fB4zO+4KfqH/zNZ3nPq+ThM5yUCEE7AqzEVI="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; zone "127.in-addr.arpa" { type master; notify no; file "/etc/bind/db.127"; }; // Starting secondary transfert zones view "externe" { match-clients { any; }; // Recursion not permited for World Wide Web recursion no; zone "deimos.fr" { type slave; file "/etc/bind/db.deimos.fr"; notify yes; masters { 88.162.130.192; }; }; zone "mavro.fr" { type slave; file "/etc/bind/db.mavro.fr"; notify yes; masters { 88.162.130.192; }; }; zone "0.168.192.in-addr.arpa" { type slave; file "/etc/bind/db.0.168.192.inv.local"; notify yes; masters { 88.162.130.192; }; }; };
3.4 named.conf.options
Même fichier que pour le serveur primaire :
options { directory "/var/cache/bind"; pid-file "/var/run/bind/run/named.pid"; // If there is a firewall between you and nameservers you want // to talk to, you might need to uncomment the query-source // directive below. Previous versions of BIND always asked // questions using port 53, but BIND 8.1 and later use an unprivileged // port by default. query-source address * port 53; // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; // For dial up connections dialup yes; allow-query { any; }; // Security version version "Microsoft 2000 DNS Server"; auth-nxdomain no; # conform to RFC1035 };
3.5 rndc.conf
On reprends exactement le même fichier encore une fois que le serveur primaire :
key "rndc-key" { algorithm hmac-md5; secret "a4fGtm0fB4zO+4KfqH/zNZ3nPq+ThM5yUCEE7AqzEVI="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; };
Et n'oubliez pas de copier la clef rndc.key du serveur primaire dans le dossier /etc/bind et de lui affecter les bons droits.
4 Vérification
Il ne reste plus qu'à redémarrer le serveur bind et les fichiers de configuration des noms de domaines apparaitrons automatiquement dans /etc/bind :
/etc/init.d/bind9 restart
5 FAQ
5.1 Aucuns fichiers n'apparait et dans les logs ça dit qu'il n'y a pas les droits
La solution est simple :
chown -Rf root:bind /etc/bind
5.2 Pourquoi j'ai ce message dans mes logs : refused notify from non-master
Voici le genre de messages sur lequel on peut tomber quand on a pas de chance :
Oct 2 16:43:50 tasmania named[7978]: zone deimos.local/IN/internalview: refused notify from non-master: 192.168.0.27#37097
Ceci est due à une mise à jour de Bind (9.3). Il faut donc simplement autoriser dans son named.conf le serveur à se notifier lui même en rajoutant allow-notify :
/etc/bind/named.conf |
... zone "deimos.local" { type slave; file "/etc/bind/db.deimos.local"; notify yes; masters { 192.168.0.69; }; allow-notify { 192.168.0.27; }; }; ... |
5.3 refresh: failure trying master 53 (source 0.0.0.0#0): operation canceled
Ceci est certainement du à un problème de firewalling, vérifiez bien que voter port 53 est ouvert en TCP et UDP des 2 côtés.
5.4 could not open entropy source /dev/random: file not found
Si vous rencontrez ce problème, c'est que vous travaillez certainement dans un vserver. Pour palier au problème, ajoutez une bcapabilities :
echo |
echo CAP_MKNOD >> /etc/vservers/ed/bcapabilities |
Ce qui vous évitera les problèmes comme ceux ci dans les logs :
24530 Oct 4 21:12:27 ed named[8642]: could not open entropy source /dev/random: file not found 24531 Oct 4 21:12:27 ed named[8642]: using pre-chroot entropy source /dev/random