Installation et configuration de bind9
Nous allons voir comment installer bind9 sous debian lenny écoutant l'ipv4 213.186.47.110 et l'ipv6 2001:41d0:1:d6e::110.
Installation
Installez bind9 et bind9-host. bind9-host est l'un des paquets ajoutant la commande host pour résoudre une ip ou un domaine.
aptitude install bind9 bind9-host dnsutils
Depuis une mise à jour de sécurité, bind9 doit avoir accès au fichier /etc/ssl/openssl.cnf
:
chmod o+r /etc/ssl/openssl.cnf
Configuration
Éditez le fichier /etc/bind/named.conf.options
et ajoutez y les lignes suivantes :
allow-query { 127.0.0.1; 213.186.47.110; ::1; 2001:41d0:1:d6e::110; }; allow-recursion { 127.0.0.1; 213.186.47.110; ::1; 2001:41d0:1:d6e::110; }; allow-query-cache { 127.0.0.1; 213.186.47.110; ::1; 2001:41d0:1:d6e::110; }; version "[SECURED]"; allow-notify { 127.0.0.1; 213.186.47.110; ::1; 2001:41d0:1:d6e::110; }; //interdiction du transfère complet de zones allow-transfer {"none";}; listen-on { 127.0.0.1; 213.186.47.110; }; listen-on-v6 { ::1; 2001:41d0:1:d6e::110; }; transfer-source 213.186.47.110; transfer-source-v6 2001:41d0:1:d6e::110; notify-source 213.186.47.110; notify-source-v6 2001:41d0:1:d6e::110;
Étant donné que mon serveur dispose de plusieurs adresses ips, les directives listen-on
(-v6
), transfer-source
(-v6
) et notify-source
(-v6
) permettent de spécifier les ips à utiliser. Si vous faites de même, il faudra peut-être que vous adaptiez votre fichier /etc/resolv.conf
pour qu'il corresponde à ces ips.
Pensez à supprimer ou commenter (avec //) la ligne listen-on-v6 { any; };
à la fin du fichier /etc/bind/named.conf.options
Enfin, modifiez votre fichier /etc/resolv.conf
pour utiliser votre serveur bind :
nameserver ::1 nameserver 127.0.0.1 nameserver 2001:41d0:1:d6e::110 nameserver 213.186.47.110
Création d'une zone
Nous allons ajouter la zone dns du domaine csnu.org et ayant comme dns secondaire 87.98.136.217
Ajoutez les lignes suivantes dans le fichier /etc/bind/named.conf
:
zone "csnu.org" { type master; //autoriser le dns secondaire à copier la zone allow-transfer { 87.98.136.217; }; allow-query { any; }; notify yes; file "/srv/bind/csnu.org.hosts"; };
A titre d'information, voici les lignes à ajouter sur le serveur dns secondaire :
zone "csnu.org"{ type slave; file "/var/cache/bind/slave/csnu.org"; masters { 213.186.47.110; }; allow-query { any; }; notify yes; };
Enfin, créez le fichier /srv/bind/csnu.org.hosts
qui contiendra la zone dns :
mkdir /srv/bind touch /srv/bind/csnu.org.hosts chgrp -R bind /srv/bind
Voici un exemple de zone dns :
$ttl 3600 csnu.org. IN SOA core.csnu.org. postmaster.csnu.org. ( 2008052803 ; Serial 21600 ; Refresh 3600 ; Retry 604800 ; Expire 3600 ) ; Minimum ;global zone info csnu.org. IN NS core.csnu.org. csnu.org. IN NS onyx.csnu.org. ns.csnu.org. IN A 213.186.47.110 ns.csnu.org. IN AAAA 2001:41d0:1:d6e::110 ns2.csnu.org. IN A 87.98.136.217 core.csnu.org. IN A 213.186.47.110 core.csnu.org. IN AAAA 2001:41d0:1:d6e::110
Mode debug
Bind9 étant par défaut assez peu bavard et ce même s'il n'arrive pas à se lancer, voici comment le lancer en mode debug :
named -u bind -d9 -g -c /etc/bind/named.conf
-u
défini l'utilisateur avec lequel il faut le lancer (c'est l'utilisateur bind par défaut sous debian), -d9
est le niveau de debug, -g
permet de lancer bind en console, -c
défini le fichier de configuration