Configuring BIND as a Private Network DNS Server on CentOS 7

Networking & DNS Configuration · notes

Browse all réseaux documents

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