RSS

Installation d’un serveur DNS Bind9 sur Debian

15 Déc

Le service DNS (Domain Name Service) est un service TCP/IP permettant de faire correspondre un nom de domaine qualifié (FQDN : Fully Qualified Domain Name) et une adresse IP ainsi il n’est pas nécessaire de se souvenir des adresses IP. Bind, Berkeley internet Name Daemon est le serveur de noms le plus utilisé sur internet. L’article suivant présente Bind configuré en tant que serveur maitre.

 

L’installation de bind se fera sur une Debian Lenny, le domaine configuré sera befa.local sur un réseau de classe C. Le serveur DNS principal sera en 192.168.0.1 et le secondaire en 192.168.0.2.

Le fichier Host

 

Lorsque qu’une demande de résolution de nom est demandée, le premier fichier à être vérifié est le /etc/hosts.conf. C’est le fichier qui contient des informations sur la configuration de résolution des noms ; les mots-clés reconnus sont order, trim, multi, nospoof et reorder. Par défaut, le fichier possède l’option :

multi on

Avec « multi on » la bibliothèqe resolv+ renverra toutes les adresses valides pour un hôte apparaissant dans le fichier /etc/hosts plutôt que de ne renvoyer que la première. Il est aussi possible d’utiliser l’option order et obliger le système à vérifier la base des noms d’hôtes en premier.

order hosts,bind

Les fichiers :

Fichier de configuration de la résolution des noms

/etc/host.conf

Base de données des noms d’hôtes

/etc/hosts

Fichier de configuration de la résolution de noms

/etc/resolv.conf

 

Installation et configuration

 

L’installation est simple, elle se fait par le paquet suivant :

aptitude install bind9

 

Zone principale

Déclaration zone principale

Nous allons déclarer dans le fichier suivant notre zone principale. Pour chaque domaine ou sous domaine il faut indiquer dans quel fichier sont placé les informations de la zone.

nano /etc/bind/named.conf
  1. zone "befa.local" {
  2.        type master;
  3.        file "/etc/bind/db.befa.local";
  4.        allow-transfer { 192.168.0.2 };
  5. };

type : Peut-être master ou slave. En master, le serveur contient la totalité des enregistrements de la zone dans ses fichiers. En slave, le serveur ne contient par défaut aucun enregistrement. Il se synchronise avec un serveur maitre d’où il récupère toutes les informations de la zone.
file : nom du fichier contenant les informations de la zone.
allow-transfer : machine autorisée à copier la base de données dans le cas d’une relation maitre et esclave.

 

Création de la zone principale

nano  /etc/bind/db.befa.local
  1. $TTL    604800
  2. @       IN      SOA     dns1.befa.local. root.befa.local. (
  3.                      2011020432         ; Serial
  4.                          604800         ; Refresh
  5.                           86400         ; Retry
  6.                         2419200         ; Expire
  7.                          604800 )       ; Negative Cache TTL
  8. 
    
  9. @       IN      NS      dns1.befa.local.
  10. 
    
  11. dns1    IN      A       192.168.0.01
  12. dns2    IN      A       192.168.0.02
  13. ldap    IN      A       192.168.0.61

 

Zone inverse

Déclaration zone inverse

Pour chaque réseau ou sous réseau, on définit une zone de résolution inverse dont le fichier contient une association IP vers un nom de machine. On indique la zone du domaine inverse dans le même fichier que la zone principale.

nano /etc/bind/named.conf
  1. zone "0.168.192.in-addr.arpa" {
  2.        type master;
  3.        file "/etc/bind/db.befa.local.inv";
  4.        allow-transfer { 192.168.0.2 };
  5. };

L’adresse IP doit être indiquée à l’envers et il faut ajouter .in-addr.arpa.
Création de la zone inverse

nano  /etc/bind/db.befa.local.inv
  1. $TTL    604800
  2. @       IN      SOA     dns1.befa.local. root.befa.local. (
  3.                      2011020432         ; Serial
  4.                          604800         ; Refresh
  5.                           86400         ; Retry
  6.                         2419200         ; Expire
  7.                          604800 )       ; Negative Cache TTL
  8. 
    
  9. @       IN      NS      dns1.befa.local.
  10. 
    
  11. 01      IN      PTR     dns1.befa.local.
  12. 02      IN      PTR     dns2.befa.local.
  13. 61      IN      PTR     ldap.befa.local.

 

