dns sous linux

22
 WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : [email protected] TEL : 00212669324964 Chapitre 01 - DNS et Bind Mis en place d'un service DNS avec Bind 1. Rappel sur le protocol DNS 1.1 Le système de nom de domaine Le système de nom de domaine (DNS) est utilisé pour faire correspondre des noms de domaine et des adresses IP afin de pouvoir localiser des hôtes sur des réseaux distants par le biais de nom ; plus facilement mémorisables qu'une adresse IP. Ce processus s'articule autour d'une relation client / serveur ou le client, nommé « resolver » effectue une requête auprès d'un serveur de nom. Lorsque l'utilisateur entre une adresse, http://www.labo-linux.com par exemple, votre navigateur envoie une requête au Serveur de Domaine de votre fournisseur d'accès, qui essaie de déterminer l'adresse IP correspondante. Si votre fournisseur n'est pas l'autorité pour cette zone (pour ce domaine), il transmet la requête au domaine autorité, jusqu'à ce qu'elle arrive au domaine indiqué (figure 1) Chaque serveur de domaine dispose de toutes les informations relatives à la zone qu'il contrôle ainsi que des informations de base sur les autres zones.

Upload: amal-sali

Post on 05-Apr-2018

259 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 1/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

Chapitre 01 - DNS et Bind

Mis en place d'un service DNS avec Bind 

1. Rappel sur le protocol DNS 

1.1 Le système de nom de domaine 

Le système de nom de domaine (DNS) est utilisé pour faire correspondre des noms de domaine et desadresses IP afin de pouvoir localiser des hôtes sur des réseaux distants par le biais de nom ; plus

facilement mémorisables qu'une adresse IP.Ce processus s'articule autour d'une relation client / serveur ou le client, nommé « resolver » effectue unerequête auprès d'un serveur de nom.

Lorsque l'utilisateur entre une adresse, http://www.labo-linux.com par exemple, votre navigateur envoieune requête au Serveur de Domaine de votre fournisseur d'accès, qui essaie de déterminer l'adresse IPcorrespondante.

Si votre fournisseur n'est pas l'autorité pour cette zone (pour ce domaine), il transmet la requête audomaine autorité, jusqu'à ce qu'elle arrive au domaine indiqué (figure 1)

Chaque serveur de domaine dispose de toutes les informations relatives à la zone qu'il contrôle ainsi quedes informations de base sur les autres zones.

Page 2: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 2/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

Quand une requête est envoyée en dehors de la zone d'autorité, le serveur sait au minimum où chercher.Cela signifie que la requête peut avoir à transiter par plusieurs serveurs de domaine avant d'atteindre ladestination finale.

1.2 Notion de nom de domaine pleinement qualifié 

Le FQDN, ou Fully Qualified Domain Name d'un hôte est son nom d'hôte accompagné du nom de sondomaine d'appartenance.

Exemple : www.labo-linux.com est le nom complet de l'hôte www appartenant au domaine labo-linux.com.  

1.3 Les différents types de serveurs de noms 

Lorsqu'un hôte client demande des informations au serveur de noms, il se connecte généralement sur leport 53. Le serveur de noms tente alors de résoudre le FQDN d'après les informations qu'il contient surl'hôte demandé ou des données mise en cache suite à une requête antérieure.

Si le serveur de noms ne possède pas encore la réponse dans sa bibliothèque de solutions, il se tourne versd'autres serveurs de noms, appelés serveurs de noms root  (ou serveurs de noms racines), afin dedéterminer les serveurs de noms faisant autorité pour le FQDN en question. Grâce à ces informations, ileffectuera ensuite une requête auprès des serveurs de noms faisant autorité pour déterminer l'adresse IPde l'hôte en question.

 À l'exception du nom de domaine, chaque section s'appelle une zone  et définit un espace de nom  particulier. Un FQDN doit contenir au moins un sous-domaine mais peut en inclure beaucoup plus, selonl'organisation de l'espace de nom choisie.

