Linux – Mise en oeuvre du service BIND9 (DNS) sous REDHAT

Le service DNS (Domain Name Service) est un système permettant de réaliser une résolution de nom, celui-ci a plusieurs objectifs :

  •  Résolution des noms de machines en adresses IP (objectif primaire).
  •  Réaliser une résolution inverse (aussi appelé reverse DNS), résoudre une adresse IP en noms de machines.
  •  Rechercher l’adresse d’un serveur de messagerie pour l’envoi d’un courrier.

Le service DNS fonctionne sur le principe d’un système distribué. L’ensemble des données n’est pas regroupé sur un serveur, mais réparti sur plusieurs serveurs. Chaque serveur n’est responsable que d’un domaine DNS. Les domaines sont organisés de manière hiérarchique et forme une seule arborescence.

Le service DNS:

La carte d’identité du protocole:

  •  UDP
  •  TCP – exceptionnellement si un paquet de 512 octets n’est pas suffisant
  •  Port 53
  •  Taille maximale des paquets UDP: 512 octets – d’où la limite de 13 root servers utilisant chacun un nom à une lettre (A à M)

Pour plus de détail sur le fonctionnement théorique du service DNS, je vous invite à vous rendre sur le site frameip.com. Ci-joint l’url directe vers l’article traitant du sujet : http://www.frameip.com/dns/.

 

Installation du service DNS

 

Installation via Yum :

  1. Yum install bind
  2. Yum install bind-chroot

 

Installation via Yum :

Quelques modifications des permissions est nécessaire :

chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/var/named/
ln -s ../../ chroot

 

Activation du service:

chkconfig –levels 235 named on

 

Démmarage du daemon :

/etc/init.d/named start

 

Configuration du serveur DNS :

 

named.conf:

Named.conf est le fichier principal dans lequel seront déclarés tous les fichiers de zone. A l’installation le fichier named.conf n’existe pas sur le disque, il faut procéder à sa création.

/var/named/chroot/etc/named.conf : fichier de configuration du serveur DNS.

Exemple, la création du fichier :

#nano /var/named/chroot/etc/named.conf

 

Structure du fichier de configuration :

 

# — Déclaration de la zone directe locale

zone « localhost » IN {

type master;

file « /var/named/data/db.localhost »;

};

# — Déclaration de la zone inverse locale

zone « 0.0.127.in-addr.arpa » IN {

type master;

file « /var/named/data/db.127.0.0.1 »;

};

# — configuration de la zone directe AGHILES

zone « aghiles.fr » IN {

type master;

file « /var/named/data/db.aghiles.fr »;

};

# — configuration de la zone inverse AGHILES

zone « 50.50.10.in-addr.arpa » IN {

type master;

file « /var/named/data/db.192.168.2.0 »;

};

zone « 60.60.10.in-addr.arpa » IN {

type master;

file « /var/named/data/db.192.168.1.0 »;

};

# Cette option est utilisée pour permettre la résolution de nom en dehors du périmètre de la zone

# aghiles.fr, notamment lorsqu’un poste doit résoudre un nom Internet.

options {

forwarders { 212.27.40.240; 212.27.40.241; };

};

 

Les fichiers de zone

Les différents fichiers de zone se situent dans le répertoire suivant :

/var/named/chroot/var/named/data/

 db.localhost (fichier de zone local directe)

$TTL 3d

@                       IN SOA  localhost. root.localhost. (

                                1       ; serial

                                3h      ; refresh

                                1h      ; retry

                                1w      ; expire

                                1h )    ; negative caching-ttl

                        IN NS           localhost.

                        IN A            127.0.0.1

 db.127.0.0.1 (fichier de zone local inverse)

$TTL 86400

@     IN     SOA    localhost.          root.localhost (

                    43     ; serial

                    2D     ; refresh after 6 hours

                    4H     ; retry after 1 hour

                    6W     ; expires after 1 week

                    1W )   ; minimum TTL of 1 day

      IN    NS    localhost.

1     IN    PTR   localhost.

db.aghiles.fr (fichier de zone aghiles.fr directe)

$TTL 86400

@     IN     SOA    dns2.aghiles.fr.     dns2.aghiles.fr. (

                    43                     ; serial

                    3H                     ; refresh after 6 hours

                    15M                  ; retry after 1 hour

                    1W                    ; expires after 1 week

                    1D )                   ; minimum TTL of 1 day

     IN     NS             dns2.aghiles.fr.

     IN     A              192.168.1.52

