22
0
Fork 0

Ajout description + infos sur unité systemd sous Debian 8

This commit is contained in:
Gregory Colpart 2017-07-22 19:34:24 +02:00
parent 7d082446e1
commit 3d083abcad
1 changed files with 37 additions and 17 deletions

View File

@ -1,14 +1,14 @@
---
categories: web system
title: Howto Bind
title: Howto BIND
...
* Documentation : <https://www.isc.org/downloads/bind/doc/bind-9-10/>
* DNS et Bind : <http://www.zytrax.com/books/dns/>
* DNS et BIND : <http://www.zytrax.com/books/dns/>
* Rôle Ansible : <https://forge.evolix.org/projects/ansible-roles/repository/show/bind>
[Bind](https://www.isc.org/downloads/bind/) est le serveur DNS le plus utilisé sur Internet.
[BIND (Berkeley Internet Name Daemon)](https://www.isc.org/downloads/bind/) est le serveur [DNS](https://fr.wikipedia.org/wiki/Domain_Name_System) historique écrit au début des années 1980, c'est encore le plus utilisé sur Internet. Il est développé par l'[ISC](https://www.isc.org/) qui développe aussi [ISC DHCP](HowtoDHCP). BIND peut être à la fois serveur **récursif** (résoudre n'importe quel enregistrement DNS pour certaines machines) ou serveur **faisant autorité** (renvoyer au monde entier les enregistrements DNS d'un nom de domaine spécifique).
## Installation
@ -25,9 +25,29 @@ compiled with libxml2 version: 2.9.4
linked to libxml2 version: 20904
~~~
Sous Debian 8, l'unité [systemd](HowtoSystemd) ne gère pas les options dans dans `/etc/default/bind9`, il faut corriger l'unité en copiant :
~~~
# cp -a /lib/systemd/system/bind9.service /etc/systemd/system/
~~~
et ajuster la section _[Service]_ :
~~~
EnvironmentFile=-/etc/default/bind9
ExecStart=/usr/sbin/named -f $OPTIONS
~~~
puis :
~~~
# systemctl daemon-reload
~~~
## Configuration
Les options de Bind sont dans `/etc/default/bind9`.
Les options de BIND sont dans `/etc/default/bind9`.
Fichiers de configuration :
@ -50,7 +70,7 @@ Fichiers de configuration :
### serveur DNS récursif
Lorsque Bind est utilisé en serveur DNS récursif pour une ou plusieurs machines, on conseille d'activer la résolution DNS inverse pour les zones RFC1918 dans le fichier `/etc/bind/named.conf.local` (c'est important car de nombreux outils vérifient les [reverses DNS](#Reverse-DNS)) :
Lorsque BIND est utilisé en serveur DNS récursif pour une ou plusieurs machines, on conseille d'activer la résolution DNS inverse pour les zones RFC1918 dans le fichier `/etc/bind/named.conf.local` (c'est important car de nombreux outils vérifient les [reverses DNS](#Reverse-DNS)) :
~~~
include "/etc/bind/zones.rfc1918";
@ -77,12 +97,12 @@ logging {
};
~~~
> *Note* : dans l'exemple, Bind n'écoute que pour la machine locale. Si l'on veut l'interroger avec d'autres machines, on ajustera les options _listen-*_ et _allow-recursion_ (on pourra notamment utiliser [l'ACL _localnets_](#ACL)
> *Note* : dans l'exemple, BIND n'écoute que pour la machine locale. Si l'on veut l'interroger avec d'autres machines, on ajustera les options _listen-*_ et _allow-recursion_ (on pourra notamment utiliser [l'ACL _localnets_](#acl)
### serveur DNS faisant autorité
Lorsque Bind est utilisé en serveur DNS faisant autorité, on conseille de le sécuriser en [l'enfermant dans un chroot](#chroot).
Lorsque BIND est utilisé en serveur DNS faisant autorité, on conseille de le sécuriser en [l'enfermant dans un chroot](#chroot).
On va ensuite configurer via le fichier `/etc/bind/named.conf.options` :
@ -124,7 +144,7 @@ logging {
};
~~~
On peut ensuite ajouter ses domaines pour lesquels Bind fait autorité dans le fichier `/etc/bind/named.conf.local`, par exemple pour _example.com_ avec un serveur secondaire dans l'ACL _foo_ :
On peut ensuite ajouter ses domaines pour lesquels BIND fait autorité dans le fichier `/etc/bind/named.conf.local`, par exemple pour _example.com_ avec un serveur secondaire dans l'ACL _foo_ :
~~~
zone "example.com" {
@ -163,7 +183,7 @@ ftp CNAME ftp.example.net.
## chroot
Pour enfermer Bind dans une prison _chroot_ nous utilisons le script [chroot-bind.sh](https://forge.evolix.org/projects/chroot-bind/repository) :
Pour enfermer BIND dans une prison _chroot_ nous utilisons le script [chroot-bind.sh](https://forge.evolix.org/projects/chroot-bind/repository) :
~~~
# cd /root
@ -178,13 +198,13 @@ RESOLVCONF=no
OPTIONS=" -u bind -t /var/chroot-bind"
~~~
Vous devez alors relancer Bind :
Vous devez alors relancer BIND :
~~~
# systemctl restart bind9
~~~
À chaque mise à jour du paquet _bind9_ ou de l'une de ses dépendances (_libc6_, _libcap2_, _libssl_, etc.) vous devrez relancer le script _chroot-bind.sh_ et Bind ensuite.
À chaque mise à jour du paquet _bind9_ ou de l'une de ses dépendances (_libc6_, _libcap2_, _libssl_, etc.) vous devrez relancer le script _chroot-bind.sh_ et BIND ensuite.
## Rotation des logs
@ -221,7 +241,7 @@ Pour un serveur faisant autorité, on doit préciser le path des fichiers dans l
}
~~~
> *Note* : la rotation du fichier `/var/chroot-bind/var/log/bind_queries.log` est assurée par Bind sous réserve d'avoir bien précisé l'option _versions_ dans les paramètres de logging Bind
> *Note* : la rotation du fichier `/var/chroot-bind/var/log/bind_queries.log` est assurée par BIND sous réserve d'avoir bien précisé l'option _versions_ dans les paramètres de logging
## ACL
@ -272,13 +292,13 @@ zone "example.com" {
};
~~~
> *Note* : pour avoir le fichier de zone en clair sur le serveur slave (ce qui est pratique notamment en cas d'incident avec le serveur master), il faut s'assurer d'avoir l'option `masterfile-format text` dans la configuration de Bind.
> *Note* : pour avoir le fichier de zone en clair sur le serveur slave (ce qui est pratique notamment en cas d'incident avec le serveur master), il faut s'assurer d'avoir l'option `masterfile-format text` dans la configuration de BIND.
## Mise à jour dynamique
Il est possible de mettre à jour une zone DNS sans éditer le fichier avec `nsupdate`.
Dans ce cas, Bind génère un ficher de journal binaire contenant l'historique des modifications apportées à la zone.
Dans ce cas, BIND génère un ficher de journal binaire contenant l'historique des modifications apportées à la zone.
> *Note* : la synchronisation avec le fichier réel de zone n'est pas faite en temps réel, cela se fait toutes les 15 minutes en général : il faut donc faire attention si l'on veut éditer le fichier de zone, il faudra forcer la synchronisation ainsi :
> ~~~
@ -348,7 +368,7 @@ L'outil **dnstop** permet de surveiller en direct l'activité DNS en analysant l
### Munin
Pour activer les plugins Munin pour Bind :
Pour activer les plugins Munin pour BIND :
~~~
# cd /etc/munin/plugins
@ -356,7 +376,7 @@ Pour activer les plugins Munin pour Bind :
# ln -s /usr/share/munin/plugins/bind9
~~~
Le plugin *bind9_rndc* s'appuye sur le fichier `/var/run/named.stats` (option _statistics-file_ de Bind) et *bind9* s'appuie un fichier de logs (channel *query_logging* dans les logs Bind). Il donc s'assurer d'avoir bien configurer ces deux fichiers puis on indique à Munin via `/etc/munin/plugin-conf.d/munin-node` :
Le plugin *bind9_rndc* s'appuye sur le fichier `/var/run/named.stats` (option _statistics-file_ de BIND) et *bind9* s'appuie un fichier de logs (channel *query_logging* dans les logs BIND). Il donc s'assurer d'avoir bien configurer ces deux fichiers puis on indique à Munin via `/etc/munin/plugin-conf.d/munin-node` :
~~~
[bind*]
@ -387,7 +407,7 @@ file = /var/log/syslog
## géolocalisation
Bind peut répondre une réponse différente selon l'adresse IP qui l'interroge, on peut faire cela de deux façons :
BIND peut répondre une réponse différente selon l'adresse IP qui l'interroge, on peut faire cela de deux façons :
* à l'aide de ce [patch](http://code.google.com/p/bind-geoip/). Le principe est de faire une recherche suivant un arbre binaire (binary search tree) sur la base de données de MaxMind. Cela n'impacte pas les temps de réponse mais nécessite de maintenir un Bind patché ;
* en se basant sur le système de vue de Bind. Le principe est de récupérer les plages d'adresses par pays auprès de [MaxMind](https://www.maxmind.com/) et de générer des fichiers d'ACL à l'aide de ce [script](http://phix.me/geodns/). Les performances sont en théorie moins bonnes (mais cette différence n'est pas vraiment constatée dans la pratique), mais l'installation est bien plus simple à maintenir.