Les zones sont définies sur des serveurs de noms qui font autorité par l'intermédiaire de fichiers de zone  qui sont stockés sur des serveurs de noms primaires (aussi appelés serveurs de noms maîtres ).

Les serveurs de noms primaires secondaires  (ou serveurs de noms esclaves ) quant à eux reçoivent leursfichiers de zone des serveurs de noms primaires.

Tout serveur de noms peut être simultanément maître ou esclave pour différentes zones et peut aussi êtreconsidéré comme faisant autorité pour de multiples zones. Tout cela dépend de la configuration du serveurde noms.

On distingue 4 types de serveur de noms :

Type  Description 

MasterConserve les enregistrements originaux et fait autorité pour un espacede noms.

Slave Reçoit ses informations des serveurs maîtres

Caching-only

Ne fait pas autorité, ce type de serveur sert juste de cache afind'accélérer le temps de réponse.

Page 3: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 3/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

Forwarding Fait suivre des requêtes à une liste spécifique de serveur de noms

2. Installation et configuration de Bind 

BIND fournit un service de resolution de nom grace au service /usr/sbin/named. Il utilise comme fichier deconfiguration :

   /etc/named.conf : le fichier de configuration du service named   /var/named/ : le repertoire de travail de named ou sont stokées les fichers de zone, de cache,

etc...

2.1 Installation de Bind 9 

2.1.1 Téléchargement 

Note: Cette documentation a été réalisée en utilisant BIND 9.2.0 sous FreeBSD.

Tout d'abord, il faut télécharger les sources du programme voulu (ftp://ftp.isc.org/isc/bind9/9.2.0/bind-9.2.0.tar.gz).

Nous l'avons mis par exemple dans le répertoire "/tmp". Il reste maintenant à l'extraire, en utilisant lacommande :

tar -zxvf bind-9.2.0.tar.gz

2.1.2 Compilation et installation 

La compilation passe par trois étapes distinctes :

  La configuration des paramètres de compilation.  La compilation en elle-même.  L'installation des binaires, documentations et fichiers de configuration par défaut.

Pour la configuration des paramètres de compilation, il faut entrer dans le répertoire racine des sources deBIND (ici "/tmp/bind-9.2.0"), et exécuter la commande "./configure".

La commande "./configure" peut contenir un ou plusieurs paramètres tels que :

  "--with-openssl" : Pour le support du DNSSEC, qui est un canal OpenSSL (version 0.9.5a minimum)permettant de faire transiter le trafic de réplication de zones entre serveurs DNS primaire etsecondaire(s).

  "--enable-threads" : Ajoute le support pour le multithreading, pour pouvoir tirer partie des

systèmes multi-processeurs.  "--with-kame" : Support de IPv6, s'il n'est pas pris en charge par défaut par le système installé.

Page 4: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 4/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

Il existe beaucoup d'autres paramètres, dont nous ne parlerons pas, mais dont on peut avoir le listing et ladescription avec la commande "./configure --help".

La compilation en elle-même s'effectue en utilisant la commande :

make

Il ne reste plus qu'à installer les binaires compilés, ainsi que les documentations dans les répertoires

appropriés avec la commande :

make install

Une fois ces étapes accomplies, Bind est à présent installé et prêt à être configuré.

2.2 Configuration de Bind 

Maintenant que Bind est installé, nous allons maintenant voir les différentes étapes de configurations du

service.

2.2.1 Le fichier /etc/named.conf  

Ce fichier est composé d'une suite de définitions (ou statements) utilisant des options insérées entreaccolages qui vont nous permettre de définir les caractéristiques de notre serveur.

<déclaration> ["<déclaration-1-nom>"] [<déclaration-1-classe>] {<option-1>;...<option-N>;

};

2.2.2 Les différents types de déclaration 

Les listes de contrôle d'accès

