Différences entre versions de « DNS »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 175 : Ligne 175 :
 
Le contenu du fichier ''tala-informatique.fr'' est le suivant:
 
Le contenu du fichier ''tala-informatique.fr'' est le suivant:
 
<pre>
 
<pre>
; Permet d'ajouter automatiquement tala-informatique.fr après chaque noms d'hôte
 
$ORIGIN tala-informatique.fr
 
 
; Précise au client que la durée de validité des informations de noms
 
; Précise au client que la durée de validité des informations de noms
 
$TTL 86400
 
$TTL 86400
 
; Début de la déclaration State Of Autority (SOA)
 
; Début de la déclaration State Of Autority (SOA)
tala-informatique.fr.     IN     SOA   dns     root (
+
tala-informatique.fr. IN SOA dns.tala-informatique.fr. root.tala-informatique.fr. (
                     0 ; serial
+
                     0 ; serial
                     21600     ; refresh after 6 hours
+
                     21600 ; refresh after 6 hours
                     3600       ; retry after 1 hour
+
                     3600 ; retry after 1 hour
                     604800     ; expires after 1 week
+
                     604800 ; expires after 1 week
                     86400 )   ; minimum TTL of 1 day
+
                     86400 ) ; minimum TTL of 1 day
  
      ; pour les serveurs de nom
+
; pour les serveurs de nom
      IN     NS     dns
+
IN NS dns.tala-informatique.fr.
      ; Pour les serveurs de mails on indique un poid
+
; Pour les serveurs de mails on indique un poid
      IN     MX     10     mail
+
IN MX 10 mail.tala-informatique.fr.
      IN     MX     20     mail2
+
IN MX 20 mail2.tala-informatique.fr.
 
; Enregistrement direct
 
; Enregistrement direct
dns   IN     A       192.168.200.253
+
dns.tala-informatique.fr. IN A 192.168.200.253
 
; Enregistrement direct
 
; Enregistrement direct
mail IN     A       192.168.200.252
+
mail.tala-informatique.fr. IN A 192.168.200.252
 
; Enregistrement direct
 
; Enregistrement direct
mail2 IN     A       192.168.200.251
+
mail2.tala-informatique.fr. IN A 192.168.200.251
 
; Alias mx <=> mail <=> 192.168.200.252
 
; Alias mx <=> mail <=> 192.168.200.252
mx   IN     CNAME   mail
+
mx.tala-informatique.fr. IN CNAME mail.tala-informatique.fr.
 
; Alias mx2 <=> mail2 <=> 192.168.200.251
 
; Alias mx2 <=> mail2 <=> 192.168.200.251
mx2   IN     CNAME   mail2
+
mx2.tala-informatique.fr. IN CNAME mail2.tala-informatique.fr.
 
</pre>
 
</pre>
  
Ligne 209 : Ligne 207 :
 
<pre>
 
<pre>
 
zone "tala-informatique.fr" IN {
 
zone "tala-informatique.fr" IN {
  ; Le serveur est maître pour cette zone
+
; Le serveur est maître pour cette zone
  type master;
+
type master;
  ; On indique le fichier de zone
+
; On indique le fichier de zone
  file "tala-informatique.fr";
+
file "tala-informatique.fr";
  ; On précise si on autorise les mises à jours (ici non, parce que le serveur est maître)
+
; On précise si on autorise les mises à jours (ici non, parce que le serveur est maître)
  allow-update { none; };
+
allow-update { none; };
 
};
 
};
 
</pre>
 
</pre>

Version du 22 décembre 2013 à 20:21

Serveur
Protocole udp
Port 53
Configuration Iptables iptables -I INPUT 2 -p udp --dport 53 -j ACCEPT

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 !

Ajout d'une zone

Le fichier de zone

Les fichiers de zones se trouvent dans le répertoire /var/named et respecte la syntaxe suivante, pour un réseau tala.informatique.fr ayant comme plan d'adressage 192.168.200.0/24:

  • le fichier de recherche directe: tala-informatique.fr / tala-informatique.fr.db
  • le fichier de recherche inverse: 200.168.192.in-addr.arpa

Le contenu du fichier tala-informatique.fr est le suivant:

; Précise au client que la durée de validité des informations de noms
$TTL 86400
; Début de la déclaration State Of Autority (SOA)
tala-informatique.fr.	IN	SOA	dns.tala-informatique.fr.	root.tala-informatique.fr. (
                    0 			; serial
                    21600		; refresh after 6 hours
                    3600		; retry after 1 hour
                    604800		; expires after 1 week
                    86400 )		; minimum TTL of 1 day

							; pour les serveurs de nom
							IN	NS		dns.tala-informatique.fr.
							; Pour les serveurs de mails on indique un poid
							IN	MX	10	mail.tala-informatique.fr.
							IN	MX	20	mail2.tala-informatique.fr.
; Enregistrement direct
dns.tala-informatique.fr.	IN	A		192.168.200.253
; Enregistrement direct
mail.tala-informatique.fr.	IN	A		192.168.200.252
; Enregistrement direct
mail2.tala-informatique.fr.	IN	A		192.168.200.251
; Alias mx <=> mail <=> 192.168.200.252
mx.tala-informatique.fr.	IN	CNAME	mail.tala-informatique.fr.
; Alias mx2 <=> mail2 <=> 192.168.200.251
mx2.tala-informatique.fr.	IN	CNAME	mail2.tala-informatique.fr.

Déclaration dans la configuration de named

Maintenant que le fichier de recherche directe est créé, il faut indiquer à named de quoi il retourne. A la fin du fichier /etc/named.conf ajoutons les lignes suivantes:

zone "tala-informatique.fr" IN {
	; Le serveur est maître pour cette zone
	type master;
	; On indique le fichier de zone
	file "tala-informatique.fr";
	; On précise si on autorise les mises à jours (ici non, parce que le serveur est maître)
	allow-update { none; };
};