BIND

De Zed-Wiki
Aller à : Navigation, rechercher

Installation et configuration d'un serveur BIND

Installation du serveur

Installation du paquet bind9

apt-get install bind9

Configuration du serveur

Par défaut, les fichiers de configuration de bind se situe dans le repertoire /etc/bind. Voici les fichiers de configuration de bind.

db.0    db.255    db.local  named.conf        named.conf.options  zones.rfc1918
db.127  db.empty  db.root   named.conf.local  rndc.key

Le fichier named.conf est le fichier principal du serveur. Il est décomposé en plusieurs parties :

  • La première correspond au serveur root de l'internet.
    • Serveur ROOT :
A.ROOT-SERVERS.NET.     3600000 IN      A       198.41.0.4
B.ROOT-SERVERS.NET.     3600000 IN      A       192.228.79.201
C.ROOT-SERVERS.NET.     3600000 IN      A       192.33.4.12
D.ROOT-SERVERS.NET.     3600000 IN      A       128.8.10.90
E.ROOT-SERVERS.NET.     3600000 IN      A       192.203.230.10
F.ROOT-SERVERS.NET.     3600000 IN      A       192.5.5.241
G.ROOT-SERVERS.NET.     3600000 IN      A       192.112.36.4
H.ROOT-SERVERS.NET.     3600000 IN      A       128.63.2.53
I.ROOT-SERVERS.NET.     3600000 IN      A       192.36.148.17
J.ROOT-SERVERS.NET.     3600000 IN      A       192.58.128.30
K.ROOT-SERVERS.NET.     3600000 IN      A       193.0.14.129
L.ROOT-SERVERS.NET.     3600000 IN      A       198.32.64.12
M.ROOT-SERVERS.NET.     3600000 IN      A       202.12.27.33
    • Partie correspondant dans le fichier named.conf :
zone "." {
       type hint;
       file "/etc/bind/db.root";
};

Ensuite nous avons les différentes sections pour la partie localhost et enfin il y a une inclusion de fichier :

include "/etc/bind/named.conf.local";

C'est dans ce fichier que l'on va ajouter les domaines que l'on veut gérer.


Le fichier named.conf.local

Nous allons par exemple gérer le domaine zednetwork.hd.free.fr. Pour cela, nous allons créer deux fichiers :

  • zednetwork.hd.free.fr pour la zone principale
  • zednetwork.hd.free.fr.rev pour la zone inverse.
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "ccoueffe.lab.insia.org" {
       type master;
       file "/etc/bind/zednetwork.hd.free.fr";
};
zone "0.0.10.in-addr.arpa" {
       type master;
       file "/etc/bind/zednetwork.hd.free.fr.rev";
}; 

Exemple d'un fichier de zone principale

$TTL    604800
@       IN      SOA     ns1.zednetwork.hd.free.fr. postmaster.hd.free.fr. (
                     2006111101         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.zednetwork.hd.free.fr.
ns1.zednetwork.hd.free.fr.   IN      A     10.0.0.1
ns2.zednetwork.hd.free.fr.   IN      A     10.0.0.2
www.zednetwork.hd.free.fr.   IN      CNAME ns1.zednetwork.hd.free.fr.

Ceci représente la configuration pour la zone principale. Le numéro de série 2006111101 est formé de la facon suivante : YYYYMMJJ et pour finir la version de la journée. Ici c'est le 01, il n'y a donc pas eu de changement dans cette journée.

ns1.zednetwork.hd.free.fr correspond à une enregistrement donc l'adresse IP est le 10.0.0.1. L'attribut A signifie que c'est une adresse au format IPv4.

Exemple d'un fichier de zone reverse

$TTL    604800
@       IN      SOA     ns1.zednetwork.hd.free.fr. postmaster.hd.free.fr. (
                     2006111101         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.zednetwork.hd.free.fr.
1       IN      PTR     ns1.zednetwork.hd.free.fr.
2       IN      PTR     ns2.zednetwork.hd.free.fr. 

L'attribut PTR signifie que l'adresse 10.0.0.1 pointe sur le nom ns1.zednetwork.hd.free.fr..

Zone esclave

Pour les fichiers du serveur esclave, ne pas oublier de mettre les bons droits sur le repertoire. Pour voir les différents problèmes faire un tail sur /var/log/syslog.

Créer un répertoire slave, cela sera plus facile de retrouver les fichiers slaves. Vérifier les droits sur le répertoire. Les fichiers seront copiés directement dans ce repertoire.

zone "zednetwork2.hd.free.fr" {
      type slave;
      file "/etc/bind/slave/zednetwork2.hd.free.fr";
      masters {
              10.0.0.2;
      };
};
zone "0.0.10.in-addr.arpa" {
      type slave;
      file "/etc/bind/slave/zednetwork2.hd.free.fr.rev";
      masters {
              10.0.0.2;
      };
};

Fichier d'options

 /etc/bind/named.conf.options

      forwarders {
                  10.42.0.100;
                 };

      allow-recursion {10.7.17.1/24;};
      allow-transfer  {10.7.10.1;};

La ligne forwarders permet : de rediriger les requêtes inconnues sur un serveur root

La ligne allow-recursion permet : de n'autoriser que les machines internes à faire des requêtes récursives.

La ligne allow-transfert permet : de n'autoriser que les serveurs secondaires à faire des transferts.

Vérification

Maintenant que tout est terminé, on va testé si tout fonctionne correctement. Pour cela, nous avons différents outils : nslookup, host, dig.


Voilà un exemple de commande pour tester le fonctionnement du serveur sans changer votre serveur DNS la requête sera fait en local se qui n'altère pas le fonctionnement normal de votre configuration actuel:

zed@zed-debian:/etc/bind$ nslookup deb 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

deb.zed.local   canonical name = deb-test.zednetwork.hd.free.fr.
Name:   deb-test.zednetwork.hd.free.fr
Address: 192.168.100.5

Maintenant que vous arrivez à avoir une reponse correcte, il est possible de changer le serveur DNS. Pour cela il faut éditer le fichier resolv.conf.

vi /etc/resolv.conf

La première ligne permet de résoudre la zone zed.local sans pour autant devoir mettre écrire le nom dns complet. La seconde correspond à l'adresse du serveur DNS que vous venez de configurer.

search zednetwork.hd.free.fr
nameserver 192.168.100.1

Outils

  • whois
  • host
  • nslookup
  • dig
apt-get install host dnsutils whois

Les vues

modifier le fichier named.conf comme ca :

acl "internal"{
        192.168.17.0/24;
        127.0.0.1;
};

view "internal"{
        match-clients {internal;};
        include "/etc/bind/named.conf.internal";

view "external"{
         match-clients {any};
         recursion yes ;
         include "/etc/bind/named.conf.external";
};


#include "/etc/bind/named.conf.local";