Ce type de déclaration permet de définir des groupes d'hôtes. Le but est de définir ces groupes pourensuite dans d'autres déclarations pouvoir les désigner par le biais du nom de la liste. La syntaxe est lasuivante :

Page 5: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 5/22

Page 6: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 6/22

Page 7: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 7/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

acl "labo-linux" { 127.0.0.1; 192.168.1.0/24; };

options {directory "/etc/namedb";forwarders {

193.252.19.3; # Les DNS de notre193.252.19.4; # providers

};

allow-query {"labo-cisco";};

listen-on { 192.168.1.1; };

pid-file "named.pid";};

Les déclarations de zone

Ce type de déclaration permet de définir les caractéristiques d'une zone :

  L'emplacement de ses fichiers de configurations  Les options spécifiques à la zone

La syntaxe à utiliser est la suivante :

zone <zone-nom> <zone-classe> {<zone-options>;[<zone-options>; ...]

};

De nombreuses options peuvent être spécifiées pour ce type de déclaration :

Options  Utilisation allow- query  

Quels client sont autorisés à obtenir des informations pour cette zone

allow- transfer  

Quels serveurs esclaves sont autorisés a demander un transfert desinformations de cette zone

allow- update  

Quels hôtes sont autorisés à mettre à jour dynamiquement lesinformations de cette zone

file  Nom du fichier de configuration de la zone dans le répertoire de travailmasters  Liste des IPs faisant autorité ou demander des informations sur la zone

Page 8: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 8/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

notify  

Définit si le service envoie une notification aux serveurs esclaves lors d'unemise à jour :

   Yes : notification  No : pas de notification  Explicit : notification envers les serveur esclaves spécifiés dans une

liste also-notify à l'intérireur d'une déclaration de zone

type  

Définit le type de zone :  forward : retransmet toutes les requêtes d'informations à propos de

cette zone vers d'autres serveurs de noms  hint : un type spécial de zone utilisé pour diriger des transactions

vers les serveurs de noms racines qui résolvent des requêteslorsqu'une zone n'est pas connue autrement. Aucune configurationau-delà de la valeur par défaut n'est nécessaire avec une zone hint.

  master : désigne le serveur de noms faisant autorité pour cettezone. Une zone devrait être configurée comme de type master(maître) si les fichiers de configuration de la zone se trouvent sur lesystème.

  slave : désigne le serveur de noms comme serveur esclave pourcette zone. Cette option spécifie également l'adresse IP du serveur denoms maître pour cette zone.

zone- statistics  

Configure named pour qu'il conserve des statistiques concernant cettezone

Illustrons cela avec deux exemples, le premier dans le cas d'un serveur maître et le second pour un serveuresclave

# Cas du serveur maître :zone "." {type hint;file "named.root";

};

zone "labo-linux.com" IN{type master;file "labo-linux.com.zone";allow-update { none; };

};

Page 9: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 9/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

# Cas du serveur esclave :zone "labo-linux.com" {

type slave;file « labo-linux.com.zone » ;masters { 192.168.0.1; };

};

Nous avons ici définit notre serveur en tant que maître pour la zone labo-linux.com et avons indiqué ànamed de refuser la mise à jour à partir de n'importe quel hôte. Nous avons également indiqué que le

fichier comportant le détail de la zone serait labo-linux.com dans /var/named.

Une fois la configuration du fichier /etc/named.conf, il nous faut à présent créer et définir les fichiers dezone.

2.3 Les fichiers de zone 

Un fichier de zone est un fichier contenant des informations sur une zone particulière et stocké dans lerépertoire de travail de named

2.3.1 Configuration d'un fichier de zone 

Le nom du fichier doit correspondre au nom définit dans l'option file de la déclaration insérée dansnamed.conf.

Ce type de fichier peut contenir 2 types d'informations :

  Des directives : Ce sont des instructions pour l'exécution de certaines taches ou de paramètresspéciaux

  Des enregistrements de ressources : des définitions des paramètres de la zone et assignation desidentités aux hôtes.