localhost             IN      A       127.0.0.1

swaghiles-srv1      IN      A       192.168.2.1

swaghiles-srv2      IN      A       192.168.1.1

jboss1                IN      A       192.168.2.11

jboss2                IN      A       192.168.2.12

jboss3                IN      A       192.168.1.13

jboss4                IN      A       192.168.1.14

collecteur1         IN      A       192.168.2.22

collecteur2         IN      A       192.168.1.24

viewer1              IN      A       192.168.2.21

viewer2              IN      A       192.168.1.23

bdd1                  IN      A       192.168.2.31

bdd2                  IN      A       192.168.1.32

radius1              IN      A       192.168.2.41

radius2              IN      A       192.168.1.42

bind1                 IN      A       192.168.2.51

bind2                 IN      A       192.168.1.52

dns1                  IN      A       192.168.2.51

dns2                  IN      A       192.168.1.52

ftp1                    IN      A       192.168.2.61

ftp2                    IN      A       192.168.1.62

supervision1      IN      A       192.168.2.101

supervision2      IN      A       192.168.1.102

db.192.168.2.0 (fichier de zone inverse pour ce qui concerne le subnet 192.168.2.0)

$TTL    604800

@       IN      SOA     bind1.aghiles.fr.  bind1.aghiles.fr.(

                2     ; serial

                2D     ; refresh after 6 hours

                4H     ; retry after 1 hour

                6W     ; expires after 1 week

                1W )   ; minimum TTL of 1 day

       IN        NS      bind1.aghiles.fr.

1        IN      PTR     swaghiles-srv1.aghiles.fr.

11      IN      PTR     jboss1.aghiles.fr.

12      IN      PTR     jboss2.aghiles.fr.

22      IN      PTR     collecteur1.aghiles.fr.

21      IN      PTR     viewer1.aghiles.fr.

31      IN      PTR     bdd1.aghiles.fr.

41      IN      PTR     radius1.aghiles.fr.

51      IN      PTR     bind1.aghiles.fr.

51      IN      PTR     dns1.aghiles.fr.

61      IN      PTR     ftp1.aghiles.fr.

101     IN      PTR     supervision1.aghiles.fr.

db.192.168.1.0 (fichier de zone inverse pour ce qui concerne le subnet 192.168.1.0)

$TTL    604800

@       IN     SOA     bind2.aghiles.fr.   bind2.aghiles.fr. (

2     ; serial

2D     ; refresh after 6 hours

4H     ; retry after 1 hour

6W     ; expires after 1 week

1W )   ; minimum TTL of 1 day

IN      NS      bind2.aghiles.fr.

1        IN      PTR     swaghiles-srv2.aghiles.fr.

13      IN      PTR     jboss3.aghiles.fr.

14      IN      PTR     jboss4.aghiles.fr.

24      IN      PTR     collecteur2.aghiles.fr.

23      IN      PTR     viewer2.aghiles.fr.

32      IN      PTR     bdd2.aghiles.fr.

42      IN      PTR     radius2.aghiles.fr.

52      IN      PTR     bind2.aghiles.fr.

52      IN      PTR     dns2.aghiles.fr.

62      IN      PTR     ftp2.aghiles.fr.

102    IN      PTR     Supervision2.aghiles.fr.

 

Où trouver les fichier de configuration ?

1)     Service DNS

/etc/init.d/named à Service correspondant au service DNS sur le serveur de nom.

2)     Fichier principal de configuration DNS

/etc/bind/named.conf: Contiendra la description de la correspondance nom à adresse de toutes les machines du réseau.

3)     Les fichiers de zone

/etc/bind/db.«nom_de_domaine»: Contiendra la description de la correspondance nom à adresse de toutes les machines du réseau.

/etc/bind/db.«résolv_inverse_nom_de_domaine»: Contiendra la correspondance inverse adresse à nom (pour la résolution inverse de nom in-addr.arpa).

 

Comment filtrer l’origine des requêtes ?

Afin de sécuriser le service, BIND offre la possibilité de filtrer l’origine des requêtes émises par les clients. Exemple d’implémentation du service . Cette option doit être ajouté dans le fichier named.conf.

# Création d’une access-list identifiant les différents sous réseaux :

acl « lan_permit » {

192.168.1/24;

192.168.2/24;

};

