Pré-requis A. Généralités
les connaissances acquises lors de la certification LPI niveau l, notamment: Le système ONS est le support de nombreuses fonctionnalités sur internet allant de la navigation à
l'envoi de courriers électroniques. Sa bonne configuration est essentielle dans le cadre d'un réseau
lEI Savoir éditer des fichiers lexte. local, et primordiale sur internet.
lE! Avoir des connaissances générales IP.
1. Les débuts de la résolullon de noms et l'apparition du ONS
Oblecllfs Depuis le début des réseaux IP. le principe de la résolution de noms est de faire correspondre un
A la fin de ce chapitre, vous serez en mesure de : nom facile à mémoriser à une adresse IP, seule information réellement exploitable pour contacter
une machine distante.
~ Connaître l'architecture et le principe de la résolution ONS.
nom-de-machine <-> 130.130.28.12
~ Connaitre les principaux types d'enregistrements ONS.
~ Configurer un client ONS. Tant que les machines publiques sur intemet étaient peu nombreuses. toutes les résolutions se fai-
saient au moyen d'un fichier appelé hasts qu'on téléchargeait à intervalle régulier pour se tenir au
~ Configurer un serveur de cache DNS. courant des nouveautés.
~ Configurer une redirection de la résolution ONS. le ONS a été conçu pour pallier les limites du fichier hasts téléchargé, et devait répondre à cer.
~ Exploiter la commande de pilotage mdc. tains impératifs de conception.
Le ONSest hiérarchisé
les informations sont classées en une arborescence qui permet leur organisation. Chaque niveau
de la hiérarchie esl appelé Il zone », et le sommet de cette hiérarchie est la zone « • ».
~
j
Il
1: www.abC.tr?
8: 62.193.202.6
Dans l'exemple ci-dessus, la zone france contient les sous-zones rhone, nord et idf. Mais on peut
aussi dire que la zone « . » contient les sous-zones fr, corn et edu. Les zones situées hiérarchique-
ment sous une zone sont appelées zones -enfant-.
L'intérêt de cette organisation est de dédier un serveur (en fait au moins deux pour des raisons de
tolérance de pannes) à la gestion d'une zone. Et comme la hiérarchie ONS est virtuellement illi-
mitée, en largeur comme en profondeur, un serveur ONS ne gère en fait qu'une petite portion de
l'espace de nom. Toujours dans notre exemple, si un serveur ONS héberge les données de la zone
Schéma simplifié de la résolution de nom:
france, il est consulté pour toute résolution de nom se terminant par « france.fr », mais il n'héberge
pas nécessairement les données des zones mone, nord et idf, et peut se contenter de rediriger la 1. Le client à son serveur de référence (fournisseur d'accès ou serveur local) : quelle est l'adresse
requête vers le serveur de la zone enfant. On parle alors de délégation dans le sens où on pour le nom www.abc.fr ?
délègue la gestion d'une zone enfant à un autre serveur.
i.~ 2. Le serveur local à un serveur racine: donne-moi l'adresse d'un serveur connaissant la zone fr.
Pour des raisons de tolérance de panne, les données de chaque zone ONS doivent être répliquées
au moins une fois, c'est-à-dire exister à au moins deux exemplaires. Un serveur aura autorité sur la 3. Tiens, le serveur à l'adresse 193.176.144.6 pourra te renseigner. Il possède les informations de
zone et sera responsable des mises à jour. On dit qu'il est SOA : Start Of Autharlty. Les zones ~ la zone fr.
.~
hébergées sur ce serveur sont de type master, et ceux qui hébergent une réplique de la zone sont ~ 4. Le serveur local au serveur de la zone fr : donne-moi l'adresse d'un serveur connaissant la zone
configurés en tant que slave, abc.fr.
~ 5. Tiens: le serveur à l'adresse 213.41.120.195 pourra te renseigner.
!
I.U
6. Le serveur local au serveur de la zone abc.fr : possèdes-tu un enregistrement
domaine abc.fr ?
www dans ton
••
LINUX. Préparation à la certillcation LPIC-2 Examens LPI 2D1 et LPI 2D2
Page 214 Chapitre 7 Résolution de noms ONS Page 215
7. Oui, voici son adresse IP: 62.193.202.6. Le nom normalisé de ta zone sera formé par tes octets de ta partie réseau de l'adresse IP ordonnés
en sens inverse, suivi de la chaine de caractères « .in-addr.arpa ».
8. Le serveur local à la slation cliente: tu m'as demandé www.abc.fr et son adresse IP est
62.193.202.6. Résolutions dans la zone 1.168.192.in-addr.arpa
10 -Jo serveur1.enlreprise.local (pour serveur1.enfreprise.local_ 192.168.1.10)
4. Les enregistrements
15 _ prinler1.enfreprise.locaf (pour prinler1.entreprise./ocal _ 192.168.1.15)
les zones n'ayant qu'un rOle structurant, il faudra pour assurer les résolutions de nom créer des en-
registrements qui feront correspondre un nom à une adresse IP ou à une autre information. Ces en- Résolutions dans la zone 85.in-addr.arpa
registrements sonl appelés Ressources Records (enregistrement de ressources), souvent notés
RR et constituent les informations fondamentales du ONS.
25.8.92 _ www.abc.!r(pourwww.abc.!r_ 85.92.8.25)
le FQON, Fully Qualified Domain Name (Nom de Domaine Pleinement Qualifié) représente le
29.123.65 -+ www.def.nel(pourwww.def.net_ 85.65.123.29)
nom d'hôte, avec toute son arborescence parente, jusqu'à la zone « . » . Par exemple. www.salnl~
marcelln.fr représente l'enregistrement www dans la zone salntmarcelln.fr, fr étant la dernière d. Enregistrement de type CNAME
zone avant la zone point. Quand on ne veul aucune ambiguïté quant à ta nature d'un nom ONS, on Canonlcal Name (alias ou surnom). Ce type d'enregistrement fait correspondre un nom à un autre
représente te FQON avec la zone point matérialisée, c'esH!t-dire qu'on écrit un point comme dernier nom. Par exempte si vous créez un serveur web pour tes usages internes de votre entreprise sur un
caractère du FaON. On obtient donc« www.salntmarcelln.fr. ». Cette notation est courante, voire serveur existant qui s'appellerait « production1.maboite.com », vous pouvez créer un CNAME « in-
indispensabte dans tes fichiers de configuration du serveur ONS. tranet » plus intuitif pour tes utilisateurs.
Le système ONS a pour vocation première d'assurer un service de résolution de nom. C'est-à-dire Résolutions dans la zone maboite.com
de faire correspondre à un nom d'hôte une adresse IP. Ses créateurs ont toutefois prévu que le
système ONS serait capable d'assurer ta résolution pour différents types de noms et d'améliorer intranel -+ production1
ainsi la finesse du service.
imprimanle1 -+ printer1
a. Enregislrement de type A e. Enreglstremenl de type MX
Le plus facile à appréhender et te plus courant. C'est l'enregistrement qui fait correspondre une Mail Exchanger (Indicateur de serveur de messagerie pour un domaine). Ce type d'enregistrement
adresse tP à un nom. Par exemple quand on tape http://www.site.fr. www est un enregistrement de fait savoir à des agents de transfert de messagerie quet est te serveur destinataire finat d'un cour-
type A dans la zone site.fr. It correspond à une adresse IP qui est cette du serveur web hébergeant rief. L'exemple ci-dessous est à titre d'illustration et ne présage pas du format d'un enregistrement
te site en question.
MX.
Résolutions dans la zone domaine.fr Résolution dans la zone domaine.fr
www-+ 82.25.120.5 @domaine.fr--Jo smtp.domaine.fr --Jo 82.25.120.6
supporl-+ 125.12.43.2
1. Enregistrement de type SOA
vpn --Jo 82.25.120.6
Star1 Of Authorlty (début d'autorité). Indique le serveur ayant la responsabilité de ta zone. Toute
b. Enregistrement de type MAA zone fonctionnelle a un enregistrement SOA
Récent mais de plus en plus fréquent. Cel enregistrement fait correspondre à un nom une adresse Résolution dans la zone domaine.!r
IPv6. domaine.fr -+ nS.hebergeur.nel
Résolutions dans la zone domaine.fr
~.~ g. Enregislrement de type NS
www--Jo 2001:610:12:123a:28:15ff:fed9:97e6
Name Server (serveur de nom). Indique les serveurs de noms pour ta zone. Toute zone fonction-
suppor1--Jo 2001:610:12:123a:28:15ff:fed9:97e8 •.• nelte a au moins un enregistrement NS.
~
Résolution dans la zone domaine.fr
C. Enregistrement de type PlR ~
1::
---------
domaine.!r --Jo ns.hebergeur.nel
Pointer, te contraire de A Si les enregistrements de type A font correspondre une adresse IP à un
nom d'Mte, tes PTR font exactement le contraire. Ils existent dans des zones un peu particulières ~
nommées IN-ADOR.ARPA
.~
;B
9
Il exploite le fichier de configuration simple letclresolv.conf. include Indique le nom d'un "sous-fichier" de configuration. Ëvite d'avoir un fichier named.conf
trop grand pour être administré confortablement.
Format simplifié du fichier /etclresolv.conf
options Conteneur pour certains mots-clés, notamment directory et forwarders.
search domaine
domain domaine directory Dans une directive option. Indique le répertoire utilisé pour le stockage sur disque des
nameserver A.S.C.D données de cache du serveur.
Fichier letc/resolv.conf: directives et variables utilisées forwarders Placé dans une directive option pour les configurations simples (redirection incondi-
tionnelle). Si le serveur ne dispose pas dans ses fichiers de la résolution demandée,
search Facultatif: indique le suffixe de recherche employé sur le poste Linux. Permet de ne renvoyer la demande vers le serveur dont l'adresse IP est donnée en référence.
pas taper l'intégralité du FQDN dans les applications. le fichier letclresolv.conf
zone Conteneur pour le nom d'une zone ONS gérée par le serveur.
admet plusieurs domaines de recherches précisés par search.
type Dans une directive zone. Indique le type de zone stockée. les principales valeurs
domain Facultatif et obsolète: indique un suffixe de recherche unique employé sur le poste
sont hint (serveurs racine), master (serveur maUre d'une zone), et slave (réplique de-
Linux. puis un master).
domaine le FQDN du domaine constituant le suffixe de recherche.
file Dans une directive zone. Indique le fichier contenant les informations de zone.
nameserver Indique l'adresse IP du serveur ONS qui assurera les résolutions. le fichier letcl
resolv.conf admet plusieurs serveurs ONS précisés par nameserver. b. Les fichiers de définition de zone pré.lnstallés
Selon les implémentations, un certain nombre de zones sont présentes par défaut à l'installation du
serveur pour assurer un fonctionnement standard et permettre les résolutions courantes. Par
B. Configuration de base du serveur exemple, la zone localhost qui permet de résoudre le nom localhost en 127.0.0.1, y compris au sein
du service ONS et pas seulement dans le fichier hosts.
1. Fonctionnement du serveur DINO
Le serveur ONS SIND repose
named.conf.
sur un exécutable named et sur un fichier de configuration 1
'il Ces fichiers
named.conf.
de zones sont créés à l'installation, et correctement référencés dans le fichier
C'est la bonne nouvelle : un serveur BIND fraîchement installé est naturellement un serveur de
cache. Il n'y a donc pas de configuration particulière à réaliser. Quand on parle d'installer et de
configurer un serveur de cache, comme dans les objectifs de la certification lPI, il s'agit simplement
d'instalier un serveur fonctionnel sans information de zone locale.
1. Gestion de zones locales retry Valeur numérique. Utilisé quand la zone est répliquée. S'il est impossible pour l'es-
clave de contacter le serveur maître, indique au bout de combien de temps réessayer.
a. Créalion d'un fichier de zone direcle expire Valeur numérique. Utilisé quand la zone est répliquée. S'il est impossible pour l'es-
Les informations nécessaires à la résolution devront se trouver dans un fichier de déclaration clave de contacter le serveur maître, indique au bout de combien de temps les enre-
de zone. L'emplacement de ce fichier est libre, puisqu'il est défini dans une section zone de gistrements non rafraîchis perdent leur validité et ne doivent plus être utilisés.
named.conf. Toutefois, un usage établi veut que ce fichier soit placé dans le répertoire Ivar/na- negative Valeur numérique. Indique combien de temps le serveur doit conserver en cache une
med. Notez que selon les distributions, il peut aussi se trouver dans le répertoire letc ou dans réponse négative.
letclblnd. Pour la certification LPI, retenez plutôt Ivar/named.
NS Enregistrement indiquant quel est le serveur de nom pour cette zone.
Ce fichier aura le format très strict indiqué ci-dessous. Dans la plupart des cas, un refus de démar-
rer est da à un fichier de zone mal formé. Il est composé des déclarations de durée de vie en
cache des informations, du serveur ayant autorité sur la zone, des serveurs de noms desservant b. Création d'un fichier de zone inverse
cette zone. et de l'ensemble des enregistrements de ressources (RR) de cette zone. Le fichier de zone inverse aura la même structure qu'un fichier de zone directe. Comme indiqué
Format type du fichier de zone directe plus haut, le nom normalisé de la zone est formé par les octets de la partie réseau de l'adresse IP
ordonnés en sens inverse, suivi de la chaine de caractères « .in-addr.arpa ». Par exemple, la zone
$TTL ttl inverse pour le réseau 192.168.99.0 sera: 99.168.192.1n-addr.arpa, et c'est ce nom qui devra être
nomzone IN SOA serveur mailadmin employé dans le fichier de zone et dans le fichier named.conf.
seriaI
refresh Format type du fichier de zone inverse
retry $TTL ttl
expire nomzoninv IN SOA serveur mailadmin
negative seriaI
refresh
nomzone IN NS serveur retry
expire
Fichier de zone directe: format type de l'en-tête negative
NI Time Ta Live (durée de vie) : indique la durée de conservation en secondes des don- nornzoneinv IN NS serveur
nées en mémoire cache. Cette valeur est précédée par la directive $TTL.
nomzone FaON de la zone gérée par ce fichier. Souvent remplacé par un arobase (@) pour Fichier de zone Inverse: format type de l'en-tête
alléger le fichier. Attention, puisqu'il s'agit d'un FaON, le nom de la zone doit se termi-
nomzoneinv Nom normalisé de la zone inverse: subnet-inversé.in-addr.arpa. Où subnet-inversé
ner par un point.
représente les octets du subnet en ordre inversé. Attention, le nom de la zone in-
IN Obsolète mais courant: classe Internet (aucune autre classe n'est plus utilisée). verse est un FaON, il doit donc se terminer par un point.
SOA Start Of Authority. Enregistrement obligatoire pour indiquer que ce serveur est légitime SOA Start Of Authority. Enregistrement obligatoire pour Indiquer que ce serveur est légi-
sur cette zone. Ume sur cette zone.
setVsur FaON du serveur ayant autorité sur la zone. setVeur FaON du serveur ayant autorité sur la zone.
Constatez que c'est rigoureusement la même chose que pour la zone directe. C'est le format des
i'1 enregistrements qui fait l'essentiel de la différence.
seriaI Valeur numérique. Numéro de série du fichier. Utile quand la zone est répliquée sur .2'
d'autres serveurs pour savoir si les données ont changé et si la réplication doit être
faite.
refresh Valeur numérique. Utilisé quand la zone est répliquée. Indique au serveur esclave à
quel intervalle tester la validité de sa zone.
C. Création d'enregistrements dans les fichIers de zone Fichier named.conf : directives et syntaxe de la déclaration de zone
Une fois les fichiers de zone créés. il suffit d'ajouter autant d'enregistrement de ressource que l'on
souhaite, à raison d'un par ligne. nomzone Le FQON de la zone gérée par le serveur.
Format d'un enregistrement de ressource dans un fichier de zone directe type master Précise qu'il s'agit d'une zone maîtresse à synchroniser éventuellement vers des
serveurs esclaves.
nom IN typeRR valeur-résolue
fichier Chemin absolu du fichier à lire pour prendre connaissance des éléments propres à
Format d'un enregistrement de ressource dans un fichier de zone inverse la zone (configuration, RR, etc.).
adresse-hdte IN PTR nom
e. Prise en compte de la nouvelle configuration
Fichier de zone directe: format des enregistrements Il faut ensuite faire en sorte que le serveur ONS recharge ses fichiers de configuration afin de
prendre en compte les nouveautés. Deux solutions pour cela : le redémarrage du service ou le
nom Nom simple ou FQON auquel il faut faire correspondre une adresse IP.
chargement de la nouvelle zone par commande de pilotage mdc.
IN Obsolète mais nécessaire: classe Internet.
Rechargement du service
typeRR Type d'enregistrement. Souvent de type A : fait correspondre une adresse IP à un letc/init.d/bind9 restart
nom. Valeurs courantes: A, CNAME, MX.
Chargement de la nouvelle zone par mdc
valeur-résolue Ce à quoi on fait correspondre le nom. Dans le cas d'un enregistrement de type
A, une adresse IP. rndc reload saintmarcelin.fr
adresse.h6te L'octet ou les octets qui associés à l'adresse du réseau de la zone inverse forme-
ront l'adresse IP à résoudre. 2. Gestion de zones secondaires
PTR Une zone ONS ne devrait pas dépendre d'un serveur unique et il est courant de créer sur un
Type pointeur: fait correspondre un nom à une adresse IP, Hors enregistrements
SOA et NS, c'est le seul type qu'on rencontre dans les zones inverses. deuxième serveur des zones secondaires, strictement identiques aux zones primaires, et synchronf.
sées à intervalles réguliers.
L'ajout d'un grand nombre d'enregistrements est évidemment fastidieux, et gagnera à être réalisé
sous forme de script. a. Déclaralion de la zone secondaire dans named.conl
Exemple de script simple d'alimentation d'un fichier de zone: Il n'est évidemment pas nécessaire de créer les fichiers de zones, puisqu'ils seront synchronisés
depuis le serveur autoritaire. On parle couramment de serveur maître et de serveurs esclaves.
Les hébergeurs et autres DNS gérant de gros volumes d'enregistrement utilisent naturelfement des
scripts beaucoup plus éfaborés. Le chargement de la zone esdave se fait avec une déclaration de zone normalisée dans le fichier
named,conf.
'!/bin/bash
echo "Nom à ajouter à la zone 7" Format type de fa déclaration de zone secondaire dans named.conf
read nom zone "nomzone" (
echo "Adresse IP correspondant 7" type slave;
read ip masters 1 adresse maitre
echo "Snom IN A Sipn» Ivar/named/saintmarcelin.fr file "fichier"; -
1;
d. DéclaraUon de zone principale dans le lichier named.conl
Une fois que l'on dispose d'un fichier de zone, il faut faire savoir au serveur qu'il doit le charger au Fichier named.conf : directives et syntaxe de la déclaration de zone
démarrage. Ceci se fera avec une déclaration de zone normalisée dans le fichier named.conf.
nomzone Le FQON de la zone gérée par le serveur.
Format type de la déclaration de zone dans named.conf
type slave Précise qu'il s'agit d'une zone esclave à synchroniser depuis un serveur maître.
zone "nomzone" 1
type master; adresse_maitre Adresse IP du serveur autoritaire.
file" fichier";
1;
fichier Chemin absolu du fichier dans lequel stocker les éléments synchronisés. Le
compte de service doit avoir les droits d'écriture sur le répertoire de travail.
1
b. Prise en compte de la nouvelle configuration
li Il faut ensuite faire en sorte que le serveur ONS recharge ses fichiers de configuration afin de
Utifisation de ping pour tester une résolution de nom
Quand on utilise ping pour tester une résofution de noms. c'est la traduction de l'adresse qui im-
prendre en compte les nouveautés. Deux solutions pour cela : le redémarrage du service ou le porle et non fa réponse ICMP de fa machÎne distante.
chargement de la nouvelle zone par commande de pilotage rndc.
donald:/etc/bind8 ping donald.formation.fr
Rechargement du service PING donald.formation.fr (192.168.1.1) 56(84) bytes
/etc/init.d/bind9 restart 64 bytes fram donald.formation.fr (192.168.1.1): icmp
64 bytes fram dona1d.formation.fr (192.168.1.1): icmp
Chargement de la nouvelle zone par mdc 64 bytes from donald.formation.fr (192.168.1.1): icmp
rode reload saintmarcelin.fr
b. nslookup
nslookup est l'outil le plus populaire pour l'interrogation des serveurs ONS. Il est présent sur la
3. Délégation de zone grande majorité des plates.formes Unix et Windows.
Une délégation de zone consiste à faire gérer par un serveur tiers une zone enfant d'une zone
nslookup est utilisé la plupart du temps en mode interactif. C'est-à-dire qu'après avoir tapé nslook.
hébergée par un serveur parent. C'est te principe de la délégation qui permet de distribuer l'en-
up, on se trouve dans son interface oû on tapera des commandes spécifiques. Les serveurs de
semble de l'espace de nom ONS sur des milliers de serveurs. La délégation se configurera sur le
serveur parent. noms interrogés par défaut sont ceux référencés dans letclresolv.conf. Ceci pourra éventuellement
être modifié par la suite.
On ajoutera dans le fichier de zone du parent deux Ressources Record: l'un de type NS pour in.
Utilisation de nsfookup pour une résolution de nom
diquer qu'il existe un serveur de nom pour la zone enfant. et l'autre de type A pour connaître
l'adresse IP de ce serveur de nom. L'enregistrement NS assurant la délégation est appelé glue Par défaut, nslookup adresse aux serveurs DNS des requêtes de type A
record (enregistrement colle).
donald:/etc/bindf nslookup
Configuration de fa défégation dans f8 fichier de fa zone parente > server
zone enfant IN NS dns enfant
Defau1t server: 192.168.1.1
dns_ënfant IN A A.B.C~D Address: 192.168.1.1153
> colncoln.formation.fr
Server: 192.168.1.1
Éléments Address: 192.168.1.1153
On peut utiliser nsfookup pour tous 'es types d'enregistrements courants (ici MX). ;; ANSWER SECTION:
donald:/etc/bindl nalookup eoincoin. formation. fr. 86400 IN CNAME donald.formation.fr.
> set type-MX donald. formation. fr. 86400 IN A 192.168.1.1
> elysee.org
Server: 192.168.1.1 ;; AUTHORITY SECTION:
formation.tr. 86400 IN NS donald.formation.fr.
Address: 192.168.1.1153
" Ouery time: 9 msee
Réponse ne faisant pas autorité : " SERVER: 127.0.0.1'53(127.0.0.1}
,. WHEN: Thu Jun 15 19:49:45 2006
elysee.org MX preference - 10, mail eKchanger - mail.elysee.org
., MSG SIZE rcvd: 90
mail.elysee.org internet address - 64.182.1.213
> d. hos'
hast est un outil simple pour faire une requête ONS en mode non interactif.
c. dig
Syntaxe simplifiée pour la commande host
dlg est le nouvel outil proposé par l'ISe pour l'interrogation et le diagnostic des serveurs ONS. Pas-
sant pour être le plus précis et abouti des outils de test, il devrait éventuellement finir par s'imposer host nom
comme solution de référence. Toutefois, les habitudes prises par les administrateurs ONS laissent
présager encore de beaux Jours pour nslookup. host nom -t type A.a.C.D
dlg est utilisé en mode non interactif, c'est-à-dire que chaque utilisation de dlg devra donner l'en- Éléments
semble des paramètres nécessaires à la résolution.
Syntaxe simplifiée de dig
nom Le nom ONS dont il faut assurer la résolution. Il peut s'agir d'un FQON ou du nom
simple qui sera complété par le suffixe de recherche s'il est défini dans lete/resolv.conf.
dig nom
-t type Facultatif: le type de requête qui est adressée. Par défaut le type est sélectionné auto-
dig A.a.C.D nom TYPE matiquement parmi les types A, AAAA et MX.
A.B.C.D Facultatif: l'adresse IP du selVeur ONS à interroger. Si cet élément n'est pas rensei-
Éléments gné, ce sont les selVeurs présents dans letclresolv.conf qui sont utilisés.
nom le nom complet (FQON) dont on veut assurer la résolution. Utilisation de host pour tester une résolution de nom
A.B.C.D L'adresse IP du selVeur ONS à interroger. En cas d'omission, les selVeurs de noms in. host présente un résultat concis.
tarrogés sont ceux référencés dans lete/resolv.conf.
donald:/ete/bind' hoat coincoin.formation.fr
TYPE Par défaut, dig fait des requêtes de type A (résolution ordinaire de nom en adresse eoincoin.formation.tr i5 an alias for donald.formation.fr.
IPv4). le paramètre type s'il est précisé permet d'adresser des requêtes d'un autre type. donald.formation.fr has address 192.168.1.1
On s'en sert couramment pour connaître par exemple les seIV8urs de noms ou de mes.
sagene associés à une zone. donald:/ete/blnd'
., QUESTION SECTION:
e. Mesure des performances La plupart des implémentations modernes de blnd exploitent nativement l'utilisation d'un compte de
service.
la commande tlme qui mesure le temps consommé par une application permet de mesurer la per~
formance d'une résolution ONS. Elle indique le temps total consommé par la commande. et le Compte de service "amad sur une distn'bution Red Hat
temps consommé par les processus dans les espaces d'exécution système et utilisateur.
Le compte est créé automatiquement à l'installation du service.
Observation du temps pris par une résolution DNS
(root@RH9 rootj' grep named /etc/passwd
Les temps mesurés dépendent de la bande passante disponible, de la disponibilité du serveur, et named:x:25:25:Named:/var/named:/sbin/nologin
de fa rapidité de la machine cliente.
a. Pourquoi un compte de service? Il est recommandé d'utifiser le mode chroot avec un compte de service. Un processus qui aurait les
prérogatives de root pourrait s'octroyer le droit de sortir du répertoire où il est enfermé.
Aux origines, li était fréquent de faire tourner un serveur blnd sous l'identité du compte d'adminis-
tration root. C'est.à-dire que le compte root était propriétaire du processus. Les conséquences Créallon de l'environnement nécessaire
pouvaient être fâcheuses: si du code sensible (dangereux) était envoyé au processeur par l'exécu-- ~.~ b.
table named, il l'était au nom de root, c'est-à.dire avec les pleins pouvoirs sur le système. Or, Dans la mesure où le processus est bemé et qu'il croit s'exécuter dans un environnement ordinaire,
cette situation présente des risques. 11peut s'agir de bogues contenus dans le code exécutable de •• Il doit avoir à sa disposition tous les éléments nécessaires à son fonctionnement. li faut bien com.
named, ou bien de vulnérabilités du programme qui permettraient à une personne mal intentionnée ~ prendre que le processus n'aura aucun moyen d'aUer chercher quoique ce soit en dehors de son
d'envoyer du code exécutable via le processus. :( répertoire. La mise en place d'un blnd en mode chroot suppose donc une phase préliminaire de
création de son environnement de travail.
La solution retenue est en général d'exécuter named sous une identité différente de rool, et d'utili-
ser un compte de service: un compte uUlisateur ne permettant pas de connexion directe au sys.
tème, mais qui sera propriétaire du processus. Ainsi, si du code malicieux venait à être exécuté via
le processus named, il n'aurait pas plus de pouvoir que ceux du compte de service, et ne pourrait
donc pas mettre en périt le système.
_/
etc
~/
//.usr
boot bin
~.
"-.
var
banque en ligne en utilisant l'urt exacte mais que le nom est résolu en l'adresse IP d'un faussaire,
les conséquences peuvent évidemment être dramatiques. Dans le cas du DNS, la sécurisation
reposera surtout sur l'authentification et l'intégrité des données. C'est-à-dire qu'on veut être certain
que c'est bien le bon serveur qui nous répond. et que les données ne subissent pas de modification
1 pendant le trajet.
named Nous allons utiliser ici le mécanisme TSIG : Transaction SIGnature (signature des transactions).
Ce mécanisme repose sur la présence d'un secret partagé par les serveurs qui échangent des
données.
~
{
Sous-arborescence contenant
IOU5les éléments de configuration etc var dey a. Génération du secret partagé
nécessaires à l'exécution de named
1 Il existe un outil de génération des clés: dnssec-keygen.
verrons Ici dans re cadre d'une exploitation TSIG.
Il a de nombreux usages, mais nous le
run
Syntaxe dnssee-keygen pour utilisation dans le cadre de TSIG
dnssec-keygen -a HMAC-MD5 -b taillecle -n nametype nomsecret
Étapes de création de l'environnement de t,avail :
dnssec-keygen : variables et paramètres
Création du répertoire de chroot.
-a HMAC-MD5 -a définit la méthode de cryptage. HMAC-MD5 est la seule valeur supportée pour
Création de la fausse arborescence -,. dans le répertoire de chroot. Tous les répertoires utilisés
TSIG.
par le processus named doivent s'y trouver.
Copie des fichiers de configuration dans le répertoire de chroot. -b tail/ec/e -b définit la valeur de la clé employée. Pour HMAC-MD5, laiffeele doit être com-
Lancement du processus en mode chroot. pris entre 1 et 512. 128 est une valeur courante généralement satisfaisante.
-n nametype -n définit le propriétaire de la clé. Dans le cadre d'un fonctionnement TSIG,
c. lancement du programme en mode chroot nametype aura généralement la valeur HOST pour signifier que la sécurisation
Il n'est pas vraiment difficile de lancer blnd en mode chroot. se passe de machine à machine.
nomsecret Le nom du secret. Peut être n'importe Quelle chaine alphanumérique.
Syntaxe de fa commande named pour utilisation en mode chroot
named -c config -u utilisateur -t repertoire La commande aboutit à la génération de deux fichiers Knomsecret.+xxx.yyyyy,key et Knomse-
cret. +xxx. yyyyy .prlvate.
éléments employés dans la syntaxe: Exemple d'utilisation de dnssec-keygen
named L'exécutable principal de bind. Dans la plupart des implémentations, lancé depuis le donald:~' dnssec-keYgen -a HMAC-MDS -b 128 -n HOST supersecret
script d~ !::lestion du service. Ksupersecret.+157+2682Q
conflÇ Facultatif. Indique le fichier de configuration à employer au chargement. En principe
donald:-' cat ~supersecret.+1S7+26824.key
letclnamed.conf ou letclbind/named.conf.
supersecret. IN KEY 512 3 157
utilisateur Le compte de service propriétaire du processus. Ce compte doit naturellement être yI tYGIAOtGCM7VqGjZdJAg-.
défini dans le fichier letcJpasswd.
donald:~1 cat Ksupersecret.+157+26824.private
repertoire Le répertoire dans lequel named sera enfermé. Souvent Ivar/named. private-key-format: vI.2
Algorithm: 157 (HMAC MD5)
Il sera bon de vérifier dans les journaux que le processus parvient bien à démarrer dans son nouvel Key: yltYGlAQtGcM7vqGjZdJAg-.
environnement. En général, quelques essais sont nécessaires.
?
5 Peul-on se passer de la directive include dans le fichier named.conl
Bien sûr. Cette directive permet d'appeler des fichiers contenant des éléments de configuration
F. Travaux pratiques
annexe et de les intégrer dans la configuration du seN8ur. Toutefois, si on choisit de placer tous les
éféments de configuration dans un seul fichier named.conf, cela ne pose aucun problème, si ce
n'est celui d'avoir a gérer un fichier un peu fang.
1. Installation d'un serveur ONS
Pour accélérer la navigation internet au sein du réseau, vous décidez de mettre en place un serveur
B Commenl un serveur DNS local au sein d'une entreprise peut-il lirer parti du cache d'un serveur plus sollicité
comme celui de son foumlsseur d'accès par exemple? ONS interne à votre entreprise. Ainsi, tous les clients Qui font les résolutions ONS les plus couran-
tes profileront du cache du serveUr local.
En le déclarant dans une redirection (directive forwarriers). Le seN8Uf résoudra alors fui~méme tous
les enregistrements appartenant à des zones locales. et s'en remettra au serveur de son fournis.
seur d'accés pour toute autre résolution. a. Inslallallon des services applicalifs
J Comment peut-on prendre en comple des élémenls nouveaux sur un serveur ONS, comme des enregistre. Sur le serveur alpha, installez le serveur bind avec la commande suivante:
ments nouvellement créés sans recourir au rechargement complet du service ?
apt-get insta11 bind9
GrAce à la commande de pilotage rndc, qui permet justement de prendre en compte des évolutions
de la configuration ou des données hébergées en agissant sur une seule zone et en évitant donc le Le service doit déjà être installé sur le serveur beta.
rechargement complet du service qui sofliciterait bien davantage de ressources.
• De Ioules les commandes de lest de résolution ONS, laquelle donnera les résultats les plus précis et les plus b. Vérificallon
circonstanciés? •
C'est la commande dig, considérée comme le fleuron des outils de diagnostics ONS. Si certaines
distributions ont présenté dig comme l'outil universel destiné à remplacer avantageusement tous les
Commandes utiles
autres, fa plupart des utilisataurs préfèrent toujours aujourd'hui la commande nsJookup. pgrep
• Comment se mettre A l'abri d'une vulnérabililé du code el(éculable ONS quand on craint une intrusion ou mal.
ps
veillance par el(ploitation de cette vulnérabilité?
Deux techniques sont exploitables et elfes sont souvent utilisées conjointement. D'abord en mde
enfermant le processus named dans un environnement d'exécution étanche. On dit qu'on met le
processus en prison (in jaU) par un changement de racine (chroot). La prison en question est une Manipulations
arborescence contenant une copie de tous les éléments dont aura besoin le processus pour son
fonctionnement comme les bibliothèques ou fichiers de configuration. Par aifleurs, on exécute le 1. Vérifiez que le service est en COurSd'exécution en observant les processus actifs.
processus BU nom d'un compte de service aux pouvoirs limités, si bien que l'exploitation d'une 2. Vérifiez que le service est en cours d'exécution en interrogeant le script de lancement.
éventuelle vulnérabifité ne donnerait pas à l'attaquant plus de droits que ceux du compte en
question. 3. Vérifiez que le service est en cours d'exécution en utilisant la commande de pilotage mdc.
11 Dans le cadre d'une délégation, pourquoi est-il Indispensable d'avoir une communication possible entre le
serveur délégant et Je serveur délégué? Résumé des commandes el résullal à l'écran
Le principe d'une délégation est en quelque sorte de sous.traiter la gestion d'une zone enfant à un
autre serveur. Toutes les requêtes faites au serveur parent pour fa zone enfant seront dynamique. Observation du processus:
ment dirigées vers le serveur de la zone enfant. S'il ny a pas de communication, cette redirection
n'est tout simplement pas possible. 101PhO'-' pgrep -1
4491 named
named
a1pha:-'
Interrogation du script:
N'oubliez pas que lors du lest d'une résolution avec la commande ping, c'est la première ligne qui
c. Configuration des clienls nous intéresse, celle qui traduit le nom en adresse IP. et non l'éventuelle réponse au ping, qui peut
par ailleurs être filtrée.
Commandesel fichiers utiles
letcJresolv.conf b. Essais de mise en cache (facullatll)
vi
Commandes utiles
Manipulalions ~ ping
t Modifiez la configuration du serveur alpha afin qu'il s'interroge lui-même pour toute requête Manipulalions
DNS.
t Modifiez la configuration de la station de travail Ubuntu afin qu'elle utilise le serveur alpha pour t Juste après une résolution réussie, faites en sorte que votre serveur ne puisse plus quitter le ré-
toute requête ONS. seau, en débranchant le routeur de votre switch par exemple.
2. Refaites le même ping alors que le serveur n'accède plus à l'extérieur.
Fichiers modifiés
3. Faites un ping sur un autre nom quelconque.
fichier letcJresolv.conf sur le serveur alpha
Commandes utiles
1
'"
c. Redlreclion
Vous disposez maintenant d'un serveur capable de faire des résolutions de noms. Afin que votre
~ serveur puisse à son tour bénéficier du cache du serveur de votre fournisseur d'accès, dédarez une
- ping < redirection.
options 1 3. Créez tes enregistrements NS pour chacun des fichiers. Pour les deux zones, le serveur alpha
directory "Ivar Icache/bind"; est le serveur de nom.
4. Créez dans la zone directe un enregistrement de type A pour associer une adresse IP au ser.
/1 If there 15 a firewall between you and nameservers you want veur alpha.
Il to talk ta, you may need to flx the firewall to allow multiple
Il ports to talk. See http://www.kb.cert.org/vuls/id/800113
Résumé des commandes et résultat à l'écran
Il If your ISP provided one or more IP addresses for stable
Il nameservers, you probably want to use them as forwarders. Fichier fetclbind/pas.nel :
Il Uncomment the following block, and insert the addresses replacing
Il the all-O's placeholder.
$rrL 86400
pas.net. IN SOA alpha.pas.net. reet.pas.net. (
forwarders ( l
194.2.0.50; 604800
86400
);
2419200
86400 )
auth-nxdomaln no; , conform to RFCI035
listen-on-v6 1 any; 1; pas.net. IN NS
);
alpha.pas.net.
alpha.pas.net. IN A 192.168.200.101
Rechargement du service :
Fichier letclbind/db.192.168.200 :
alpha:/etc/bindf letc/init.d/bind9 restart $T1L 86400
Stopping domain name service : bind9. 200.168.192.in-addr.arpa. IN SOA alpha.pas.net. root.pas.net. (
Starting demain name service : bind9. l
a1pha:/etc/bind' 604800
86400
2419200
3. Création de zones personnalisées directes et Inverses 86400 l
Encouragé par ces succès, vous décidez d'utiliser votre serveur ONS pour héberger une zone
200.168.192.in-addr.arpa. lN NS alpha.pas.net.
locale. Cette zone vous permettra de créer des enregistrements qui référenceront vos ressources
locales comme les imprimantes par exemple. Pour faire les choses dans les règles de l'art, vous
décidez de créer une zone directe pas.nel et une zone inverse correspondant au réseau ~ b. Déclaration des fichiers de zone
192.168.200.0. ~ Le but est maintenant de faire savoir à voire serveur qu'il doit charger les deux fichiers de zone que
- vous venez de créer à chaque démarrage du service.
a. Création des fichiers de zones sur le serveur A ~
Vous allez créer le fichier pour la zone directe pas.net et pour la zone inverse ~ Commandeset fichiers utiles
200.168.192.ln.addr.arpa. Ces fichiers devront déclarer A comme serveur maître pour ces zones. ~
ou
l'adresse mail ducontactadministratifseraroot@pas.nel. • named.conf (named.conf.local)
"
LINUX. Préparation à la certification lPIC-2 ExamenslPI 201 et lPI 202
Page 240 Chapilre 7 Résolullon de noms ONS Page 241
- vi Manipulalions
Manipulalions t Dans votre fichier de zone directe, créez un enregistrement beta.pas.net de type A correspon-
dant à l'adresse IP du serveur beta.
t Dans letclbind/named.conf.local, créez une section zone référençant votre zone directe en tant
2. Dans votre fichier de zone directe, créez un enregistrement serveur-a de type CNAME corres-
que zone maîtresse.
pondant au FQDN alpha.pas.net.
2. Dans letclbind/named.conf.local, créez une section zone référençant votre zone inverse en tant
3. Dans votre fichier de zone directe, créez un enregistrement alfa de type CNAME correspondant
que zone maîtresse.
au nom court alpha .
3. Rechargez le service.
.•• Dans votre fichier de zone inverse, créez un enregistrement 101 de type PTR correspondant au
nom du serveur alpha.
5. Dans votre fichier de zone inverse, créez un enregistrement 102 de type PTR correspondant au
nom du serveur beta.
6. Rechargez les informations de zone.
Il
Il Do any local configuration here
Il Résumé des commandes el résullat à l'écran
Il Consider adding the 1918 zones here, if they are not used in your Enregistrements de ressources dans le fichier de zone pas.net
Il organlzation
Il include "/etc/bind/zones. ricl91S"; IN A 192.168.200.102
IN CNAME a1pha.pas.net.
zone "pas.net" ( IN CNAME alpha
type Illaster;
file "/etc/bind/db.paa.net"; Enregistrements de ressources dans le fichier de zone 200.16B.192.in-addr.arpa
);
101 IN PTR alpha.pas.net.
zone "200.168.192.in-add.r.arpa" 1 102 IN PTR beta.pas.net.
type master;
file "/.tc/bind/db.192 .168.200" ; Rechargement des informations de zone:
);
1 alpha:/etc/bind' rndc reload
server re10ad successful
Rechargement du service :
alpha: /etc/bindt
alpha:/etc/bind' tetcfinit.d/bind9 restart
Stopping dama in name service : bind9.
4. InterrogoUon du serveur
Starting demain name service
alpha:/etc/bindt
: bind9.
r Ayant à cœur de vérifier que tout se passe bien, vous conduisez quelques tests depuis la station de
travail Ubuntu.
œ Il est impératif que votre seNice redémarre sans encombre. Un tall de Ivarnog/syslog vous dira
si les zones sont bien chargées et si fe seNice a correctement démarré.
~ a. Utilisallon de nslookup
c. Création d'enregistrements
Vous décidez maintenant de créer quelques enregistrements de différentes natures pour tester le
i Commande ullle
~
fonctionnement de votre serveur. .g> - nslookup
~
Commandesetllchiers utiles Manlpulallons
Fichiers de zone
~
..,t
-----
Précisez que le serveur à interroger est alpha.
f
vi j 2. Demandez l'adresse correspondant au nom alpha.pas.net.
Q 3. Demandez l'adresse correspondant au nom serveur-a.pas.net
;; ANSWER SECTION:
Résumé des commandes el résullal à l'écran beta.pas.net. 86400 IN A 192.168.200.102
., QUESTION SECTION: J
"
LINUX. Préparation à la certlficalion LPIC.2 ExamensLPI 201 el LPI 202
Page 244 Chapllre 7 Résolulion de noms ONS Page 245