Note: 

Concernant le syntaxe, il est important que chaque information soit sur sa

propre ligne, les commentaires doivent se situer en fin de linge après lescaractères « ; »

Les directives de fichiers de zone

Pour insérer une directive ; de préférence au début du fichier ; il convient d'utiliser le symbole $ suivi dunom de la directive. Les directives les plus courantes sont :

Directive Utilisation $INCLUDE Utilisé pour inclure un autre fichier de zone à l'intérieur

$ORIGIN  Attache le nom de domaine à tout enregistrement non qualifié (nefinissant pas par un « . »)

Page 10: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 10/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

$TTLDurée en seconde pendant laquelle pendant laquelle les enregistrementsseront valides

2.3.2 Les enregistrements de ressources d'un fichier de zone 

De nombreux types d'enregistrements sont disponibles, voici les plus courants :

Les enregistrements de type «A»

Cet enregistrement est utilisé pour associé un nom à une IP. Si l'hôte n'est pas spécifié, l'adresse serautilisé par défaut pour le domaine.

Syntaxe :<hôte> IN A <adresse IP>

Exemple :

IN A 192.168.10.1dc1 IN A 192.168.10.2

Les enregistrements de type «CNAME»

L'enregistrement CNAME est un alias redirigeant vers un autre nom d'hôte

Syntaxe :<alias> IN CNAME <nom>

Exemple :

dc1 IN A 192.168.10.2serveur IN CNAME dc1

Les enregistrements de type «MX»

Le but de ces enregistrements est de rediriger le courier à destination de ce domaine vers un ou plusieursserveurs de courriers par défaut.

Page 11: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 11/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

Dans le cas de plusieurs serveurs de messagerie, le champ préférence permetd'attribuer une priorité.

Syntaxe :IN MX <préférence> <nom-serveur>

Exemple :

IN MX 10 mail.labo-linux.com.IN MX 20 mail2.labo-linux.com.

Note: Le '.' A la fin du nom est important car il indique que le nom spécifié estcomplet.

Les enregistrements de type «NS»

Cet enregistrement annonce les serveurs de noms faisant autorité pour une zone.

Syntaxe :IN NS Serveur

Exemple :

IN NS main-dns.labo-linux.com.IN NS backup-dns.labo-linux.com.

Les enregistrements de type SOA

Utilisé pour indiquer les informations importantes au sujet de cet espace de nom, cet enregistrement est lepremier à insérer après les directives.

La syntaxe est la suivante :

@ IN SOA <serveur-noms-primaire> <email> (<numéro-série>

<temps-actualisation><temps-nouvel essai>

Page 12: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 12/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

<temps-expiration><TTL-minimum> )

