Différences entre versions de « DNS »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 26 : Ligne 26 :
 
<pre>
 
<pre>
 
options {
 
options {
 +
        # Adresse d'écoute pour IPv4
 
         listen-on port 53 { 127.0.0.1; };
 
         listen-on port 53 { 127.0.0.1; };
 +
        # Adresse d'écoute pour IPv6
 
         listen-on-v6 port 53 { ::1; };
 
         listen-on-v6 port 53 { ::1; };
 +
        # Emplacement des fichiers de zones
 
         directory      "/var/named";
 
         directory      "/var/named";
 +
        #
 
         dump-file      "/var/named/data/cache_dump.db";
 
         dump-file      "/var/named/data/cache_dump.db";
 +
        #
 
         statistics-file "/var/named/data/named_stats.txt";
 
         statistics-file "/var/named/data/named_stats.txt";
 
         memstatistics-file "/var/named/data/named_mem_stats.txt";
 
         memstatistics-file "/var/named/data/named_mem_stats.txt";
 +
        # Réseaux auxquels BIND répondra
 
         allow-query    { localhost; };
 
         allow-query    { localhost; };
 +
        # Autorise les recherches récursives
 
         recursion yes;
 
         recursion yes;
  
Ligne 60 : Ligne 67 :
 
include "/etc/named.root.key";
 
include "/etc/named.root.key";
 
</pre>
 
</pre>
 +
 
== Déclarations ==
 
== Déclarations ==
 
Les déclarations suivantes peuvent être utilisées:
 
Les déclarations suivantes peuvent être utilisées:

Version du 22 décembre 2013 à 19:46

Préparation

Dans un premier temps, il faudra avoir une connexion à Internet et utiliser un "autre" serveur DNS.

Pour ceux qui aurait manqué des étapes voici les étapes à suivre:

Une fois ces étapes effectuées, entrons dans le vif du sujet !

Installation

Tout d'abord il faut installer les paquetages suivants:

# yum -y install bind bind-utils
  • bind → c'est le serveur DNS (Berkeley Internet Name Daemon)
  • bind-utils → des utilitaires pour s'assurer que le serveur est correctement configuré (nslookup, dig, ...)

Configuration du serveur

Point de départ

L'essentiel de la configuration se déroule dans le fichier /etc/named.conf Ci-dessous un exemple de fichier de base:

options {
        # Adresse d'écoute pour IPv4
        listen-on port 53 { 127.0.0.1; };
        # Adresse d'écoute pour IPv6
        listen-on-v6 port 53 { ::1; };
        # Emplacement des fichiers de zones
        directory       "/var/named";
        # 
        dump-file       "/var/named/data/cache_dump.db";
        # 
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        # Réseaux auxquels BIND répondra
        allow-query     { localhost; };
        # Autorise les recherches récursives
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Déclarations

Les déclarations suivantes peuvent être utilisées:

  • acl → configure une liste de contrôle d'accès
  • any → correspond à toutes les adresses IP
  • localhost → correspond aux IP du système local
  • localnets → correspond aux adresses IP utilisées par le système aux travers d'interfaces
  • none → correspond à aucune adresse IP

Exemples

acl

La déclaration acl permet de rassembler plusieurs réseaux ensemble:

acl authorized {
   192.168.0.0/24;
   10.0.1.0/24;
   192.168.50.0/24;
};

acl unauthorized {
   192.168.60.0/24;
}

On pourra ensuite remplacer avantageusement la ligne suivante:

allow-query     { localhost; };

Par:

allow-query     { authorized; };

Cela sera plus propre de rassembler les déclarations en début de fichier et de ne plus avoir à parcourir l'intégralité du fichier pour apporter une modification !

none

On pourra remplacer la ligne suivante:

listen-on-v6 port 53 { ::1; };

Par:

listen-on-v6 port 53 { none; };

localnets

On pourra remplacer la ligne suivante:

listen-on port 53 { 127.0.0.1; };

Par:

listen-on port 53 { localnets; };

Démarrage

Au premier démarrage, le démon named génére les clés RNDC:

# service named start
Generating /etc/rndc.key:                                [  OK  ]
Démarrage de named :                                     [  OK  ]

Vérification de l'écoute

On peut utiliser la commande netstat pour s'assurer que named écoute sur les interfaces désirées

# netstat -aunp | grep named
udp        0      0 127.0.0.1:53                0.0.0.0:*                               10787/named
udp        0      0 ::1:53                      :::*                                    10787/named

Test de résolution

Utilisons nslookup pour s'assurer que notre serveur fonctionne en lui demandant l'adresse de google.fr

# nslookup google.fr 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   google.fr
Address: 173.194.41.23
Name:   google.fr
Address: 173.194.41.24
Name:   google.fr
Address: 173.194.41.31

Il ne nous reste plus qu'à déclarer une zone !

Fichier de zone