IV - Serveur DNS esclave faisant autorité
Attention
Puisque vous allez être amené à modifier des fichiers de configuration présents dans le dossier /etc, vous devez utiliser etckeeper pour faire du versioning.
1. Vérification préalable
Mettez à jour votre serveur
Sur votre serveur Debian 12, installez le service de journalisation rsyslog à la place de journalctl. Cela vous permettra de disposer de fichiers de log clairs au format texte situés dans /var/log.
Installez le service Bind 9 et les outils diagnostics DNS
2. Définir les paramètres réseaux du serveur
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens192
auto ens192
iface ens192 inet static
address 172.16.3.11
netmask 255.255.255.0
gateway 172.16.3.254
3. Définir le serveur DNS récursif à utiliser
Pourquoi choisir ces serveurs DNS récursifs ?
Pour rappel, les serveurs DNS faisant autorité gèrent, dans la majorité des cas, des zones publiques appartenant à l'arborescence réelle. Ainsi, ils seront la plupart du temps hébergés dans une DMZ contrairement aux serveurs DNS récursifs qui seront installés dans le LAN. Pour des raisons évidentes de sécurité, il est plus pertinent que les serveurs définis dans le fichier /etc/resolv.conf soient des résolveurs publics plutôt que les résolveurs internes paramétrés précédemment.
4. Prendre en compte les modifications des paramètres réseaux
5. Configurer correctement les fichiers /etc/hostname et /etc/hosts
Le fichier hostname sert à donner un nom à votre serveur.
Information
Le fichier hosts, ancêtre des stubresolver DNS, permet de faire la correspondance entre un nom et une IP. Il est généralement prioritaire sur la résolution DNS (pour modifier l’ordre de préférence, éditez le fichier /etc/nsswitch.conf). Dans ce fichier, il est important de renseigner la correspondance entre votre adresse de boucle locale et un nom. Ainsi, si votre machine sollicite le nom indiqué lors d'un processus particulier, cela la renverra vers l'adresse de loopback.
127.0.0.1 localhost
127.0.1.1 ns1.tours.tierslieux86.fr ns1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
6. Exemple de configuration d'un serveur DNS esclave faisant autorité
Déclaration de la zone que l’on souhaite transférer depuis le serveur maître sur le serveur esclave :
sudoedit /etc/bind/named.conf.local
zone "tours.tierslieux86.fr" {
type slave;
masters { 172.16.3.10; };
file "/var/cache/bind/db.tours.tierslieux86.fr";
};
Grâce à cette configuration, le serveur esclave réalisera un transfert de zone auprès du serveur maître. Pour que le contenu du transfert soit stocké dans un fichier de zone, il est nécessaire de le créer au préalable avec les permissions adéquates :
sudo touch /var/cache/bind/db.tours.tierslieux86.fr
sudo chown bind:bind /var/cache/bind/db.tours.tierslieux86.fr
7. Mise en place de la journalisation
logging {
channel bind_log {
file "/var/log/bind.log" versions 3 size 100m;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { bind_log; };
};
// This is the primary configuration file for the BIND DNS server named.
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
// Ajout du fichier de parametrage de la journalisation du service BIND
include "/etc/bind/named.conf.log";
Attention
Sur les systèmes Debian récents, un logiciel de sécurité de type MAC (Mandatory Access Control) nommé AppArmor est activé par défaut. Il surveille entre autres les droits d’accès des différents processus lancés sur le système. Par défaut, AppArmor empêche le service Bind 9 de lire et écrire dans le répertoire /var/log/. Il est donc indispensable de changer ces permissions.
# On autorise le daemon Bind 9 à lire et ecrire dans le fichier /var/log/bind.log
/var/log/bind.log rw,
On vérifie que le nouveau fichier de configuration de AppArmor ne contient pas d’erreurs puis on redémarre le service.
named-checkconf
La commande named-checkconf permet de vérifier si des erreurs de syntaxe sont présentes et de fournir les éléments ou lignes qui posent problème dans un fichier en particulier.