Expliquons à présent les différents champs présent ici :

  Le symbole @ place la directive $ORIGIN (ou le nom de zone, si la directive $ORIGIN n'est pasinstallée) en tant qu'espace de nom défini par le présent enregistrement de ressources SOA.

  <serveurs-noms-primaire> : le serveur faisant autorité  <email> : l'adresse de la personne à contacter à propos de cet espace de noms  <numéro-série> : incrémenté à chaque changement du le fichier de zone afin que named sache

qu'il doit recharger cette zone. Cela est utilisée par le serveur esclave pour déterminer s'il est en traind'utiliser des données de zone périmées et doit donc les rafraîchir.

  <temps-actualisation> : indique à tout serveur esclave combien de temps il doit attendre avantde demander au serveur de noms maître si des changements ont été effectués dans la zone.

  <temps-nouvel essai> : précise au serveur de noms esclave l'intervalle pendant lequel il doitattendre avant d'émettre une autre requête de rafraîchissement, au cas où le serveur de noms maîtrene répondrait pas.

  <temps-expiration> : temps maximum depuis une abscence de réponse du serveur maîtreavant que le serveur esclave ne cesse de répondre en tant qu'autorité pour les requêtes au sujet decet espace de nom.

  <TTL-minimum> : demande que d'autres serveurs de noms placent en cache les informationspour cette zone pendant au moins cette durée (en secondes).

Toutes les durées sont exprimées en secondes, cependant les mots clés tels que M, H, D et W (semaine)fonctionnent.

 Voici à présent un exemple d'application :

@ IN SOA dns.labo-linux.com.hostmaster.labo-linux.com. (02050500 ; numéro de série3H ; rafraichir après 3 heures1800 ; retenter après 30 minutes

604800 ; expire après 1 semain3D ) ; TTL minimum de 3 jours

IN NS dns.labo-linux.com.IN MX 10 mail.labo-linux.com.

dns IN A 192.168.1.1www IN CNAME dns.labo-linux.com.ftp IN A 192.168.1.2mail IN A 192.168.1.3pop IN CNAME mail.labo-linux.com.smtp IN CNAME mail.labo-linux.com.imap IN CNAME mail.labo-linux.com.

imprimante IN A 192.168.1.4

Page 13: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 13/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

tftp IN A 192.168.1.5routeuradsl IN A 192.168.1.254

 A présent que notre fichier de zone est prêt, il nous faut à présent nous occuper du fichier de zone inverse.

2.4 Les fichiers de zone inverse 

2.4.1 Principe de domaine inversé 

Le processus de résoution inversé permet la recherche d'un nom à partir d'une IP. Le domaine "in-addr.arpa" a été créé pour cela. On l'appelle domaine inverse et la résolution des adresses IP en noms dedomaine se nomme table inverse (translation inverse). Le nom de domaine inverse est créé en inversant lesnombres de l'adresse IP, et ajoutant in-addr.arpa à la fin.

Exemple : l'adresse IP de www.labo-linux.com est 212.180.91.66. Son nom de domaine inversé est donc 66.91.128.212.in-addr.arpa  

 Afin de comprendre le fonctionnement et la nécessité de ce nom inversé, prenons un exemple concret :

 Votre serveur FTP accepte des requêtes de divers clients. Cependant vous ne souhaitez n'accepter que desrequêtes provenant de domaines bien spécifiques, par exemple labo-linux.com.

Lorsqu'un client se connecte chez vous, votre serveur peut vous dire quelle est l'adresse IP du client,puisque cette dernière se trouve dans tous les paquets qui traversent le réseau. L'adresse IP que lesystème fournit au serveur FTP est 212.180.91.66. Pour retrouver le nom de cette machine, il nous fauttrouver 66.91.180.212.in-addr.arpa.

Le serveur de noms va donc d'abord trouver les serveurs puis les serveurs arpa., puis in-addr.arpa, etpoursuivre la recherche inverse par 212, puis 180 et finalement trouver le serveur pour la zone 91.128.212.à in-addr.arpa a labo-linux.com

Page 14: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 14/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

C'est ce dernier qui lui dira que pour 66.91.180.212.in-addr.arpa nous avons un champ ``PTR www.labo-linux.com'', ce qui veut dire que le nom qui va avec 212.180.91.66 est www.labo-linux.com.

Notre serveur n'acceptant que certain domaines dont labo-linux.com, la connexion sera donc autorisée.

S'il n'existait pas de résolution inverse de 212.180.91.66 au travers de la zone in-addr.arpa, le serveuraurait été tout à fait incapable de trouver le nom et donc de filtrer en fonction du nom de domaine.

De nombreux serveurs n'acceptent pas les connexions venant de machines dont ils ne peuvent retrouver lenom. C'est pourquoi la résolution de noms inverse pour les machines est obligatoire.

2.4.2 Configuration d'un fichier de résolution de noms inversé 

Le but de ce fichier va être de fournir une résolution inversée, donc un nom FQDN à partir d'une adresseIP. Ce fichier est similaire au fichier de noms précédents si ce n'est que les enregistrements sont de typesPTR :

Exemple :  

$ORIGIN 1.168.192.in-addr.arpa$TTL 86400@ IN SOA dns.labo-linux.com. hostmaster.labo-linux.com. (02050500 ; numéro de série3H ; rafraichir après 3 heures1800 ; retenter après 30 minutes

604800 ; expire après 1 semain

Page 15: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 15/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

3D ) ; TTL minimum de 3 jours

IN NS dns.labo-linux.com.IN MX 10 mail.labo-linux.com.

20 IN PTR ws1.labo-linux.com.21 IN PTR ws2.labo-linux.com.22 IN PTR ws3.labo-linux.com.23 IN PTR laptop1.labo-linux.com.24 IN PTR database.labo-linux.com.25 IN PTR gateway.labo-linux.com.

Ce fichier serait mis en service avec la déclaration suivante dans named.conf :

zone "1.0.10.in-addr.arpa" IN {type master;file "labo-linux.com.rr.zone";allow-update { none; };

};

3. L'administration du démon named 

3.1 Démarrage et arrêt du service 

Pour démarrer le serveur DNS, il suffit d'utiliser la commande "/usr/local/sbin/named". Les paramètresdisponibles sont :

  -c {config_file} : Permet de spécifier l'emplacement et le nom du fichier de configurationprincipale.

  -v : Affiche la version de BIND.  -u {user_name} : Force BIND à démarrer sous un compte particulier, car BIND démarre par défaut

en utilisant le compte root.  -t {directory} : Option utilisé lorsque l'on démarre BIND dans une SandBox (cf. chapitre

correspondant).

