Le tutoriel concerne l’installation & la configuration d’un serveur DNS sous Linux.
Bind9 est un paquet sous Unix qui est assez "particulier". Quand je dis particulier, c’est vis-à-vis du fait qu’il est utilisé par les plus grands & les plus gros serveurs DNS mondiaux. Oui, vous avez bien lu, Bind9 est LE paquet utilisé par Google (en version modifiée) en autre, mais aussi & surtout les serveurs DNS mondiaux racines. Le paquet est développé par l’ISC, l’Internet System Consortium.
I. Installation
Pour installer le paquet, rien de plus simple sous Debian (ou les forks de Debian), il suffit de faire un apt-get install & le tour est joué ! Facile hein !
Nous allons aussi installer "ResolvConf", qui permettra de configurer les DNS plus facilement, et d’éviter les confusions dans les systèmes DNS (IP des DNS de votre FAI, de votre DNS personnel, etc.)
sudo apt-get install bind9 resolvconf
Un autre outil vous sera installé, « bind-utils« . Grâce à ce paquet, deux commandes principales pourront être fournies : nslookup & dig. Nous utiliserons ces commandes une fois le serveur DNS mit en place.
Le serveur créera son arborescence dans le dossier « /etc/bind/ » :
- /etc/hosts : Résolution locale
- /etc/resolv.conf : Domaine à rechercher et le serveur associé
- /etc/host.conf : Ordre de recherche entre hosts ou bind
- /etc/bind : Répertoire de la configuration générale de Bind9
- /var/cache/bind : Enregistrement de ressources pour les zones
Fichiers de configuration :
- /etc/bind/named.conf : fichier général
- /etc/bind/named.conf.options : fichier contenant les options de bind
- /etc/bind/named.conf.local : fichier contenant notre zone
Des fichiers nécessaires pour le fonctionnement du serveur sont créés, notamment des fichiers modèles. Ces fichiers vont nous être utiles. En effet, pour créer ces zones DNS, nous allons créer deux fichiers dits "Fichier de zone". De plus, nous allons aussi devoir modifier un fichier de configuration même du serveur DNS, pour lui indiquer la « nouvelle » zone DNS.
II. Définition de la nouvelle zone DNS
Soyez rigoureux sur la façon d’écrire les fichiers. Un problème d’espace, de caractère ou de faute de frappe peut paralyser toute la configuration du serveur DNS et donc provoquer son non-fonctionnement.
1. Fichier « named.conf.local »
Le premier dont nous allons modifier est « named.conf.local ». C’est dans ce fichier qu’il faut définir notre nouvelle zone DNS.
N’oubliez pas de faire une copie du fichier d’origine, pour récupérer une version « de base » en cas de soucis de configuration.
Ce fichier est composé en deux parties :
- Définition de la zone DNS principale
- Définition de la zone DNS inverse
→ N’hésitez pas à revoir le cours DNS si vous ne comprenez pas pourquoi il doit y avoir deux zones. Voici le contenu du fichier named.conf.local, à modifier selon vos besoins :
# --- Déclaration zone DNS principale --- #
zone "idealogeek.fr" IN {
type master;
file "/etc/bind/db.idealogeek.fr.local";
allow-update {none;};
};
# ----- FIN Déclaration zone principale ----- #
# --- Déclaration zone inverse --- #
zone "1.168.192.in-addr.arpa" IN {
type master;
file "/etc/bind/rev.idealogeek.fr.local";
allow-update {none;};
};
# --— FIN Déclaration zone inverse --— #
Explications zone principale :
- zone "idealogeek.fr" IN { → Nous créons la zone portant le nom « idealogeek.fr ».
- type master; → Ce serveur est le serveur DNS principal, de même que la zone « idealogeek.fr » est la zone principale.
- file "/etc/bind/xxx"; → Emplacement du fichier contenant les paramètres de la zone principale.
- allow-update {none;}; → Nous refusons toute mise à jour, que ce soit d’un tiers connu ou inconnu → Paramètre permettant de sécuriser au minimum le serveur DNS.
- }; → Ne pas oublier de fermer l’accolade de déclaration de configuration.
Explications zone inverse :
- zone "1.168.192.in-addr.arpa" IN { → Nous créons la zone inverse dans notre plage IP de réseau privé (192.168.1.0)
- type master; → Ce serveur est le serveur DNS principal, de même que cette zone inverse en cours de rédaction.
- file "/etc/bind/xxx"; → Emplacement du fichier contenant les paramètres de la zone inverse.
- allow-update {none;}; → Nous refusons toute mise à jour, que ce soit d’un tiers connu ou inconnu → Paramètres permettant de sécuriser au minimum le serveur DNS.
- }; → Ne pas oublier de fermer l’accolade de déclaration de configuration.
Nous pouvons passer au second fichier, concernant les paramètres de la zone principale.
2. Fichier « db.idealogeek.fr.local »
Le nom du fichier peut être changé. Vous pouvez le nommer « zone-principale.idealogeek.fr », mais vous devrez alors répercuter ce nom dans le fichier « named.conf.local ».
Ce fichier définit les paramètres de la zone principale d’une part, mais aussi les enregistrements DNS de vos hôtes.
$TTL 86400
@ IN SOA srvdns.idealogeek.fr. root.srvdns.idealogeek.fr. (
1 ; numéro de série
6048 ; rafraîchissement
86400 ; nouvel essai
2419200 ; expiration (quatre semaines)
86400 ; minimum d’une journée
)
@ IN NS srvdns.idealogeek.fr.
srvdns IN A 192.168.1.254
www IN CNAME srvdns.idealogeek.fr.
Enjoy !