📦 Compatible & testé avec Debian 12.5 (Bookworm)
🎯 Prérequis
📁 Particularités Debian 12.5
/etc/resolv.conf(DHCP)Avant de commencer, assure-toi que :
root ou sudo.172.17.219.182, 172.17.219.212).| Élément | Détail |
|---|---|
| 📂 Fichiers de zones | Ils doivent être placés dans /var/cache/bind/ |
🔗 /etc/resolv.conf |
Doit être modifié a chaque fois que l’IP change dans un named-checkconf -z ou regarder ici |
sudo apt update
sudo apt install bind9
systemctl status bind9
/etc/bind/named.conf.localsudo nano /etc/bind/named.conf.local
➡️ Ajouter à la fin du fichier :
zone "@.local" {
type master;
file "db.@.local";
};
zone "17.172.in-addr.arpa" {
type master;
file "db.172.17";
};
🔁 Remplace @ par ton nom de domaine personnalisé (ex.
monsite,reseau, etc.).
✅ En premier tu as un DNS normal (
zone "@.local") et en deuxième un DNS inversé (zone "17.172.in-addr.arpa").
/var/cache/bind/db.@.local sudo nano /var/cache/bind/db.@.local
➡️ Contenu :
$TTL 604800
@.local. IN SOA debianDNS.@.local. admin.@.local. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ; Negative Cache TTL
)
; Name server
@.local. IN NS debianDNS.@.local.
; Host addresses
debianDNS.@.local. IN A 172.17.219.212
poste01.@.local. IN A 172.17.219.19
🔁 Remplace
@par ton nom de domaine. 🔁 RemplacedebianDNSpar le nom de ton serveur DNS (ex.dns01). ⚠️ Utilise soit des tabulations, soit des espaces, mais pas les deux.
⚠️ Après les
;, tu as les légendes si tu veux les modifier.
/var/cache/bind/db.172.17 sudo nano /var/cache/bind/db.172.17
➡️ Contenu :
$TTL 86400
172.17.in-addr.arpa. IN SOA debianDNS.@.local. admin.@.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ; Negative Cache TTL
)
; Name server
17.172.in-addr.arpa. IN NS debianDNS.@.local.
; PTR records
182.219.17.172.in-addr.arpa. IN PTR debianDNS.@.local.
19.219.17.172.in-addr.arpa. IN PTR poste01.@.local.
🔁 Ici aussi, remplace
@etdebianDNScomme ci-dessus.
sudo named-checkconf -z
✅ Si aucun message d’erreur n’apparaît, tout est bon. Sinon l’erreur sera indiqué avec la ligne et l’erreur.
.conf :sudo systemctl restart bind9
sudo systemctl reload bind9
systemctl status bind9
dig debianDNS.@.local
dig poste01.@.local
dig -x 172.17.219.182
dig -x 172.17.219.19
✔️ Si les réponses contiennent :
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
→ 🎉 ça fonctionne !
/etc/resolv.conf :sudo nano /etc/resolv.conf
➡️ Exemple de contenu :
domain @.local
search @.local
nameserver 127.0.0.1
🔁 Remplace
@par ton domaine.
🔧 Tu es obliger de le modifier avec ton domaine et une ip locale (dans ce cas la) sinon ca ne marchera pas !
/etc/resolv.conf(DHCP) ps -aux | grep dhcp
dhclient :sudo kill <PID>
Remplace
<PID>par le numéro du processus trouvé précédemment pour enlever la réecriture automatique du fichier/etc/resolv.conf.
🎯 Le serveur secondaire va répliquer automatiquement les zones depuis le master.
/etc/bind/named.conf.local pour autoriser le DNS secondaire :zone "@.local" {
type master;
file "db.@.local";
allow-transfer { 172.17.219.212; }; // IP du serveur secondaire
};
zone "17.172.in-addr.arpa" {
type master;
file "db.172.17";
allow-transfer { 172.17.219.212; }; // IP du serveur secondaire
};
🔁 Remplace
@par ton domaine et172.17.219.212par l’IP de ton serveur secondaire.
🔄 Puis redémarre BIND9 :
sudo systemctl restart bind9
sudo apt update
sudo apt install bind9
/etc/bind/named.conf.local :sudo nano /etc/bind/named.conf.local
➡️ Ajouter :
zone "@.local" {
type slave;
masters { 172.17.219.182; }; // IP du serveur maître
file "/var/cache/bind/slave.db.@.local";
};
zone "1.168.192.in-addr.arpa" {
type slave;
masters { 172.17.219.182; };
file "/var/cache/bind/slave.db.172.17";
};
🔁 Remplace
@par ton domaine.
🔁172.17.219.182est l’IP du serveur primaire (master).
Les fichiers seront générés automatiquement dans/var/cache/bind/.
sudo systemctl restart bind9
/etc/resolv.conf: sudo nano /etc/resolv.conf
➡️ Exemple de contenu (pour le serveur primaire) :
domain @.local
search @.local
nameserver 127.0.0.1
nameserver 172.17.219.182
➡️ Exemple de contenu (pour le serveur secondaire) :
domain @.local
search @.local
nameserver 127.0.0.1
nameserver 172.17.219.212
🔁 Remplace
@par ton domaine
Sur le serveur secondaire, vérifie que les fichiers sont bien récupérés :
ls /var/cache/bind/
Tu dois y voir :
slave.db.@.localslave.db.172.17Puis teste avec dig sur les deux serveurs (master et slave) :
dig -x 172.17.219.212
dig -x 172.17.219.182
dig debian-AR-DNS.@.local
dig slave.@.local
dig poste01.@.local
🔁 Remplace
@par ton domaine.
✔️ Si la réponse contient :
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
→ 🎉 ça fonctionne !
Félicitations 🎉 ! Tu viens de mettre en place une infrastructure DNS complète avec un serveur primaire, un serveur secondaire et une gestion des résolutions directes et inverses, le tout sécurisé et conforme aux bonnes pratiques sur Debian 12.5.
Grâce à cette configuration, tu maîtrises maintenant :
La gestion des zones DNS avec BIND9 🗂️
La résolution directe et inversée des noms de domaine 🔄
La réplication automatique vers un serveur secondaire pour plus de redondance et de fiabilité 🛰️
👉 N’oublie pas de sauvegarder régulièrement tes fichiers de configuration, de surveiller les logs de BIND (journalctl -u bind9) et de garder ton linux à jour.