Il existe 2 utilitaires permettant de vérifier les fichiers de configuration de BIND :

  named-checkconf  : Vérifie le fichier de configuration principale et affiche les erreurs de syntaxetrouvées.

  named-checkzone : Idem mais pour les fichiers de zone.

3.2 Configuration de rndc 

BIND contient un utilitaire appelé rndc qui permet d'utiliser des lignes de commande pour administrer ledémon named à partir de l'hôte local ou d'un hôte distant.

Page 16: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 16/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

 Afin de prévenir d'accès non autorisés au démon, BIND utilise une méthode de clé secrète partagée pouraccorder des privilèges aux hôtes. Dans une telle situation, une clé identique doit être présente aussi biendans /etc/named.conf que dans le fichier de configuration de rndc, à savoir /etc/rndc.conf 

3.2.1 Configuration de /etc/named.conf  

Pour que rndc puisse se connecter à un service named, une déclaration controls doit être présente dans lefichier /etc/named.conf du serveur BIND.

La déclaration controls montrée dans l'exemple qui suit, permet à rndc de se connecter à partir d'un hôtelocal.

controls {inet 127.0.0.1 allow { localhost; } keys { <nom-clé>; };

};

Cette déclaration indique à named de se mettre à l'écoute du port TCP 953 par défaut de l'adresse inverséeet d'autoriser les commandes rndc provenant de l'hôte local, si la clé adéquate est présentée. Le <nom-clé> fait référence à la déclaration key, qui se trouve aussi dans le fichier /etc/named.conf. L'exemplesuivant illustre une déclaration key.

key "<nom-clé>" {algorithm hmac-md5;secret "<valeur-clé>";

};

Dans ce cas, la <valeur-clé> est une clé HMAC-MD5. Afin de créer des clés HMAC-MD5, utilisez lacommande suivante :

dnssec-keygen -a hmac-md5 -b <longueur-bits> -n HOST <nom-fichier-clé>

Une clé d'au moins 256 bits de long est un bon choix. La bonne clé qui doit être placée dans la zone<valeur-clé> se trouve dans <nom-fichier-clé>.

