{{tag>sysadmin netadmin linux dns bind}}
======= Configurer bind9 ======
Installation du serveur de résolution de nom ISC BIND((Berkeley Internet Name Domain)).
Configuration minimale en tant que serveur faisant autorité sur la zone internal.
apt-get install bind9 bind9-doc bind9utils
Dans le fichier de configuration **''/etc/bind/named.conf.options''** définir les interfaces sur lesquelles le serveur bind sera à l'écoute en modifiant la ligne listen-on-v6.
Écoute sur toutes les interfaces
listen-on-v6 { any; };
Écoute sur la boucle locale
listen-on-v6 { ::1; };
Le retrait de la déclaration **forwarders** permet d'éviter de s'appuyer sur les DNS du FAI. Dans ce cas bind interroge directement les DNS racines. On ne bénéficie plus du cache DNS du FAI mais on évite également ses DNS menteurs s'il existent.
Commenter les forwarders
// forwarders {
// 0.0.0.0;
// };
===== Configuration en serveur maître =====
bind va être configuré en tant que serveur maître sur la zone **internal.** C'est lui qui fera autorité sur cette zone.
Modifier le fichier de configuration ''**/etc/bind/named.conf.local**'' afin de déclarer la zone internal.
zone "internal" {
type master;
file "/etc/bind/db.internal";
allow-update { none; };
};
Remarque: Pour éviter qu'un tiers ne mette à jour dynamiquement votre zone DNS, utiliser la déclaration **allow-update**
Le fichier ''**/etc/bind/db.internal**'' contiendra la définition de la zone internal. Créer le fichier
touch db.internal
Il contiendra les définitions suivantes
;
; BIND fichier de données pour la zone internal
;
$TTL 604800
@ IN SOA ns.internal. contact.internal. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.internal.
ns1 IN A 192.168.1.15
gateway IN A 192.168.1.1
Vérifier la syntaxe des fichiers de configuration:
named-checkconf -z
===== Créer la zone de recherche inversée =====
Cette zone va permettre au serveur DNS de convertir une adresse IP en nom. A nouveau modifier le fichier de configuration ''**/etc/bind/named.conf.local**'' pour ajouter la zone de recherche inversée.
zone "1.168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.reverse.internal";
};
Ici c'est dans le fichier ''**db.reverse.internal**'' que seront définies les entrées de la zone. Utiliser un fichier existant en modèle pour créer le nouveau fichier de zone.
cp db.127 db.reverse.internal
Modifier le fichier de zone inversé ''**/etc/bind/db.192**''. Attention a bien modifier l'entrée SOA, le nom du serveur doit correspondre à la zone **lan**. A chaque entrée **A** du fichier de zone **lan** doit correspondre un enregistrement **PTR**.
;
; BIND reverse data file
;
$TTL 604800
@ IN SOA ns1.lan. admin.lan. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.
; ================= Serveurs =========================
200 IN PTR ns1.lan.
201 IN PTR pi-stache.lan.
254 IN PTR gw.lan.
Vérifier la configuration et recharger les fichiers de configuration
named-checkzone 122.168.192.in-addr.arpa /etc/bind/db.reverse.glp.internal
named-checkconf -z && systemctl reload named.service
==== Tester la recherche inversée ====
Avec nslookup en passant l'adresse IP directement en paramètre ou en mode interactif en restreignant le type de réponses à PTR:
nslookup
> set type=PTR
> 192.168.1.201
Server: 192.168.1.200
Address: 192.168.1.200#53
201.1.168.192.in-addr.arpa name = pi-stache.lan.
>
A propos de la RFC 1918
===== Statistiques =====
Les statistiques ne doivent pas être exposées sur une interface publique car elles peuvent fournir des informations importantes pouvant faciliter les attaques.
Deux méthodes exposent les statistiques du serveur BIND :
* le fichier ''named.stats'' ;
* le serveur HTTP (recommandé).
Pour activer le service d'export des statistiques via HTTP, ajouter la directive ''statistics-channels'' dans le fichier de configuration ''/etc/bind/named.conf.local'' :
statistics-channels { inet 127.0.0.1 port 8080 ; };
Valider la syntaxe et relancer le service :
named-checkconf -z
systemctl reload named.service
:TODO:
* voir paramètre ''query logging'' affiché par la commande **''rndc status''** ;
* directive
rndc querylog on
===== Références =====
* http://doc.ubuntu-fr.org/bind9
* http://www.linuxpedia.fr/doku.php/bind
* https://www.it-connect.fr/dns-avec-bind-9/
* [[https://kb.isc.org/docs/monitoring-recommendations-for-bind-9|Recommandation pour la supervision d'une serveur BIND 9 (isc.org) (en)]]
* [[https://access.redhat.com/solutions/477073|Comment obtenir les statistiques d'un serveur BIND 9 (redhat.com) (en)]]
* [[https://www.it-connect.fr/linux-comment-configurer-un-serveur-dns-bind9-sur-un-reseau-deconnecte-dinternet/|Configurer BIND 9 comme résolveur sur un réseau local non connecté]]
* [[https://blog.tips4tech.fr/creer-un-serveur-dns-avec-bind9/|Configurer un serveur DNS BIND (tips4tech.fr)]]