Aller au contenu

Configuration de bind9 (Esclave)

Bannière CUB


Informations

  • Auteur : Louis MEDO
  • Date : 23/09/2026
  • Domaine : Exploitation services

1. Sommaire

2. Contexte

Le serveur Bind9 secondaire (esclave) assure la redondance et la haute disponibilité de la résolution DNS pour la zone dortmund.cub.sioplc.fr. Cette procédure documente sa configuration en mode production (IP: 192.36.4.11). Contrairement au serveur maître, l'esclave ne nécessite pas la création manuelle du fichier de zone : il rapatrie automatiquement les enregistrements via un transfert de zone (AXFR) depuis le maître (IP: 192.36.4.10).

3. Configuration globale du service

3.1. Définition des options globales. Modification du fichier d'options pour sécuriser l'esclave et définir son interface d'écoute locale.

sudoedit /etc/bind/named.conf.options
/etc/bind/named.conf.options
options {
    // Directory permet de définir où se situe le cache du serveur DNS
    directory "/var/cache/bind";

    // Définit le port et la ou les adresses IPv4 d’écoute du service Bind
    listen-on port 53 { 127.0.0.1; 192.36.4.11; };

    // Recursion permet d'autoriser ou d'interdire la récursivité sur un serveur DNS. 
    // Par défaut un serveur DNS faisant autorité ne doit pas être récursif.
    recursion no;

    // Empêche la diffusion de la version du service Bind utilisée (sécurité).
    version none;
};
  • listen-on : Restreint l'écoute du service DNS à l'adresse de l'interface du serveur esclave (192.36.4.11).
  • recursion no : Désactive la récursivité pour éviter les abus d'amplification DNS.
  • version none : Masque la version du daemon pour ralentir l'exploitation d'éventuelles failles.

4. Déclaration de la zone DNS

Synchronisation de la zone

Aucun fichier de zone ne doit être créé manuellement à l'étape suivante. La directive file indique seulement où Bind9 devra stocker le fichier compilé après son transfert depuis le maître. Le répertoire /var/cache/bind/ est utilisé car l'utilisateur bind y possède nativement les droits d'écriture.

4.1. Ajout de la zone esclave. Déclaration de la zone pointant vers le serveur maître.

sudoedit /etc/bind/named.conf.local
/etc/bind/named.conf.local
zone "dortmund.cub.sioplc.fr" {
    type slave;
    masters { 192.36.4.10; };
    file "/var/cache/bind/db.dortmund.cub.sioplc.fr";
};
  • type slave : Identifie ce serveur comme secondaire pour cette zone. Il ne fait autorité que via les données du maître.
  • masters : Spécifie l'adresse IPv4 du serveur DNS maître (192.36.4.10) à contacter pour récupérer les enregistrements.
  • file : Indique l'emplacement de sauvegarde local du fichier de zone une fois le transfert AXFR réussi.

5. Configuration de la journalisation

5.1. Création du fichier de log. Initialisation du fichier texte destiné à recevoir les journaux (y compris les traces de transfert de zone).

sudo touch /var/log/bind.log
sudo chown bind:bind /var/log/bind.log
  • touch : Crée un fichier vide s'il n'existe pas.
  • chown : Attribue la propriété du fichier à l'utilisateur et au groupe bind.

5.2. Paramétrage du module de log. Création d'un fichier de configuration dédié.

sudoedit /etc/bind/named.conf.log
/etc/bind/named.conf.log
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; };
};
  • file : Définit le chemin absolu, le nombre d'archives conservées (versions 3) et le quota de taille (size 100m).
  • severity : Règle le niveau de détail des événements capturés.

5.3. Inclusion de la configuration. Intégration du fichier de journalisation à la configuration principale.

sudoedit /etc/bind/named.conf
/etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.root-hints";

// Ajout du fichier de parametrage de la journalisation du service BIND
include "/etc/bind/named.conf.log";
  • include : Importe les directives de log dans le cycle de démarrage de Bind9.

6. Configuration de la sécurité AppArmor

6.1. Modification des règles AppArmor. Ajustement des droits MAC (Mandatory Access Control) pour l'écriture des journaux.

sudoedit /etc/apparmor.d/usr.sbin.named
/etc/apparmor.d/usr.sbin.named
# On autorise le daemon Bind 9 à lire et ecrire dans le fichier /var/log/bind.log

/var/log/bind.log rw,
  • rw, : Accorde explicitement les permissions de lecture (Read) et d'écriture (Write) au service.

6.2. Rechargement d'AppArmor. Application immédiate des règles.

sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.named
sudo systemctl restart apparmor
  • apparmor_parser -r : Recharge et remplace le profil en direct.
  • systemctl restart apparmor : Relance le service global de confinement.

7. Vérification et validation

7.1. Contrôle de la syntaxe globale. Analyse de la structure des fichiers de configuration.

sudo named-checkconf
  • named-checkconf : Vérifie la validité syntaxique des fichiers (sans -z ici, car le fichier de zone n'existe pas encore avant le premier démarrage et transfert).

7.2. Redémarrage et vérification du statut. Lancement du daemon pour déclencher le premier transfert de zone.

sudo systemctl restart bind9
sudo systemctl status bind9
  • systemctl restart : Arrête puis démarre le processus named.
  • systemctl status : Affiche l'état du service.

7.3. Validation du transfert de zone. Vérification de la bonne réception de la zone depuis le maître.

sudo tail -n 20 /var/log/bind.log
  • tail -n 20 : Affiche les 20 dernières lignes du journal. Permet de confirmer la présence des mentions Transfer started. et Transfer completed: indiquant que la zone a bien été répliquée.