Note: Il est conseillé de mettre la déclaration de clé dans un fichier séparéuniquement accessible par root et de l'appeler via un include : include "/etc/rndc.key";  

3.2.2 Configuration de /etc/rndc.conf  

Page 17: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 17/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

La déclaration key représente la déclaration la plus importante contenue dans /etc/rndc.conf.

key "<nom-clé>" {algorithm hmac-md5;secret "<valeur-clé>";

};

Les éléments <nom-clé> et <valeur-clé> doivent être absolument identiques à leurs paramètres contenus

dans /etc/named.conf.

Pour faire correspondre les clés spécifiées dans le fichier /etc/named.conf du serveur cible, ajoutez leslignes suivantes au fichier /etc/rndc.conf.

options {default-server localhost;default-key "<nom-clé>";

};

3.3 La ligne de commande de rndc 

Une commande rndc se présente sous le format suivant :

rndc <options> <commande> <options-commande>

Lors de l'exécution de rndc sur un hôte local configuré de façon appropriée, les commandes suivantes sontdisponibles :

Commande  Effet halt Arrêt du service namedquerylog Logging de toutes les requêtesrefresh Rafraichissement de la base de données

reload Recharge les fichiers de zone mais conserve toutes les réponsesprécédemment placées en cache.

stats Evacue les statistiques courante de named vers le fichier /var/named/named.stats

stop Arrête le serveur de manière nette, en enregistrant préalablementtoute mise à jour dynamique et donnée Incremental Zone

Transfers (IXFR).-c <fichier- Permet de selectionner le fichier de configuration a utiliser

Page 18: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 18/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

configuration>-p <numéro-port> Permet de spécifier le numéro de port à utiliser-s <serveur> Permet d'envoyer les instructions à un serveur spécifique

-y <nom-clé> Spécifie une clé autre que l'option default-key dans le fichier /etc/rndc.conf.

Note: Si vos changements n'affectent qu'une zone particulière, rechargez seulementune zone en ajoutant le nom de la zone après la commande reload.

4. Sécurisation du serveur 

Le but de la Sand Box, en cas d'attaque pirate, est de limiter l'accès à seulement une infime partie dusystème de fichiers.

Pour cela, nous allons démarrer le daemon de BIND dans un environnement chrooté. L'effet obtenu sera defaire croire à BIND que son repertoire sera sa propre racine de système de fichiers.

Nous allons voir comment sécuriser le DNS via la mise en place d'une SandBox. Pour cela, il va falloirprocéder à quelques modifications :

  Créer un utilisateur non-privilégié pour faire fonctionner BIND.  Changer le propriétaire des fichiers de BIND.  Créer un fichier PID dans notre environnement chrooté.  Modifier le fichier de configuration principal.  Démarrer BIND avec les bons paramètres.

Commençons la creation de l'utilisateur non-privilégié. Nous avons choisi d'utiliser le compte dns (UID =1005).

Nous créons maintenant le fichier PID pour bind, avec la commande "touch named.pid".

Le changement de propriétaire des fichiers de BIND (présents dans le répertoire "/etc/namedb") se faitgrâce à la commande "chown dns *" dans le répertoire de base de BIND.

Les modifications qu'il faut apporter au fichier de configuration principale sont les suivantes :

  directory "/";  pid-file "named.pid";

La dernière modification concerne les paramètres de démarrage. Il suffit pour cela de mettre "-u 1005 -t /etc/namedb -c named.conf" en tant que paramètre pour l'option "named_flags" du fichier "/etc/rc.conf",au lieu de "-c /etc/namedb/named.conf".

Il ne nous reste plus qu'à redémarrer le serveur afin que le service DNS soit entièrement fonctionnel avectoutes les dernières modifications.

5. Annexes 

Page 19: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 19/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

5.1 Mise à jour du DNS via le serveur DHCP 

Il est possible de configurer votre serveur DHCP et BIND de manière à ce que lorsqu'une machine prend unbail DHCP, celle-ci soit enregistrée par le serveur DNS.

