LPIC‐202
Lab 1
Lab 1 : Configurer BIND en tant que serveur DNS de
réseau privé sur CentOS 7
Dans ce didacticiel, nous verrons comment configurer un serveur DNS interne, à l'aide du
logiciel de serveur de noms BIND (BIND9) sur CentOS 7, que vos hôtes clients pourront utiliser
pour résoudre les noms d'hôtes privés et les adresses IP privées.
Notre objectif
À la fin de ce didacticiel, nous aurons un serveur DNS principal, ns1, et éventuellement un
serveur DNS secondaire, ns2, qui servira de sauvegarde.
Voici un tableau avec des exemples de noms et d’adresses IP :
Rôle
Hôte
Serveur DNS primaire
ns1
Serveur DNS secondaire
ns2
Commençons par installer notre serveur DNS principal, ns1.
FQDN privé
ns1.example.com
ns2.example.com
Installer BIND sur les serveurs DNS
1. Sur les deux serveurs DNS, ns1 et ns2, installez BIND avec yum:
Adresse IP privée
172.20.10.11
172.20.10.12
sudo yum install bind bind-utils
2. Configurer le serveur DNS principal
Sur ns1, ouvrez le fichier named.conf pour l’éditer :
sudo vi /etc/named.conf
Au‐dessus du bloc options existant, créez un nouveau bloc ACL appelé "trusted". Ici nous
définirons la liste des clients à partir desquels nous autoriserons les requêtes DNS récursives.
Nous allons ajouter ns1, ns2, host1 et host2 à notre liste de clients de confiance :
/etc/named.conf - 1 sur 4
acl "trusted" {
172.20.10/24;
172.20.10.11; # ns1 - can be set to localhost
172.20.10.12; # ns2
172.20.10.101; # host1
172.20.10.102; # host2
};
Maintenant, nous allons éditer le bloc options. Ajoutez l'adresse IP privée de ns1 à la directive
listen‐on port 53 et commentez la ligne listen‐on‐v6 :
Elies Jebri
Page 1 sur 8
LPIC‐202
Lab 1
/etc/named.conf - 2 sur 4
options {
listen-on port 53 { 127.0.0.1; 172.20.10.11; };
listen-on-v6 port 53 { ::1; };
...
Sous ces entrées, remplacez la directive allow‐transfer "none" par l'adresse IP privée de ns2.
Changez également la directive allow‐query "localhost" en "trusted" :
Advertisement
/etc/named.conf - 3 sur 4
...
options {
...
forwarders { 172.20.10.2; };
allow-transfer { 172.20.10.12; }; # disable zone transfers by default
...
allow-query { localhost; trusted; }; # allows queries from "trusted" clients
...
A la fin du fichier, ajoutez la ligne suivante :
/etc/named.conf - 4 sur 4
include "/etc/named/named.conf.local";
Enregistrez et quittez named.conf. La configuration ci‐dessus spécifie que seuls vos propres
serveurs (les "dignes de confiance") pourront interroger votre serveur DNS.
Ensuite, nous allons configurer le fichier local, pour spécifier nos zones DNS.
3. Configurer le fichier local
Sur ns1, ouvrez le fichier named.conf.local pour l’éditer:
sudo vi /etc/named/named.conf.local
Le fichier doit être vide. Ici, nous allons spécifier nos zones, directe et inverse.
Ajoutez la zone directe avec les lignes suivantes :
/etc/named/named.conf.local - 1 sur 2
zone "example.com" {
type master;
file "/var/named/zones/db.example.com"; # zone file path
};
Elies Jebri
Page 2 sur 8
LPIC‐202
Lab 1
Ajoutez la zone inverse avec les lignes suivantes :
/etc/named/named.conf.local - 2 sur 2
zone "10.20.172.in-addr.arpa" {
type master;
file "/var/named/zones/db.172.20.10"; # 172.20.10.0/24 subnet
};
Lorsque vous avez terminé d'ajouter toutes les zones, enregistrez et quittez le fichier
named.conf.local.
Maintenant que nos zones sont spécifiées dans BIND, nous devons créer les fichiers de zone
directe et inverse correspondants.
4. Créer un fichier de zone directe
Créons le répertoire où nos fichiers de zone résideront. Selon notre configuration
named.conf.local , cet emplacement devrait être /etc/named/zones :
sudo mkdir /var/named/zones
sudo chgrp named /var/named/zones
Maintenant, éditons notre fichier de zone directe :
sudo vi /var/named/zones/db.example.com
Tout d'abord, vous voudrez ajouter l'enregistrement SOA. Chaque fois que vous éditez un
fichier de zone, vous devez incrémenter la valeur série avant de redémarrer le processus
named. Nous l'incrémenterons à "3".
/var/named/zones/db.example.com - 1 sur 3
$TTL 1D
@ IN SOA ns1.example.com. admin.example.com. (
3 ; Serial
604800 ; Refresh
Advertisement
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
Après cela, ajoutez vos enregistrements de serveur de noms avec les lignes suivantes.
/var/named/zones/db.example.com - 2 sur 3
; name servers - NS records
IN NS ns1.example.com.
IN NS ns2.example.com.
Elies Jebri
Page 3 sur 8
LPIC‐202
Lab 1
Ajoutez ensuite les enregistrements A pour vos hôtes appartenant à cette zone. Cela inclut
tout serveur dont le nom doit être terminé par ".example.com". En utilisant nos exemples de
noms et d’adresses IP privées, nous allons ajouter les enregistrements A pour ns1, ns2, host1
et host2 comme suit :
/var/named/zones/db.example.com - 3 sur 3
; name servers - A records
ns1.example.com. IN A 172.20.10.11
ns2.example.com. IN A 172.20.10.12
; 172.20.10.0/24 - A records
host1.example.com. IN A 172.20.10.101
host2.example.com. IN A 172.20.10.102
Enregistrez et quittez le fichier db.example.com.
Notre dernier exemple de fichier de zone directe ressemble à ceci :
/var/named/zones/db.example.com – complet
$TTL 1D
@ IN SOA ns1.example.com. admin.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; name servers - NS records
IN NS ns1.example.com.
IN NS ns2.example.com.
; name servers - A records
ns1.example.com. IN A 172.20.10.11
ns2.example.com. IN A 172.20.10.12
; 172.20.10.0/24 - A records
host1.example.com. IN A 172.20.10.101
host2.example.com. IN A 172.20.10.102
Passons maintenant au (x) fichier (s) de zone inverse.
Elies Jebri
Page 4 sur 8
LPIC‐202
Lab 1
5. Créer un fichier de zone inverse
Sur ns1, pour chaque zone inverse spécifiée dans le fichier named.conf.local, créez un fichier
de zone inverse.
Editez le fichier de zone inverse qui correspond à la ou aux zones inverses définies dans
named.conf.local :
sudo vi /var/named/zones/db.172.20.10
Chaque fois que vous éditez un fichier de zone, vous devez incrémenter la valeur du numéro
Advertisement
de série avant de redémarrer le processus named. Nous l'incrémenterons à "3".
/var/named/zones/db.172.20.10 - 1 sur 3
@ IN SOA ns1.example.com. admin.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
Après cela, ajoutez vos enregistrements de serveur de noms avec les lignes suivantes. Notez
que la deuxième colonne spécifie qu'il s'agit d'enregistrements "NS":
/var/named/zones/db.172.20.10 - 2 sur 3
; name servers - NS records
IN NS ns1.example.com.
IN NS ns2.example.com.
Ajoutez ensuite des enregistrements PTR pour tous vos serveurs dont les adresses IP se
trouvent sur le sous‐réseau du fichier de zone que vous modifiez.
/var/named/zones/db.172.20.10 - 3 sur 3
; PTR Records
11 IN PTR ns1.example.com. ; 172.20.10.11
12 IN PTR ns2.example.com. ; 172.20.10.12
101 IN PTR host1.example.com. ; 172.20.10.101
102 IN PTR host2.example.com. ; 172.20.10.102
Enregistrez et quittez le fichier de zone inversée (répétez cette section si vous devez ajouter
d'autres fichiers de zone inversée).
Elies Jebri
Page 5 sur 8
LPIC‐202
Lab 1
Notre dernier exemple de fichier de zone inversée ressemble à ce qui suit:
/var/named/zones/db.172.20.10 - complet
$TTL 604800
@ IN SOA example.com. admin.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; name servers
IN NS ns1.example.com.
IN NS ns2.example.com.
; PTR Records
11.10 IN PTR ns1.example.com. ; 172.20.10.11
12.20 IN PTR ns2.example.com. ; 172.20.10.12
101.100 IN PTR host1.example.com. ; 172.20.10.101
102.200 IN PTR host2.example.com. ; 172.20.10.102
6. Vérifier la syntaxe de configuration de BIND
Exécutez la commande suivante pour vérifier la syntaxe des fichiers named.conf* :
sudo named-checkconf
Si vos fichiers de configuration named ne comportent aucune erreur de syntaxe, vous revenez
à l'invite de votre shell et ne voyez aucun message d'erreur.
Pour vérifier la configuration de zone directe « example.com » :
sudo named-checkzone example.com /var/named/zones/db.example.com
Et pour vérifier la configuration de la zone inverse « 128,10 .in‐addr.arpa » :
sudo named-checkzone 10.20.172.in-addr.arpa /var/named/zones/db.172.20.10
Advertisement
Lorsque tous vos fichiers de configuration et la zone n’ont aucune erreur, vous devriez être
prêt à redémarrer le service BIND.
Elies Jebri
Page 6 sur 8
LPIC‐202
7. lancer BIND
sudo systemctl start named
sudo systemctl enable named
Lab 1
Votre serveur DNS primaire est maintenant configuré et prêt à répondre aux requêtes DNS.
8. Configurer les clients DNS
Ce processus varie selon le système d'exploitation, mais pour la plupart des distributions
Linux, il implique l'ajout de vos serveurs de noms au fichier /etc/resolv.conf.
Sur CentOS, RedHat et Fedora, modifiez simplement le fichier resolv.conf:
sudo vi /etc/resolv.conf
Ajoutez ensuite les lignes suivantes au TOP du fichier (remplacez votre domaine privé et les
adresses IP privées ns1 et ns2):
/etc/resolv.conf
search example.com # your private domain
nameserver 172.20.10.11 # ns1 private IP address
nameserver 172.20.10.12 # ns2 private IP address
Maintenant, enregistrez et quittez. Votre client est maintenant configuré pour utiliser vos
serveurs DNS.
Test des clients
Utilisez nslookup—inclus dans le package “bind‐utils” ‐ pour vérifier si vos clients peuvent
interroger vos serveurs de noms. Vous devriez pouvoir le faire sur tous les clients que vous
avez configurés et qui se trouvent dans la liste de contrôle d'accès "de confiance".
9. Recherche directe
Par exemple, nous pouvons effectuer une recherche directe pour récupérer l'adresse IP de
host1.example.com en exécutant la commande suivante:
nslookup host1
Output:
Server: 172.20.10.11
Address: 172.20.10.11#53
Name: host1.example.com
Address: 172.20.10.101
Elies Jebri
Page 7 sur 8
LPIC‐202
10. Recherche inverse
Lab 1
Pour tester la recherche inverse, interroger le serveur DNS avec l’adresse IP privée de host1:
nslookup 172.20.10.101
Output:
Server: 172.20.10.11
Address: 172.20.10.11#53
101.10.20.172.in-addr.arpa name = host1.example.com.
Si tous les noms et adresses IP ont la valeur correcte, cela signifie que vos fichiers de zone sont
configurés correctement. Si vous recevez des valeurs inattendues, veillez à examiner les
fichiers de zone sur votre serveur DNS principal (par exemple, db.example.com et
db.172.20.10).
Elies Jebri
Page 8 sur 8