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>