IV. Configuration de Bind 9▲
IV-A. Introduction▲
Un des points les plus problématiques de l'installation, la configuration de Bind9. Bind9 (Berkeley Internet Name Domain) est le serveur DNS le plus utilisé sur Internet. C'est lui qui va autoriser notre URL www.site1.com à pointer sur notre serveur (dans le cas d'une utilisation locale). En effet, il permet de transformer les différents alias en adresse IP, et donc de rediriger au bon endroit (sur le même serveur, en l'occurrence).
La configuration de Bind est un peu plus complexe que ce que nous avons vu jusqu'à maintenant. D'une part, parce que les différents tests à effectuer prennent du temps. En effet, la propagation des DNS prend de 6 à 48 heures, en fonction des FAI, et des registars. Ensuite, c'est la première étape qui aura une réelle incidence du point de vue extérieur sur notre serveur. Un Bind mal configuré, et nos sites sont inaccessibles !
L'installation de Bind en elle-même se fait comme pour les autres, vu que nous utilisons ici aussi les binaires disponibles. Une fois Bind installé, nous devons effectuer quelques ajustements. En effet, de base, le serveur Bind est fourni en open DNS. Ce qui signifie que n'importe qui peut utiliser notre serveur DNS. Cela peut poser des problèmes de sécurité, et surtout de serveur de relay DNS à des pirates, ou des spammeurs. Nous devons donc n'autoriser l'utilisation du serveur que depuis le serveur lui-même (localhost).
Une fois que cela est fait, nous devons créer une entrée dans la zone pour chaque domaine que nous hébergeons. Il s'agit en fait d'un simple fichier, que nous nommons : db.nom_domaine.tld par principe. Il est important de décortiquer ce fichier, qui contient de nombreux paramètres à configurer, et surtout à veiller à bien le faire.
Pour avoir des détails sur Bind, et les DNS , je vous invite à vous rendre sur Wikipedia, où vous trouverez toutes les informations adéquates : BINDDNS
IV-B. Named.conf▲
Pour configurer Bind, nous allons modifier un ficher /etc/bind/named.conf et en créer un pour chaque domaine que nous désirons héberger.
# nano /etc/bind/named.conf
On ne touche pas aux données par défaut, mais on rajoute, après la dernière zone (une entrée pour chaque domaine, évidemment. Et test1.com est à changer par votre nom de domaine, cela va de soi !). Nous avons deux solutions ici. Soit nous modifions directement le fichier named.conf, soit nous pouvons ajouter nos déclarations de zones dans named.conf.local. À vous de voir comment vous désirez le faire :
zone "test1.com" {
type master;
file "/etc/bind/db.test1.com";
};
Une petite modification à effectuer, pour éviter que notre serveur ne serve de relay DNS ouvert. On ajoute ces lignes dans le fichier (entre les {}) :
allow-recursion { localhost; };
Dans le cas où le fichier /etc/bind/named.conf.options n'existe pas (possible sur certains systèmes), il suffit d'ajouter le code suivant dans le fichier /etc/bind/named.conf :
options {
allow-recursion { localhost; };
};
On valide et on sort du fichier.
IV-C. Création du fichier de configuration de zone▲
On crée le fichier de description de notre zone :
# nano /etc/bind/db.test1.com
On entre les valeurs de notre domaine (ceci est un exemple. À vous de l'adapter à vos besoins/envies) :
$ttl 86400
test1.com. IN SOA ksXXXXX.kimsufi.com. webmaster.test1.com. (
2006121903
21600
3600
604800
86400 )
test1.com. IN NS ksXXXXX.kimsufi.com.
test1.com. IN NS ns.kimsufi.com.
test1.com. IN MX 10 mail.test1.com.
test1.com. IN A xxx.xxx.xxx.xxx
Server IN A xxx.xxx.xxx.xxx
www IN A xxx.xxx.xxx.xxx
mail IN A xxx.xxx.xxx.xxx
smtp IN A xxx.xxx.xxx.xxx
pop IN A xxx.xxx.xxx.xxx
pop3 IN CNAME Server
imap IN A xxx.xxx.xxx.xxx
sql IN A xxx.xxx.xxx.xxx
mysql IN A xxx.xxx.xxx.xxx
Quelques explications:
Champ |
Description |
---|---|
2006121903 |
Est à modifier à chaque édition du fichier. Par convention, on l'écrit : année-mois-jour-numéro à deux chiffres |
21600 |
Temps que le serveur esclave doit attendre avant de questionner à nouveau le serveur maître. Unité de temps : [s] |
3600 |
Temps à attendre avant d'effectuer une nouvelle demande au serveur maître en cas de non-réponse. Unité de temps : [s] |
604800 |
Temps d'expiration du serveur principal en cas de non-réponse. Unité de temps : [s] |
86400 |
Temps de mise en cache minimum par d'autres serveurs DNS. Unité de temps : [s] |
CNAME |
Enregistrement de nom canonique qui dit au serveur de noms qu'un nom donné est aussi connu qu'un autre (alias) |
A |
Enregistrement d'adresse qui spécifie une adresse IP à assigner à un nom |
NS |
Enregistrement de serveur de noms (NameServer) qui annonce les serveurs de noms faisant autorité pour une zone particulière |
MX |
Enregistrement Mail eXchange, qui dit où doit se diriger le courrier envoyé à un nom d'espace particulier contrôlé par cette zone |
SOA |
Enregistrement « Start Of Authority », qui proclame des informations importantes faisant autorité à propos des espaces de noms pour les serveurs de noms |
PTR |
Enregistrement PoinTeR record, conçu pour orienter vers une autre partie de l'espace de noms |
Si vous désirez avoir plus d'exemples sur la création de ce fichier, vous pouvez vous référer à l'adresse suivante : http://www.linux-kheops.com/doc/redhat72/rhl-rg-fr-7.2/s1-bind-configuration.html
On sauvegarde, on redémarre bind9.
# /etc/init.d/bind9 restart
Et voilà, il ne nous reste plus qu'à tester notre redirection, avec nos noms de domaine. Il est également possible d'avoir une description complète des différentes options de bind sous Google. Une simple recherche vous donnera une foule de sites pour cela !
Il y a deux possibilités pour tester notre fichier de configuration de zone :
Si vous désirez installer un .fr, vous ne devrez plus avoir aucune erreur (fatal chez zonecheck ou case rouge chez dnsstuff). En effet, l'afnic refuse d'enregistrer vos domaines avec une erreur. Pour les autres domaines, c'est à tester directement avec votre registar. Mais quoi qu'il en soit, idéalement, il ne faudrait pas avoir une seule erreur, c'est évident !