Table des matières

Bind - Installation d'un serveur DNS

CréationNicolas THOREZ 2020/02/20 12:04

Le service DNS (Domain Name System) correspond à l'annuaire de votre réseau. Il transforme les adresses telles que server.shyrka.sys en adresses IP permettant la communication entre les machines via leur FQDN (Fully-Qualified Domain Name) ou leur nom d'hôte (pour linux) et NetBIOS (pour Windows). Sous debian, le service DNS est fourni par BIND (Berkeley Internet Name Daemon).

Environnement

Cette procédure a été réalisée et testée sur une VM Debian 10.

Droits

Cette procédure nécessite des droits root. Faîtes donc attention à ce que vous faîtes.

Installation

apt-get update

apt-get install -y bind9

Configuration

Pour une bonne configuration du serveur BIND, il faut configurer plusieurs fichiers, correspondant à des propriétés bien précises :

Forêt

Ce fichier de configuration est /etc/bind/named.conf. On le configure en y ajoutant les informations suivantes :

La section à ajouter ressemble donc à cela :

zone "shyrkasys.local" { 
    type master; 
    file "/etc/bind/zones/shyrkasys.local"; 
    forwarders{}; 
}; 

Zone ou Domaine

Ce fichier doit être celui que vous avez indiqué dans le fichier /etc/bind/named.conf. L'entête de ce fichier contient différentes informations concernant la zone :

L'entête ressemble donc à cela :

$TTL 3600
@    IN     SOA     dns.shyrkasys.local. root.shyrkasys.local. (
          2020022004 ; serial
          7200       ; refresh
          900        ; retry
          604800     ; expire
          600 )      ; ttl

@    IN     NS     dns
@    IN     A      192.168.0.250

Une fois l'entête créée, on peut ajouter à la suite les différentes entrées telles que :

Exemple :

router          IN     A          192.168.0.1
printer         IN     A          192.168.0.2

share           IN     A          192.168.0.10

dns             IN     A          192.168.0.250
mail            IN     A          192.168.0.251
ldap            IN     A          192.168.0.252

webmail         IN     CNAME      mail

Numéro de série

Lorsque l'on change le fichier de zone, il ne faut pas oublier de mettre à jour le numéro de série afin que les serveurs secondaires puissent se mettre à jour.

Astuce

Il est intéressant que les adresses se suivent et qu'une ligne vide soit laissée entre 2 adresses qui ne se suivent pas. Cela aide à voir rapidement qu'elles sont les adresses disponibles.

Zone de recherche inversée

Pour que le système fonctionne correctement, il est impératif de créer une zone de recherche inversée pour chaque zone créée. Pour cela, le principe est le même que pour la création d'une zone à quelques détails près.

Forêt

Dans le fichier /etc/bind/named.conf, on va créer une nouvelle zone. Sa particularité fera que son nom sera l'adresse du réseau de la zone écrite à l'envers suivie de in-addr.arpa correspondant au domaine des recherches inversées. Du coup, pour un réseau de classe C comme 192.168.0.X, le nom de la zone inversée sera 0.168.192.in-addr.arpa.

Exemple :

zone "0.168.192.in-addr.arpa" { 
    type master; 
    file "/etc/bind/zones/shyrkasys.local.inv"; 
    forwarders{}; 
}; 

Zone inversée

Le fichiers de configuration est, là aussi, celui indiqué dans le fichier named.conf pour la zone de recherche inversée (/etc/bind/zones/shyrkasys.local.inv dans notre exemple). Il reprend la même entête que le fichier de configuration de la zone à l’exception de :

Le reste du fichier est constitué des entrées PTR (PoinTeR) correspondantes à chaque entrée A du fichier de zone.

Exemple :

$TTL 3600
@    IN     SOA     dns.shyrkasys.local. root.shyrkasys.local. (
          2020022004 ; serial
          7200       ; refresh
          900        ; retry
          604800     ; expire
          600 )      ; ttl

@    IN     NS     dns.shyrkasys.local.

1    IN     PTR     router.shyrkasys.local.
2    IN     PTR     printer.shyrkasys.local.

10   IN     PTR     share.shyrkasys.local.

250  IN     PTR     dns.shyrkasys.local.
251  IN     PTR     mail.shyrkasys.local.
252  IN     PTR     ldap.shyrkasys.local.

Zone inversée

Il est important de modifier le fichier de zone inversée en même temps que le fichier de zone (même numéro de série, informations concordantes).

Redémarrage

N'oubliez pas de redémarrer le service bind après chaque modifications des fichiers de configuration.

Gestion du service

systemctl start bind9.service

systemctl restart bind9.service

systemctl stop bind9.service

systemctl status bind9.service

systemctl enable bind9.service

Autres configurations intéressantes

Bien que ce ne soit pas obligatoire pour faire fonctionner le serveur BIND, on peut rajouter en redirecteurs principaux, les adresses des serveurs DNS de notre fournisseurs d'accès à internet ou autres. Pour cela :

On peut aussi ajouter dans le même fichier les options de log, exemple :

logging {
        channel "requetes" {
                file "/var/log/bind/queries.log";
                print-time yes;
                print-category yes;
        };
        category queries { "requetes"; };
        channel "securite" {
                file "/var/log/bind/securite.log";
                print-category yes;
                print-severity yes;
                print-time yes;
        };
        category security { "securite"; };
        channel "global" {
                file "/var/log/bind/global.log";
                print-category yes;
                print-severity yes;
                print-time yes;
        };
        category general { "global"; };
        channel "configuration" {
                file "/var/log/bind/config.log";
                print-category yes;
                print-severity yes;
                print-time yes;
        };
        category config { "configuration"; };
};

Logs

Il faudra penser à créer les différents fichiers de log et changer leur propriétaire et leur groupe par bind. Pour debian 10 où apparmor est installé par défaut, il faudra aussi modifier les autorisations d'écriture.