Ce tutoriel détaille les étapes à suivre pour configurer Bind9 sur sa dedibox. Je vais décrire ma configuration pour un serveur qui héberge le serveur DNS et le serveur Web.
Pour cet article, la dedibox en question est la "sd-10602.dedibox.fr", son IP : 88.191.59.230 et le nom de domaine « moroblog.info ».
Comprendre les DNS
Résolution de nom de domaine
Les DNS servent à traduire les nom de domaine en adresse IP utilisable par votre machine. Dans mon cas, mon serveur DNS traduira la nom de domaine « moroblog.info » en son IP : 88.191.59.230. Votre machine ne sachant que traîter des adresse numérique, elle aura toujours besoin d’un serveur DNS qui l’aide à traduire les noms de domaines "pratiques" en IP.
Résolution inverse
Les résolutions inverses traduisent les adresses IP en nom de domaine (Fully Qualified Domain Name). Elles ne sont pas aussi utiles que les résolutions directes et ne servent principalement qu’à des fins de vérifications, débogage etc. Cette tâche sera également acquittée par mon serveur.
Installation de Bind9
Pourquoi Bind ?
Bind un serveur DNS open source finalisé avec des fonctionnalités étendues comparables aux solutions propriétaires.
installation
apt-get install bind9
Configuration de Bind9
Le fichier principal : "/etc/bind/named.conf"
On va donc ajouter la configuration de la zone "moroblog.info" et pour la zone "230.59.191.88.in-addr.arpa" :
zone "moroblog.info" IN {
type master;
notify yes;
allow-transfer { 88.191.254.7; };
file "/etc/bind/db.moroblog.info";
};
zone "230.59.191.88.in-addr.arpa" {
type master;
file "/etc/bind/db.moroblog.info.rev";
};
Le type déclare que cette configuration est celle du serveur primaire ("master"), celui qui sera intérrogé en premier. Si celui ci est défaillant, le serveur secondaire sera intérrogé. La directive "file" indique le fichier particulier qui va décrire la zone. La directive "allow-transfer" permet la transmission des informations au sniffeur DNS des dedibox "88.191.254.7" (serveur qui gère les AXFR).
Note : dans la console de dedibox, dans la configuration du serveur, cliquez sur "DNS secondaire" et entrez votre nom de domaine.
Le fichier de zone "db.moroblog.info"
$TTL 604800
@ IN SOA sd-10602.dedibox.fr. root.localhost. (
20071111 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS sd-10602.dedibox.fr.
@ IN NS nssec.dedibox.fr.
@ IN MX 10 mail.moroblog.info.
moroblog.info. IN A 88.191.59.230
ns IN A 88.191.59.230
mail IN A 88.191.59.230
www CNAME moroblog.info.
ftp CNAME moroblog.info.
Le fichier de zone "db.moroblog.info.rev"
$TTL 604800
@ IN SOA sd-10602.dedibox.fr. root.localhost. (
20071111 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
NS moroblog.info.
PTR moroblog.info.
Ajouter des logs
Par défaut, les logs de Bind sont placé dans "syslog". On peut choisir un gestion plus fine des logs de Bind en ajoutant dans le fichier "named.conf.options" :
logging {
channel default_out {
file "/var/log/named.log";
severity info;
// severity debug 3;
print-category yes;
print-severity yes;
print-time yes;
};
category default { default_out;};
category config { default_out; };
category xfer-in { default_out; };
category xfer-out { default_out; };
category lame-servers { null; };
category update { default_out; };
category security { default_out; };
category queries { default_out; };
};
Il vous faudra créer le fichier /var/log/named.log en question avec les droits en écriture pour ’utilisateur "bind". Je vous laisse consulter la documentation pour plus de détails sur ces directives.
Désactiver la recursion
Cette étape est indispensable pour un serveur sécurisé. Si vous laissez la récursion activée (par défaut), vous pourrez servir de relai pour des attaques : n’importe qui peut alors utiliser votre serveur pour interroger d’autres serveurs. Ceci peut contribuer à faire des DoS car vous amplifiez la taille des requêtes entre temps.
Vous pouvez lire l’article de l’AFNIC sur les serveurs DNS récursifs ouverts.
Vous devez donc désactiver la recursion. C’est assez simple, éditez le fichier "/etc/bind/named.conf" et ajoutez dans le bloc "options"
recursion no;
Tester la configuration de Bind
On teste d’abord le fichier principal :
# named-checkconf /etc/bind/named.conf
# named-checkconf /etc/bind/named.conf.options
On teste ensuite les fichiers de zone :
# named-checkzone moroblog.info db.moroblog.info
zone moroblog.info/IN: loaded serial 20071111
OK
# named-checkzone moroblog.info db.moroblog.info.rev
zone moroblog.info/IN: loaded serial 20071111
OK
Tout est bon !
On peut maintenant recharger sa configuration :
/etc/init.d/bind9 reload
Tester son serveur DNS
Sur un machine quelconque, on va intérroger à distance le serveur pour voir si il est bien capable de nous donner les informations voulues. Pour cela, on va utiliser "nslookup" du paquet "dnsutils".
apt-get install dnsutils
Testons la résolution de domaine :
$ nslookup moroblog.info. sd-10602.dedibox.fr
Server: sd-10602.dedibox.fr
Address: 88.191.59.230#53
Name: moroblog.info
Address: 88.191.59.230
Parfait, on a bien l’adresse IP. Testons maintenant la résolution inverse :
$ nslookup 88.191.59.230 sd-10602.dedibox.fr
Server: sd-10602.dedibox.fr
Address: 88.191.59.230#53
230.59.191.88.in-addr.arpa name = moroblog.info.
Parfait, le serveur retrouve bien le nom de domaine.
Maintenant, il ne reste plus qu’à renseigner ce nouveau serveur DNS chez le registrar qui a vendu le nom de domaine et c’est fini.
Pour bien valider votre configuration, pensez à vérifier la configuration des DNS de votre nom de domaine sur le site http://www.afnic.fr/outils/zonecheck/form. Pensez à bien attendre 24 heures pour que vos modifications sur les serveurs DNS chez votre registrar soient bien prises en compte et propagées sur tout les DNS de la planète.
Bon courage !
Liens utiles
http://snow-seb.9online.fr/bind_v2.htm
http://www.syxnet.org/freebsd/bind/bind.htm