Outils pour utilisateurs

Outils du site


dns

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

<box warning|Important> Pensez à incrémenter le Serial (AAAAMMJJNN) à chaque modification de zone ! </box>

<box success|Astuce> Pour une interface graphique, installez Webmin :

sudo apt install webmin

</box>

dns.txt · Dernière modification : de 127.0.0.1