====== 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