Sans trop entrer dans les détails, nous allons ici détailler les différentes étapes de configuration. Dans notreexemple ; les 2 services sont éxécutés sur la même machine et utilisent donc la même adresse : 127.0.0.1

Modifications à apporter a /etc/named.conf :

zone "labo-linux.com" {type master;file "/var/named/labo-linux.zone";allow-update {

127.0.0.1;};

};# La zone de recherche inversezone "10.168.192.in-addr.arpa" {

type master;file "/var/named/reverse.rev";

allow-update {127.0.0.1;};

};

Nous autorisons ainsi les modifications en provenance de 127.0.0.1

Note: Il est important que les machines s'enregistrant sur le DNS n'aient pas déjàune entrée dans les fichiers de zones.

Modifications à apporter à /etc/dhcpd.conf :

# méthode de mise à jour du DNS :ddns-update-style interim;

# mise à jour autoriséeddns-update on;

# mise à jour par le serveur DHCP forcéeignore client-updates;

# la mise à jour des IP fixes forcée

update-static-leases on;

Page 20: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 20/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

# on définit également quel DNS doit être mis à jour pour ces zones :zone labo-linux.com. {

primary 127.0.0.1;}

zone 10.168.192.in-addr.arpa. {primary 127.0.0.1;

}

Modifications pour les clients Linux

 Ajoutez la ligne suivante dans /etc/dhclient.conf :

send host-name "lenomdelamachine";

En effet par défaut, dhclient n'envoie pas le nom d'hôte au serveur.

5.2 Exemples de fichiers de configuration 

Le but de ce chapitre est de vous proposer des exemples de configurations «prêt à l'emploi» afin de vousaider à mettre en place votre serveur :

5.2.1 Cas d'un serveur maître 

 /etc/named.conf 

acl "labo-linux" { 127.0.0.1; 192.168.1.0/24; };options {

directory "/etc/namedb";forwarders {

193.252.19.3;193.252.19.4;

};allow-query {"labo-linux";};

};

zone "." {type hint;file "named.root";

};

zone "0.0.127.IN-ADDR.ARPA" {type master;file "localhost.rev";

Page 21: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 21/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

};

zone "labo-linux.com" {type master;file "labo-linux.zone";

};

zone "1.168.192.in-addr.arpa" {type master;file "1.168.192.in-addr.arpa";

};

 /var/named/labo-linux.zone

@ IN SOA dns.labo-linux.com. hostmaster.labo-linux.com. (020505001080018003600000259200 )

IN NS dns.labo-linux.com.IN MX 10 mail.labo-linux.com.

dns IN A 192.168.1.1www IN CNAME dns.labo-linux.com.ftp IN A 192.168.1.2mail IN A 192.168.1.3routeuradsl IN A 192.168.1.254passerelle IN CNAME routeuradsl.labo-linux.com.

 /var/named/localhost.rev

@ IN SOA dns.labo-linux.com.hostmaster.labo-linux.com. (02042800360090036000003600 )

IN NS labo-linux.com.1 IN PTR localhost.

5.2.2 Cas d'un serveur de cache 

Pour ce type de serveur, un fichier /etc/named.conf suffit :

Page 22: DNS Sous Linux

7/31/2019 DNS Sous Linux

http://slidepdf.com/reader/full/dns-sous-linux 22/22

 

WWW.RESEAUMAROC.COM 

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.Contact : [email protected] TEL : 00212669324964 

options {directory "/var/named";allow-query { 192.168.1.0/24; };allow-transfer{ 192.168.1.0/24; };allow-recursion{192.168.1.0/24; };

};

controls {inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

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

};

zone "localhost" IN {type master;file "localhost.zone";allow-update { none; };

};

zone "0.0.127.in-addr.arpa" IN {

type master;file "named.local";allow-update { none; };

};

include "/etc/rndc.key";