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

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s