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 [2025/10/24 08:20] – yoann | sysadmin:configurer-bind9 [2026/08/03 05:47] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| {{tag> | {{tag> | ||
| - | ======= Configurer | + | ======= Configurer |
| Installation du serveur de résolution de nom ISC BIND((Berkeley Internet Name Domain)). | 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. | + | Configuration minimale en tant que serveur faisant autorité sur la zone "internal". |
| + | |||
| + | < | ||
| + | Il est recommandé d' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Environnement ===== | ||
| + | |||
| + | ^ Date | 2026-07 | ||
| + | ^ Architecture | x86_64 | ||
| + | ^ Système | ||
| + | ^ Noyau | 6.12.96+deb13-amd64 | ||
| + | |||
| + | |||
| + | ===== Procédure ===== | ||
| <code bash> | <code bash> | ||
| - | apt-get install bind9 bind9-doc bind9utils | + | apt install |
| </ | </ | ||
| - | Dans le fichier de configuration **''/ | + | Pour vérifier |
| - | Écoute | + | <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> | ||
| + | man -S 5 named.conf | ||
| + | </ | ||
| + | |||
| + | |||
| + | Dans le fichier de configuration **''/ | ||
| + | |||
| + | Écouter | ||
| < | < | ||
| - | | + | listen-on { any; }; |
| + | listen-on-v6 { any; }; | ||
| </ | </ | ||
| - | Écoute 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 **internal.** C'est lui qui fera autorité sur cette zone. | + | <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 " | + | zone "glp.internal" |
| type master; | type master; | ||
| - | file "/ | + | file "/ |
| allow-update { none; }; | allow-update { none; }; | ||
| }; | }; | ||
| Ligne 48: | Ligne 166: | ||
| Remarque: Pour éviter qu'un tiers ne mette à jour dynamiquement votre zone DNS, utiliser la déclaration **allow-update** | Remarque: Pour éviter qu'un tiers ne mette à jour dynamiquement votre zone DNS, utiliser la déclaration **allow-update** | ||
| - | Le fichier '' | + | Le fichier '' |
| <code bash> | <code bash> | ||
| - | touch db.internal | + | touch db.glp.internal |
| </ | </ | ||
| Ligne 59: | Ligne 178: | ||
| ; | ; | ||
| $TTL 604800 | $TTL 604800 | ||
| - | @ | + | @ |
| - | | + | |
| | | ||
| 86400 ; Retry | 86400 ; Retry | ||
| Ligne 66: | Ligne 185: | ||
| | | ||
| ; | ; | ||
| - | @ IN NS ns1.internal. | + | @ IN NS ns1.glp.internal. |
| + | ; | ||
| + | gateway | ||
| ns1 IN A | ns1 IN A | ||
| - | gateway | + | test IN A |
| </ | </ | ||
| - | |||
| - | Vérifier la syntaxe des fichiers de configuration: | ||
| - | |||
| - | <code bash> | ||
| - | named-checkconf -z | ||
| - | </ | ||
| ===== Créer la zone de recherche inversée ===== | ===== Créer la zone de recherche inversée ===== | ||
| Ligne 85: | Ligne 200: | ||
| zone " | zone " | ||
| type master; | type master; | ||
| + | file "/ | ||
| notify no; | notify no; | ||
| - | | + | |
| }; | }; | ||
| </ | </ | ||
| Ligne 103: | Ligne 219: | ||
| ; | ; | ||
| $TTL 604800 | $TTL 604800 | ||
| - | @ | + | @ |
| 1 ; Serial | 1 ; Serial | ||
| | | ||
| Ligne 109: | Ligne 225: | ||
| 2419200 | 2419200 | ||
| | | ||
| - | ; | ||
| - | @ | ||
| - | ; ================= Serveurs ========================= | + | @ IN |
| - | 200 IN | + | |
| - | 201 | + | |
| - | 254 | + | |
| + | 1 | ||
| + | 15 IN PTR | ||
| + | 20 IN PTR | ||
| </ | </ | ||
| Vérifier la configuration et recharger les fichiers de configuration | Vérifier la configuration et recharger les fichiers de configuration | ||
| + | |||
| <code bash> | <code bash> | ||
| named-checkzone 122.168.192.in-addr.arpa / | named-checkzone 122.168.192.in-addr.arpa / | ||
| Ligne 142: | Ligne 257: | ||
| 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 ===== | ||
| Ligne 148: | Ligne 320: | ||
| * http:// | * http:// | ||
| * https:// | * https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * {{reversednspresentation.pdf|Configure reverse DNS in BIND}} | ||