====== Installation et configuration d'un serveur DNS avec Bind9 ======
===== 1. Introduction =====
Un serveur **DNS** (Domain Name System) traduit les noms de domaine en adresses IP. **Bind9** est la solution la plus répandue sous Linux.
**Cas d'usage** :
* Résolution de noms interne/externe
* Hébergement de zones DNS locales
* Cache DNS pour accélérer les requêtes
===== 2. Prérequis =====
* Serveur Debian/Ubuntu
* IP statique configurée
* Accès root/sudo
===== 3. Installation =====
=== 3.1. Installation de Bind9 ===
sudo apt update
sudo apt install bind9 bind9utils dnsutils -y
=== 3.2. Structure des fichiers ===
| **Fichier** | **Description** |
| `/etc/bind/named.conf` | Fichier de configuration principal |
| `/etc/bind/named.conf.local` | Zones locales personnalisées |
| `/etc/bind/db.local` | Exemple de zone |
===== 4. Configuration de base =====
=== 4.1. Configuration d'une zone forward (exemple pour "lan.intra") ===
Éditez le fichier de zones locales :
sudo nano /etc/bind/named.conf.local
Ajoutez :
zone "lan.intra" {
type master;
file "/etc/bind/zones/db.lan.intra";
};
Pour le DNS Slave :
zone "lan.intra" {
type slave;
file "/var/cache/bind/zones/db.lan.intra";
masters { [ipDuMaster] ;};
};
=== 4.2. Création du fichier de zone ===
Copiez le modèle :
sudo cp /etc/bind/db.local /etc/bind/zones/db.lan.intra
Puis éditez-le :
;
; Zone DNS pour lan.intra
;
$TTL 86400
@ IN SOA ns1.lan.intra. admin.lan.intra. (
2024040101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.lan.intra.
ns1 IN A 192.168.1.10
router IN A 192.168.1.1
pc01 IN A 192.168.1.100
=== 4.3. Configuration du résolveur ===
Pour utiliser ce serveur comme DNS local :
sudo nano /etc/resolv.conf
Ajoutez :
nameserver 192.168.1.10
===== 5. Gestion du service =====
=== 5.1. Redémarrer Bind9 ===
sudo systemctl restart bind9
sudo systemctl enable bind9
=== 5.2. Vérification ===
# Test de configuration
sudo named-checkconf
sudo named-checkzone lan.intra /etc/bind/db.lan.intra
# Requête test
dig ns1.lan.intra @localhost
===== 6. Configuration avancée =====
=== 6.1. Zone reverse (PTR) ===
Ajoutez dans `named.conf.local` :
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};
Créez le fichier :
;
; Zone reverse pour 192.168.1.0/24
;
$TTL 86400
@ IN SOA ns1.lan.intra. admin.lan.intra. (
2024040101
3600
1800
604800
86400 )
@ IN NS ns1.lan.intra.
10 IN PTR ns1.lan.intra.
100 IN PTR pc01.lan.intra.
=== 6.2. Forwarders (pour Internet) ===
Éditez :
sudo nano /etc/bind/named.conf.options
Ajoutez :
forwarders {
8.8.8.8;
1.1.1.1;
};
===== 7. Dépannage =====
=== 7.1. Commandes utiles ===
| **Commande** | **Description** |
| `dig @localhost example.com` | Test de résolution |
| `nslookup pc01.lan.intra` | Vérification simple |
| `sudo journalctl -u bind9 -f` | Logs en temps réel |
=== 7.2. Erreurs courantes ===
* **SERVFAIL** → Vérifiez les permissions sur `/etc/bind`
* **NXDOMAIN** → Zone mal configurée
* **Refused** → Bind9 n'écoute pas sur l'IP correcte
===== 8. Sécurité =====
# Désactive la version DNS
sudo nano /etc/bind/named.conf.options
Ajoutez :
version "none";
allow-transfer { none; };
===== 9. Documentation complémentaire =====
* [[https://www.it-connect.fr/installer-un-serveur-dns-avec-bind9/|IT-Connect : Guide complet Bind9]]
* [[https://wiki.debian.org/fr/Bind9|Documentation Debian]]
* [[https://bind9.readthedocs.io/|Documentation officielle Bind9]]
Pensez à incrémenter le **Serial** (AAAAMMJJNN) à chaque modification de zone !
Pour une interface graphique, installez **Webmin** :
sudo apt install webmin