DNS – Configuration Bind9 en master

Introduction

Ce document va expliquer la configuration “basique” d’un serveur Bind9 en maître.

Cela s’applique aussi bien à une distribution Linux, testé sur Debian Sarge, que sur FreeBSD, testé en 6.1.

 

Prérequis

Il faudra avoir installé le paquet bind9 sur une Debian. Les configurations se passeront dans /etc/bind9

Sur FreeBSD, cela sera dans /etc/namedb/. Cela dit, il y a plusieurs cas:

  • On utilise le bind compilé au niveau du système.
  • On compile un port qui se nomme bind9 en lui mettant la variable WITH_PORT_REPLACES_BASE_BIND9=yes pour qu’il remplace celui du système.

Dans la suite du document, tout sera basé un FreeBSD ou j’ai compilé mon port et je l’ai installé à la place de celui du système.

il faudra donc “protéger” notre bind contre celui du système en cas de “recompilation du monde”. Pour cela, ajouter la ligne suivante dans votre fichier make.conf:

NO_BIND=true

 

Le fichier named.conf

C’est le fichier de configuration principal. Il va nous permettre de définir à qui répond le DNS, de quelles zones il est maître ou esclave, etc…

Mon fichier named.conf bien commenté:

; Bind9 configuration

; Les options de base
options {
        ; le répertoire de base de bind9, pour stockage des fichiers de zone par exemple
        directory       "/etc/namedb";
        ; Le fichier PID
        pid-file        "/var/run/named/pid";
        ; le fichier de stats
        statistics-file "/var/stats/named.stats";
        ; Sur quelle interface bind écoute
        listen-on {
                 127.0.0.1;
                 192.168.1.250;
        };
        ; Sur quelle interface ipv6 bind écoute
        listen-on-v6 {
                 none;
        };
        ; Notre serveur forward directement les requêtes 
        ; quand il n'a pas les réponses dans les zones qui lui sont déclarées
        forward only;
        ; Sur qui il forward, les serveurs du FAI par exemple
        forwarders {
               212.85.96.47;
               212.85.97.48;
        };
        ; Les IPs sources qui ont le droit d'interroger notre serveur:
        ; Dans ce cas, tout le monde
        allow-query {
                127.0.0.1;
                0.0.0.0/0;
        };
        ; Les IPs sources qui ont le droit de transférer les zones dont notre DNS est maître
        allow-transfer {
               127.0.0.1;
               192.168.1.251;
       };
       ; Les IPs sources qui le droit de faire de la récursion sur notre DNS
       ; Cela signifie que pour ces IPs, notre serveur DNS ira se renseigner 
       ; si il n'a pas la réponse dans les zones dont il est maître
       ; dans le cas contraire, il répondre qu'il ne sait pas.
       ; Ici, il fait de la récursion seulement pour lui-même
       allow-recursion {
               127.0.0.1;
       };

};
 
 
; Quelques déclarations de zones "standards"
zone "." {
        type hint;
        file "named.root";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "master/localhost.rev";
};

; RFC 3152
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
        type master;
        file "master/localhost-v6.rev";
}; 


; Configuration de notre zone:
; Déclaration de la zone
zone "free-4ever.net" {
        ; Son type pour ce serveur, ici maître
        type master;
        ; le fichier où les informations sont stockés
        file "master/free-4ever.net";
};

; Une zone reverse avec les mêmes paramètres
zone "1.168.192.in-addr.arpa" {
        type master;
        file "master/1.168.192.in-addr.arpa";
};

Nous allons devoir maintenant créer les fichiers des zones.

 

Le fichier de zone: free-4ever.net

Le fichier est de la forme suivante:

; Les paramètres de configuration de la zone:
; free-4ever.net: le nom de la zone
; ns.free-4ever.net: le serveur maître de la zone
; administrateur.free-4ever.net: l'adresse email de l'administrateur de la zone... avec un "." à la place du "@"
; 2006113001: le serial qu'il faudra incrementer à chaque modification
; Ensuite, ces sont les paramètres de temps de vie, expiration, etc de la zone
$ORIGIN .
$TTL 3600       ; 1 hour
free-4ever.net                  IN SOA  ns.free-4ever.net. administrateur.free-4ever.net. (
                                2006113001 ; serial
                                7200       ; refresh
                                300        ; retry
                                604800     ; expire
                                86400      ; minimum
                                )

$TTL 86400      ; 1 day
                                ; Le serveur DNS de la zone
                                NS      ns.free-4ever.net.
                                ; Les trois serveurs de mail de la zone
                                ; avec leur poids associé
                                ; le poids le plus faible est le préféré
                                MX      10 smtp.free-4ever.net.
                                MX      20 smtp2.free-4ever.net.

; Les entrées DNS pour la zone
$ORIGIN free-4ever.net.
; orthosie qui est une entrée de type "A" 
; qui fait donc correspondre un nom à une adresse IP
orthosie                A       192.168.1.250
; ns et www qui sont des entrées de type "CNAME", des alias donc
; cela fait donc correspondre ns et www à orthosie
ns                      CNAME   orthosie
www                     CNAME   orthosie

Il y a d’autres entrées mais les plus courantes sont là.

 

Le fichier de zone: 1.168.192.in-addr.arpa

Le fichier est de la forme suivante:

; Les paramètres de configuration de la zone:
; free-4ever.net: le nom de la zone
; ns.free-4ever.net: le serveur maître de la zone
; administrateur.free-4ever.net: l'adresse email de l'administrateur de la zone... avec un "." à la place du "@"
; 2006113001: le serial qu'il faudra incrementer à chaque modification
; Ensuite, ces sont les paramètres de temps de vie, expiration, etc de la zone
$ORIGIN .
$TTL 3600       ; 1 hour
1.168.192.in-addr.arpa          IN SOA  ns.free-4ever.net. administrateur.free-4ever.net. (
                                2006113001 ; serial
                                7200       ; refresh
                                300        ; retry
                                604800     ; expire
                                86400      ; minimum
                                )

$TTL 86400      ; 1 day
                                ; Les deux serveurs DNS de la zone
                                NS      ns.free-4ever.net.
                                ; Les trois serveurs de mail de la zone
                                ; avec leur poids associé
                                ; le poids le plus faible est le préféré
                                MX      10 smtp.free-4ever.net.
                                MX      20 smtp2.free-4ever.net.

; Les entrées DNS pour la zone
$ORIGIN 1.168.192.in-addr.arpa.
; 250 qui a une entrée de type "PTR"
; qui fait donc correspondre un nom à une adresse IP
250                     PTR     orthosie.free-4ever.net.

Vous noterez que dans ce fichier, tous les adresses IP sont données à l’envers !

Pour chaque enregistrement “PTR”, le nom qui lui est associé doit se terminer par un “.”, cela est très très important pour marquer la fin du nom… il n’y a rien à concaténer derrière.

 

Application des modifications

Il ne reste plus qu’a redémarrer notre daemon pour prendre en compte les modifications:

/etc/rc.d/named restart

 

Mot de la fin

Voila notre serveur DNS maître qui est fonctionnel.

Nous pourrons maintenant configurer un esclave pour avoir 2 serveurs DNS qui servent la même zone. Pour cela, vous pouvez suivre le document suivant: Configuration Bind9 en slave

Un serveur DNS peut à la fois être maître sur certaines zones et esclave sur d’autres.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code