Bannière

Configuration bind9 sur Debian 12

  Le 22 juin 2023     Aurélien Schnoebelen     #bind9#debian#dns  

Ce mémo récapitule quelques éléments de configuration et d’utilisation de bind9 sous debian. Il n’a pas pour vocation d’être exhaustif ni de servir de tuto, mais simplement de mémo.

1. Types d’enregistrements

  • NS : Name Server. Permet de contacter le serveur DNS qui fait autorité sur le domaine.
  • A : hôte en IPv4 (résolution de nom en IPv4)
  • AAAA : hôte en IPv6 (résolution de nom en IPv6)
  • CNAME : Canonical Name. Alias d’un enregistrement
  • MX : Déclaration d’un serveur de messagerie
  • PTR : résolution inverse
  • SOA : informations générales sur la zone (serveur principale, etc)
  • SRV : Spécifique à certains services
  • TXT : Enregistrement libres, utiles notemment pour le SPF (anti spam)

2. Syntaxe

Dans les zones normales

<nom-de-l'hote> IN A <nom-de-l'alias> IN CNAME <nom-de-référence>

Dans les zones “inverses”

<octet-adresse-machine> IN PTR <nom-de-l'hote>

3. Configuration du fichier d’options (modèle type)

acl     "acl-lan"       { 192.168.1.0/24; }; //Défini un acl (acl-lan est un nom arbitraire)
options {
        directory "/var/cache/bind";  //Répertoire contenant les fichiers de zone
        forwarders {
                192.168.1.254;        //Adresse du serveur DNS à forwarder
        };
        dnssec-validation auto;       //Système permettant de sécuriser les échanges DNS
        allow-transfer {none; };      //Interdit le transfert des infos vers un autre serveur
        version none;            //Permet de masquer la version de bind9 en cas de requête (sécurité)
        allow-query { "acl-lan"; };   //N'autorise que les adresses configurées dans ACL à requester le serveur DNS
        listen-on { any; };           //Choix de l'interface sur lequel écoute bind
        listen-on-v6 { any; };
};

4. Déclaration d’une Zone

Dans /etc/bind/named.conf.local

//Déclaration d'une zone
zone "mon-adresse.local" {
    type master;
    file "/etc/bind/db.mon-adresse.local";
    notify no;
};

//Déclaration d'une zone inverse
zone "1.168.192.in-addr.arpa" {         //3 premiers octets inversés du réseau (ici 192.168.1.0/24 donne 1.168.192), suivi du nom de domaine universel pour la résolution inverse .in-addr.arpa
        type master;
        file "/etc/bind/db.reverse.mon-adresse.local";
        notify no;
};

allow-update {none; } : pas de mise à jour du fichier d’enregistrement par un tiers

5. Contenu du fichier des enregistrements de zone

Dans /etc/bind/db.mon-adresse.local

$TTL	604800
@	IN	SOA	dns.mon-adresse.local. root.mon-adresse.local. (
			2023062203	; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	dns.mon-adresse.local.
@	IN	A	192.168.1.202

www 	IN	CNAME	mon-adresse.local.
dns	IN	A	192.168.1.200
db	IN	A	192.168.1.201
apache	IN	A	192.168.1.202

6. Contenu du fichier des enregistrements de zone inverse

Dans /etc/bind/db.reverse.mon-adresse.local

$TTL	604800
@	IN	SOA	dns.mon-adresse.local. root.mon-adresse.local. (
			2023062201	; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	dns.mon-adresse.local.
200	IN	PTR	dns.mon-adresse.local.
201	IN	PTR	db.mon-adresse.local.
202	IN	PTR	mon-adresse.local.

7. Redémarrer le service bind

systemctl restart named.service

8. Tests de la configuration

cd /etc/bind/
named-checkzone <nom-de-domaine-à-tester> <db.fichier-correspondant>
nslookup <nom-de-domaine-à-tester>
nslookup <adresse-ip-à-tester>
dig <nom-de-domaine-à-tester>
dig -x  <adresse-ip-à-tester>