# Application de l’access-list via la fonction allow-query access-list identifiant les différents sous réseaux :

options {

allow-query { lan_permit; };

};

 

Comment rediriger les requêtes vers l’extérieur ?

Le format de l’option:

forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; … ] };

Dans notre exemple nous utilisons la fonction forwarders à destination des serveurs DNS de free. Cette option permet de réaliser les requêtes vers l’extérieur au cas ou le serveur ne serait pas en mesure de répondre à la demande de lui même (par défaut BIND fonctionne en mode récursif).

Exemple

options {

forwarders { 212.27.40.240; 212.27.40.241; };

};

 

Mettre en œuvre le service DNS sur les commutateurs 3750

Ci-dessous sont présentées les commandes permettant la mise œuvre du service DNS sur commutateurs cisco 3750. L’application de ces commandes doit être effectuée en mode de configuration globale switch(config)#

SRV1

Ip domain lookup

ip domain-name aghiles.fr

ip name-server 192.168.2.51

ip name-server 192.168.1.52

SRV2

Ip domain lookup

ip domain-name aghiles.fr

ip name-server 192.168.1.52

ip name-server 192.168.2.51

 

Mise en œuvre du service DNS sur les pare-feu ASA

Ci-dessous sont présentées les commandes permettant la mise œuvre du service DNS sur les pare-feu ASA :

dns domain-lookup inside

dns server-group DefaultDNS

name-server 192.168.2.51

name-server 192.168.1.52

domain-name aghiles.fr

 

Resolv.conf (client DNS):

Resolv.conf est le fichier permettant de configurer les paramètres client DNS pour un serveur basé sur le système d’exploitation linux.

/etc/resolv.conf : Permet de configurer les paramètres DNS client de la machine.

Ci-dessous la structure du fichier de paramétrage DNS :

 

nameserver      192.168.1.52   ## DNS MASTER

nameserver      192.168.2.51   ## DNS SLAVE

search aghiles.fr                                 # nom du domaine

 

Dépannage du service DNS :

 

nslookup :

Cette commande permet de tester la validité des différents enregistrements mis en œuvre sur le serveur :

       set type=mx permet de recueillir les informations concernant le ou les serveurs de messagerie d’un domaine.

       set type=ns permet de recueillir les informations concernant le serveur de noms associé au domaine.

       set type=a permet de recueillir les informations concernant un hôte du réseau. Il s’agit du mode d’interrogation par défaut.

       set type=soa permet d’afficher les informations du champ SOA (Start Of Authority).

       set type=cname permet d’afficher les informations concernant les alias.

       set type=hinfo permet, lorsque ces données sont renseignées, d’afficher les informations concernant le matériel et le système d’exploitation de l’hôte.

 

[root@dns1 ~]# nslookup aghiles.fr

Server:         192.168.2.51

Address:        192.168.2.51#53

 

Name:   aghiles.fr

Address: 192.168.2.51

 

La commande PING:

Cette commande permet de vérifier qu’une résolution est bien effective lors de la requête :

[root@dns1 ~]# ping aghiles.fr

PING aghiles.fr (192.168.2.51) 56(84) bytes of data.

64 bytes from dns1 (192.168.2.51): icmp_seq=1 ttl=64 time=0.019 ms

64 bytes from dns1 (192.168.2.51): icmp_seq=2 ttl=64 time=0.007 ms

 

— aghiles.fr ping statistics —

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 0.007/0.013/0.019/0.006 ms

 

DIG

Cette commande permet de vérifier la configuration DNS du serveur, son rôle est similaire à la commande NSLOOKUP :

[root@radius1 raddb]# dig aghiles.fr

 

; <<>> DiG 9.3.4-P1 <<>> aghiles.fr

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61993

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 

;; QUESTION SECTION:

;aghiles.fr.                      IN      A

 

;; ANSWER SECTION:

aghiles.fr.               86400   IN      A       192.168.2.51

 

;; AUTHORITY SECTION:

aghiles.fr.               86400   IN      NS      dns1.aghiles.fr.

 

;; ADDITIONAL SECTION:

dns1.aghiles.fr.          86400   IN      A       192.168.2.51

 

;; Query time: 0 msec

;; SERVER: 192.168.2.51#53(192.168.2.51)

;; WHEN: Tue Dec 30 16:17:50 2008

;; MSG SIZE  rcvd: 77

Laisser une réponse

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