Options de configuration

La ligne suivante pour autoriser Bind à transférer les données vers le serveur secondaire :

nano /etc/bind/named.conf.options
  1. allow-transfer { 192.168.0.2; };

Si le serveur bind ne peut résoudre lui-même la requête, vous pouvez les renvoyer à un serveur DNS extérieur, comme les adresses IP des serveurs DNS de votre FAI.

  1. forwarders {
  2.                212.27.40.240;
  3.                212.27.40.241;
  4. };

 

Vocabulaire DNS

 

Définitions des fichiers de zone

TTL : Time To Live. Durée de vie des enregistrements de la zone.
@ : Si la zone s’appelle befa.local, @ vaut befa.local. C’est un alias pour le nom de la zone déclaré dans /etc/name.conf.
RR : Resource Record. Nom d’un enregistrement DNS.
SOA : Star Of Authority. Permet de décrire une zone.
IN : the internet. Définit une classe d’enregistrement qui correspond aux données internet (IP). C’est celle par défaut si elle n’est pas précisée pour les enregistrements.
CNAME : Canonical Name .Enregistrement de nom canonique qui dit au serveur de noms qu’un nom donné est aussi connu qu’un autre (alias).
A : Address. Enregistrement d’adresse qui spécifie une adresse IP à assigner à un nom.
NS : Name Server. Enregistrement de serveur de noms (NameServer) qui annonce les serveurs de noms faisant autorité pour une zone particulière.
MX : Mail eXchanger. Enregistrement Mail eXchange, qui dit où doit se diriger le courrier envoyé à un nom d’espace particulier contrôlé par cette zone.
SOA : Start Of Authority. Permet de décrire la zone.
PTR : Pointer. Permet de pointer une IP sur un nom d’hôte.
. : Le point. Le nom de la zone est concaténée à la fin du nom, si on l’oublie pour ldap.befa.local cela donnera ldap.befa.local.befa.local.

Zone

2011020432 : Serial. Est à modifier à chaque édition du fichier. Par convention, année-mois-jour-numéro à 2 chiffres.
604800 : Refresh. Temps en secondes que le serveur esclave doit attendre avant de questionner à nouveau le serveur maître.
86400 : Retry. Temps en secondes avant d’effectuer une nouvelle demande au serveur maître en cas de non réponse.
2419200 : Expire. Temps en secondes d’expiration du serveur principal en cas de non réponse.
604800 : Negative Cache TTL. Temps en secondes de mise en cache minimum par d’autres serveurs DNS.

Notion de temps

1M : une minute, soit 60 secondes.
1H : une heure, 3600 secondes.
1D : un jour, 86400 secondes.
1W : une semaine, 604800 secondes.
365D : un an, 3153600 secondes.

 

Vérification des fichiers

 

La commande suivante permet de vérifier la syntaxe des fichiers de configuration.

named-checkzone befa.local /etc/bind/db.befa.local
named-checkzone befa.local /etc/bind/db.befa.local.inv
named-checkconf /etc/bind/named.conf
named-checkconf /etc/bind/named.conf.option

La commande « host », permet de tester la résolution du nom et la résolution inverse.

  1. host NomDuServeur
  2. host AdresseIPduServeur

Nslookup (Name System Look Up) est un outil permettant d’interroger un serveur de noms afin d’obtenir les informations concernant un domaine ou un hôte et permet ainsi de diagnostiquer les éventuels problèmes de configuration du DNS.

  1. nslookup NomDuServeur
  2. nslookup AdresseIPduServeur
Publicités
 
Poster un commentaire

Publié par le décembre 15, 2012 dans Admin Linux

 

Étiquettes :

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

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

Photo Google+

Vous commentez à l'aide de votre compte Google+. 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 )

Connexion à %s

 
%d blogueurs aiment cette page :