Plan de reprise d'activité du service de DNS local🔗
Posted by Médéric Ribreux 🗓 In kb/ drp/ debianplug/
Introduction
Le service de DNS local est assuré par Bind. Il permet de relayer les requêtes DNS vers les serveurs appropriés (service DNS de routage (DNS forwarding)). De plus, il offre un service de nommage local sur un domaine uniquement disponible sur le réseau local. Il permet d'offrir la résolution de noms à l'ensemble des clients du réseau local.
Ce service est critique car lors de son arrêt, l'accès à Internet par les mécanismes simples est rendu impossible (même si la connectivité IP est correcte).
Information | Caractéristiques |
---|---|
Site web origine | [https://www.isc.org/downloads/bind/] |
Version installée | 9.8.4 |
Code | C |
Paquet | bind9 |
Pré-requis
- Pour la réinstallation de Bind, une connexion à Internet est indispensable, ne serait-ce que pour télécharger les paquets d'installation.
- Bind est destiné à être installé sur une distribution Debian Wheezy de base.
Installation des paquets
Voici la commande complète qui permet de réinstaller les paquets indispensables au fonctionnement de bind. ``sh # aptitude install -R bind9 bind9utils
`` # Répertoires concernés
- L'ensemble de la configuration du service bind9 est disponible dans
/etc/bind/
. - La zone locale concerne le domaine
.ici
, uniquement disponible sur le LAN. - Il existe un répertoire de cache disponible dans
/var/cache/bind/
. - Les logs sont stockés dans
/var/log/bind/
. Le répertoire doit être accessible à l'utilisateur bind. - Bind fait appel à des fichiers de zone dont voici la description:
/etc/bind/db.0
: Zone locale de broadcast./etc/bind/db.127
: Zone pour la résolution inverse de l'adresse loopback des clients mal configurés./etc/bind/db.192.168.0
: zone reverse DNS locale (pour le domaine .ici)/etc/bind/db.255
: Zone locale de broadcast./etc/bind/db.ici
: zone DNS locale pour le domaine .ici./etc/bind/db.local
: zone DNS pour les clients mal configurés qui font une résolution de nom surlocalhost
./etc/bind/db.root
: zone DNS spéciale qui contient les adresses IP des serveurs DNS racine.
Restauration
Le seul élément à restaurer est la configuration de Bind. Se réferrer à la procédure de restauration générique pour y parvenir.
# obnam restore /etc/bind /tmp/ # mv /tmp/bind /etc/ # mkdir /var/log/bind/ # chown -R bind:bind /var/log/bind # service bind9 restart
Configuration générale de Bind
Normalement la configuration est restaurée lors de l'opération précédente. En cas de problèmes, on pourra s'appuyer sur la suivante. Tout est concentré dans un seul fichier de configuration stocké dans /etc/bind/named.conf
.
// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local acl reseau_local { 192.168.0.0/24; }; controls { }; // Don't forget to add the keys for DNSSEC: include "/etc/bind/bind.keys"; options { listen-on { 127.0.0.1; 192.168.0.4; }; port 53; directory "/var/cache/bind"; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { ::1; }; recursion yes; }; // Logging configuration logging { channel security_warning { file "/var/log/bind/security.log" versions 3 size 100k; severity warning; print-severity yes; print-time yes; }; channel client_info { file "/var/log/bind/requests.log" versions 2 size 10m; severity info; print-severity yes; print-time yes; }; channel bind_log { file "/var/log/bind/bind.log" versions 3 size 1m; severity info; print-category yes; print-severity yes; print-time yes; }; category default { bind_log; }; category client { client_info; }; category resolver { client_info; }; category queries { client_info; }; category lame-servers { null; }; category update { null; }; category update-security { null; }; category security { security_warning; }; }; // Définitions des zones zone "ici" { type master; file "/etc/bind/db.ici"; allow-query { localhost; reseau_local; }; allow-update { none; }; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168.0"; allow-query { localhost; reseau_local; }; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; // Include empty zones for RFC 1918 DNS queries (from fucked clients) include "/etc/bind/zones.rfc1918";
Fichiers de zone
Voici les fichiers de zone locale. Ils sont normalement restaurés lors des précédentes opérations. Voici leur contenu juste pour rappel.
Fichier /etc/bind/db.ici
:
; ; Fichier de zone du réseau local ici. ; $TTL 1d @ IN SOA ici. mederic.ribreux.medspx.fr. ( 201401071 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS debianplug.ici. debianplug IN A 192.168.0.4 madamem IN A 192.168.0.6 medspxtower IN A 192.168.0.7 hp6840 IN A 192.168.0.5 trick IN A 192.168.0.8 goofy IN A 192.168.0.9 debianbox IN A 192.168.0.11 medeeepc IN A 192.168.0.13 martintab IN A 192.168.0.14 paulinepc IN A 192.168.0.15
Fichier /etc/bind/db.192.168.0
:
; ; Fichier de configuration de la zone DNS inverse locale ; $TTL 3d 0.168.192.in-addr.arpa. IN SOA debianplug.ici. mederic.ribreux.medspx.fr. ( 2014013101 ;Serial Number 8H ;refresh 2H ;retry 4W ;expire 1D) @ IN NS debianplug.ici. 4 IN PTR debianplug.ici. 5 IN PTR hp6840.ici. 6 IN PTR madamem.ici. 7 IN PTR medspxtower.ici. 8 IN PTR trick.ici. 9 IN PTR goofy.ici. 11 IN PTR debianbox.ici. 13 IN PTR medeeepc.ici. 14 IN PTR martintab.ici. 15 IN PTR paulinepc.ici.
Procédure de vérification du service
- Obtenir une adresse IP sur le réseau local (LAN ethernet ou Wifi).
- Faire une résolution de noms:
$ host linuxfr.org
et voir si l'on a une réponse.