Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| sysadmin:configurer-bind9 [2013/05/21 17:38] – root | sysadmin:configurer-bind9 [2026/08/03 05:47] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ======= Configurer bind9 ====== | + | {{tag> |
| - | Instalation | + | ======= Configurer BIND9 ====== |
| + | |||
| + | Installation du serveur | ||
| + | Configuration minimale en tant que serveur faisant autorité | ||
| + | |||
| + | < | ||
| + | Il est recommandé d' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Environnement ===== | ||
| + | |||
| + | ^ Date | 2026-07 | ||
| + | ^ Architecture | x86_64 | ||
| + | ^ Système | ||
| + | ^ Noyau | 6.12.96+deb13-amd64 | ||
| + | |||
| + | |||
| + | ===== Procédure ===== | ||
| + | |||
| + | |||
| + | <code bash> | ||
| + | apt install -y bind9 bind9-doc bind9utils dnsutils | ||
| + | </ | ||
| + | |||
| + | |||
| + | Pour vérifier le fonctionnement du service : | ||
| + | |||
| + | <code bash> | ||
| + | systemctl status named | ||
| + | |||
| + | ss -lptun | grep named | ||
| + | </ | ||
| + | |||
| + | Avec le paquet '' | ||
| + | |||
| + | |||
| + | Invoquer la commande sans arguments pour obtenir la liste des options disponibles. Quelques exemples : | ||
| + | |||
| + | <code bash> | ||
| + | # Etat du serveur | ||
| + | rndc status | ||
| + | |||
| + | # Recharger la configuration | ||
| + | rndc reload | ||
| + | |||
| + | # Activer/ | ||
| + | rndc querylog ON | ||
| + | rndc querylog OFF | ||
| + | |||
| + | # Vider le cache | ||
| + | rndc flush | ||
| + | |||
| + | # Augmente la verbosité des logs (à chaque appel ou en spécifiant le niveau) | ||
| + | rndc trace | ||
| + | |||
| + | # Dump des statistiques (par défaut dans / | ||
| + | rndc stats | ||
| + | </ | ||
| + | |||
| + | ===== A propos de la configuration ===== | ||
| + | |||
| + | Sans surprise, les fichiers de configuration du service BIND se trouvent dans le dossier ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | |||
| + | Les nombreuses options de paramétrage sont détaillées dans la documentation : | ||
| <code bash> | <code bash> | ||
| - | apt-get install bind9 bind9-doc bind9utils | + | man -S 5 named.conf |
| </ | </ | ||
| - | Dans le fichier de configuration **''/ | + | Dans le fichier de configuration **''/ |
| - | Ecoute | + | Écouter |
| < | < | ||
| - | | + | listen-on { any; }; |
| + | listen-on-v6 { any; }; | ||
| </ | </ | ||
| - | Ecoute sur la boucle locale | + | Spécifier une ou plusieurs adresses IPv4 et le port |
| < | < | ||
| - | | + | listen-on port 5353 { 127.0.0.1; 192.168.0.1; |
| + | listen-on-v6 { none; }; | ||
| </ | </ | ||
| - | Le retrait | + | Après toute modification |
| - | Commenter les forwarders | + | <code bash> |
| - | <file> | + | named-checkconf -z |
| - | // forwarders | + | </code> |
| - | // | + | |
| - | // }; | + | Puis recharger la configuration : |
| + | |||
| + | <code bash> | ||
| + | rndc reload | ||
| + | |||
| + | # Alternative | ||
| + | systemctl reload named.service | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== A propos du support d'IPv6 ==== | ||
| + | |||
| + | Si IPv6 est utilisé seulement sur le réseau local et que le serveur BIND ne peut pas joindre les serveurs racines ou les forwarders | ||
| + | |||
| + | <code bash [highlight_lines_extra=" | ||
| + | dig @127.0.0.1 www.google.fr A | ||
| + | |||
| + | ; <<>> | ||
| + | ; (1 server found) | ||
| + | ;; global options: +cmd | ||
| + | ;; Got answer: | ||
| + | ;; ->> | ||
| + | ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 | ||
| + | |||
| + | ;; OPT PSEUDOSECTION: | ||
| + | ; EDNS: version: 0, flags:; udp: 1232 | ||
| + | ; COOKIE: 819fa453655def6b010000006a6f289ecc0afcf6f9ae8ce2 (good) | ||
| + | ;; QUESTION SECTION: | ||
| + | ; | ||
| + | |||
| + | ;; Query time: 255 msec | ||
| + | ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) | ||
| + | ;; WHEN: Sun Aug 02 13:23:10 CEST 2026 | ||
| + | ;; MSG SIZE rcvd: 70 | ||
| + | </code> | ||
| + | |||
| + | Dans ce cas, il faut paramétrer le service sans support du protocole IPv6. | ||
| + | |||
| + | Modifier le fichier '' | ||
| + | |||
| + | <file conf> | ||
| + | # | ||
| + | # run resolvconf? | ||
| + | RESOLVCONF=no | ||
| + | |||
| + | # startup options for the server | ||
| + | OPTIONS=" | ||
| </ | </ | ||
| - | ===== Configuration en serveur maître ===== | + | Relancer le service |
| - | bind va être configuré en tant que serveur maître sur la zone **lan.** | + | <code bash> |
| + | systemclt restart named.service | ||
| + | </ | ||
| - | Modifier le fichier de configuration '' | + | ===== Créer une zone ===== |
| + | |||
| + | Nous allons créer la zone **glp.internal.** et définir le serveur en tant que serveur maître sur celle-ci : C'est lui qui fera autorité sur cette zone. | ||
| + | |||
| + | Modifier le fichier de configuration '' | ||
| < | < | ||
| - | zone "lan" { | + | zone "glp.internal" { |
| type master; | type master; | ||
| - | file "/ | + | file "/ |
| + | allow-update { none; }; | ||
| }; | }; | ||
| </ | </ | ||
| - | Le fichier '' | + | Remarque: Pour éviter qu'un tiers ne mette à jour dynamiquement votre zone DNS, utiliser la déclaration **allow-update** |
| + | |||
| + | Le fichier '' | ||
| <code bash> | <code bash> | ||
| - | root@kerberos:/ | + | touch db.glp.internal |
| </ | </ | ||
| Ligne 50: | Ligne 175: | ||
| < | < | ||
| ; | ; | ||
| - | ; BIND fichier de données pour la zone lan | + | ; BIND fichier de données pour la zone internal |
| ; | ; | ||
| $TTL 604800 | $TTL 604800 | ||
| - | @ | + | @ |
| - | | + | |
| | | ||
| 86400 ; Retry | 86400 ; Retry | ||
| Ligne 60: | Ligne 185: | ||
| | | ||
| ; | ; | ||
| - | @ | + | @ IN NS |
| - | ns | + | ; |
| - | gw | + | gateway |
| + | ns1 | ||
| + | test | ||
| </ | </ | ||
| - | Vérifier | + | ===== Créer |
| + | |||
| + | Cette zone va permettre au serveur DNS de convertir une adresse IP en nom. A nouveau modifier le fichier | ||
| + | |||
| + | < | ||
| + | zone " | ||
| + | type master; | ||
| + | file "/ | ||
| + | notify no; | ||
| + | allow-update { none; }; | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | Ici c'est dans le fichier '' | ||
| <code bash> | <code bash> | ||
| - | root@kerberos:/etc/bind# named-checkconf -z | + | cp db.127 db.reverse.internal |
| + | </ | ||
| + | |||
| + | Modifier le fichier de zone inversé '' | ||
| + | |||
| + | < | ||
| + | ; | ||
| + | ; BIND reverse data file | ||
| + | ; | ||
| + | $TTL 604800 | ||
| + | @ IN SOA | ||
| + | 1 ; Serial | ||
| + | | ||
| + | 86400 ; Retry | ||
| + | 2419200 | ||
| + | | ||
| + | |||
| + | @ | ||
| + | |||
| + | 1 | ||
| + | 15 IN PTR | ||
| + | 20 IN PTR | ||
| + | </ | ||
| + | |||
| + | Vérifier la configuration et recharger les fichiers de configuration | ||
| + | |||
| + | <code bash> | ||
| + | named-checkzone 122.168.192.in-addr.arpa | ||
| + | |||
| + | named-checkconf -z && systemctl reload named.service | ||
| + | </ | ||
| + | |||
| + | ==== Tester la recherche inversée ==== | ||
| + | |||
| + | Avec nslookup en passant l' | ||
| + | |||
| + | <code bash> | ||
| + | nslookup | ||
| + | > set type=PTR | ||
| + | > 192.168.1.201 | ||
| + | Server: | ||
| + | Address: | ||
| + | |||
| + | 201.1.168.192.in-addr.arpa | ||
| + | > | ||
| </ | </ | ||
| A propos de la RFC 1918 | A propos de la RFC 1918 | ||
| + | |||
| + | |||
| + | ===== Utilisation du service par l’hôte ===== | ||
| + | |||
| + | : | ||
| + | |||
| + | Une fois le service correctement paramétré, | ||
| + | |||
| + | Pour afficher quel serveur DNS est utilisé par défaut sur le système : | ||
| + | |||
| + | <code bash> | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | Les commentaires du fichiers indiquent quel service à définit le contenu du fichier (en général le client DHCP). | ||
| + | |||
| + | |||
| + | Le fichier ''/ | ||
| + | <code bash> | ||
| + | systemctl start named-resolvconf.service | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== 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 '' | ||
| + | * le serveur HTTP (recommandé). | ||
| + | |||
| + | |||
| + | Pour activer le service d' | ||
| + | |||
| + | < | ||
| + | statistics-channels { inet 127.0.0.1 port 8080 ; }; | ||
| + | </ | ||
| + | |||
| + | Valider la syntaxe et relancer le service : | ||
| + | <code bash> | ||
| + | named-checkconf -z | ||
| + | systemctl reload named.service | ||
| + | </ | ||
| + | |||
| + | :TODO: | ||
| + | |||
| + | * voir paramètre '' | ||
| + | * directive | ||
| + | |||
| + | |||
| + | <code bash> | ||
| + | rndc querylog on | ||
| + | </ | ||
| ===== Références ===== | ===== Références ===== | ||
| * http:// | * http:// | ||
| + | * http:// | ||
| + | * https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * {{reversednspresentation.pdf|Configure reverse DNS in BIND}} | ||