11.2. BIND
BIND
(Berkeley Internet Name Domain), le serveur DNS
inclus dans Red Hat Enterprise Linux. Elle est orientée sur la structure de ses fichiers de configuration, et décrit comment les administrer à la fois localement et à distance.
11.2.1. Zones vides
BIND
configure un certain nombre de « zones vides » afin d'empêcher des serveurs récursifs d'envoyer des requêtes inutiles vers des serveurs Internet qui ne peuvent pas les gérer (créant ainsi des retards et des réponses SERVFAIL aux clients qui les interrogent). Ces zones vides veillent à ce que les réponses NXDOMAIN immédiates et faisant autorités soient retournées à la place. L' option de configuration vide-zones-enable
détermine si oui ou non les zones vides sont créées, tandis que l'option disable-vide-zone
peut servir à désactiver une ou plusieurs zones vides dans la liste des préfixes par défaut, qui est utilisée.
11.2.2. Configuration du service «named»
named
démarre, il lit la configuration à partir des fichiers décrits dans Tableau 11.1, « Les fichiers de configuration du service «named» ».
Chemin | Description |
---|---|
/etc/named.conf | Fichier de configuration principal. |
/etc/named/ | Répertoire auxiliaire pour les fichiers de configuration inclus dans le fichier de configuration principal. |
{
et }
). Veuillez noter que si vous modifiez le fichier, le service named
ne démarrera pas. Un fichier/etc/named.conf
se présente ainsi :
statement-1 ["statement-1-name"] [statement-1-class] { option-1; option-2; option-N; }; statement-2 ["statement-2-name"] [statement-2-class] { option-1; option-2; option-N; }; statement-N ["statement-N-name"] [statement-N-class] { option-1; option-2; option-N; };
Note
chroot
. Dans ce cas, le script d'initialisation procédera au montage des fichiers de configuration ci-dessus à l'aide de la commande mount--bind
, afin que vous puissiez contrôler la configuration en dehors de cet environnement. Il n'y a pas besoin de copier quoi que ce soit dans le répertoire /var/named/chroot/
parce qu'elle est montée automatiquement. Cela simplifie la maintenance puisque vous n'avez pas besoin de prendre un soin particulier des fichiers de configuration BIND
si la commande est exécutée dans un environnement chroot
. Vous pouvez tout organiser comme vous le feriez avec BIND
si vous n'étiez pas dans un environnement chroot
.
/var/named/chroot/
si les répertoires de point de montage correspondants qui se trouvent sous /var/named/chroot/
sont vides :
/etc/named
/etc/pki/dnssec-keys
/run/named
/var/named
/usr/lib64/bind
ou/usr/lib/bind
(suivant l'architecture).
/var/named/chroot/
:
/etc/named.conf
/etc/rndc.conf
/etc/rndc.key
/etc/named.rfc1912.zones
/etc/named.dnssec.keys
/etc/named.iscdlv.key
/etc/named.root.key
Important
chroot
, vous devrez créer une copie de sauvegarde, puis modifier le fichier d'origine. Sinon, utiliser un éditeur avec le mode « edit-a-copy » désactivé. Ainsi, pour modifier le fichier de configuration de BIND, /etc/named.conf
, avec Vim quand il exécute dans un envirionnement chroot
, veuillez exécuter la commande suivante en tant qu'utilisateur root
:
~]# vim -c "set backupcopy=yes" /etc/named.conf
11.2.2.1. Installation de BIND dans un envirionnement chroot
chroot
, veuillez exécuter la commande suivante en tant qu'utilisateur root
:
~]# yum install bind-chroot
named-chroot
, commencez par vérifier que le service named
est en cours d'exécution en lançant la commande suivante :
~]$ systemctl status named
S'il est en cours d'exécution, il doit être désactivé.
chronyd
, veuillez exécuter la commande suivante en tant qu'utilisateur root
:
~]# systemctl stop named
~]# systemctl disable named
Puis, pour déactiver le service named-chroot
, veuillez exécuter les commandes suivantes en tant qu'utilisateur root
:
~]# systemctl enable named-chroot
~]# systemctl start named-chroot
named-chroot
, veuillez exécuter les commandes suivantes en tant qu'utilisateur root
:
~]# systemctl status named-chroot
11.2.2.2. Types d'arguments communs
/etc/named.conf
:
-
acl
- L'argument
acl
(Access Control List) vous permet de définir des groupes d'hôtes, de façon à ce qu'ils aient accès ou non au serveur de noms. Prend la forme suivante :acl acl-name { match-element; ... };
Le nom d'argumentacl-name correspond au nom de la liste de contrôle d'accès, et l'option match-element correspond normalement à une adresseIP
individuelle (comme10.0.1.1
) ou à une notation de réseau Classless Inter-Domain Routing (CIDR) (par exemple,10.0.1.0/24
). Pour obtenir une liste de mots clés déjà pré-définis, voir Tableau 11.2, « Listes de contrôle d'accès pré-définies ».Tableau 11.2. Listes de contrôle d'accès pré-définies Mot-clé Description any
Fait correspondre chaque adresse IP
.localhost
Fait correspondre chaque adresse IP
utilisée par le système local.localnets
Fait correspondre chaque adresse IP
sur n'importe quel réseau connecté au système local.none
Ne correspond à aucune adresse IP
.L'argumentacl
peut être particulièrement utile s'il est utilisé en conjonction à d'autres arguments tels queoptions
. Exemple 11.2, « Utilisation d'acl en conjonction aux options » définit deux listes de contrôle d'accès,black-hats
etred-hats
, et ajouteblack-hats
à la liste noire tout en donnant l'accès normalred-hats
.Exemple 11.2. Utilisation d'acl en conjonction aux options
acl black-hats { 10.0.2.0/24; 192.168.0.0/24; 1234:5678::9abc/24; }; acl red-hats { 10.0.1.0/24; }; options { blackhole { black-hats; }; allow-query { red-hats; }; allow-query-cache { red-hats; }; };
-
include
- L'argument
include
vous permet d'inclure des fichiers dans/etc/named.conf
, de façon à ce que des données pouvant être sensibles puissent être mises dans un fichier séparé sans limitation de permissions. Prend la forme suivant :include "file-name"
L'argument file-name est un nom d'argument qui se trouve dans un chemin d'accès complet de fichier.Exemple 11.3. Inclure un fichier dans /etc/named.conf
inclure "/etc/named.rfc1912.zones";
-
options
- L'argument
options
vous permet de définir des options de configuration du serveur global, ainsi que de définir les valeurs par défaut d'autres arguments. Il peut être utilisé pour spécifier l'emplacement du répertoire de travail denamed
, les types de requêtes autorisées et bien plus encore. Il prend la forme suivante :options { option; ... };
Pour obtenir une liste des possibilités d'option les plus communément utilisées, consulter le tableau ci-dessous Tableau 11.3, « Options de configuration souvent utilisées ».Tableau 11.3. Options de configuration souvent utilisées Option Description allow-query
Spécifie quels hôtes sont autorisés à interroger le serveur de noms pour les enregistrements de ressources de référence. Il accepte une liste de contrôle d'accès, une collection d'adresses IP
, ou des réseaux dans la notation CIDR. Par défaut, tous les hôtes sont autorisés.allow-query-cache
Indique quels hôtes sont autorisés à interroger le serveur de noms pour des données ne faisant pas autorité, comme les requêtes récursives. Par défaut, seuls les localhost
etlocalnets
sont autorisés.blackhole
Indique les hôtes non autorisés à interroger le serveur de noms. Cette option doit être utilisée lorsqu'un hôte particulier ou qu'réseau inonde le serveur de demandes. L'option par défaut est none
.directory
Indique un répertoire de travail pour le service named
. L'option par défaut est/var/named/
.disable-empty-zone
Utilisé pour désactiver une ou plusieurs des zones vides de la liste des préfixes par défaut qui pourraient être utilisés. Peut être spécifié dans les arguments d'options et également dans les arguments de vues. Il peut être utilisé à plusieurs reprises. dnssec-enable
Indique si l'on doit retourner aux enregistrements de ressources liées à DNSSEC. L'option par défaut est yes
.dnssec-validation
Indique si l'on doit prouver que les enregistrements de ressources sont authentiques via DNSSEC. L'option par défaut est yes
.empty-zones-enable
Contrôle si les zones vides sont créées ou non. Ne peut être spécifié que dans les arguments d'options. forwarders
Indique une liste d'adresses IP
pour les serveurs de noms vers lesquels les requêtes doivent être redirigées pour qu'elles soient résolues.forward
Indique le comportement de la directiveforwarders
. Accepte les options suivantes :first
— Le serveur va vérifier les serveurs de noms énumérés dans la directiveforwarders
avant de tenter de résoudre le nom par lui-même.only
— Quand on ne peut pas vérifier les serveurs de noms éumérés dans la directiveforwarders
, le serveur ne tentera pas de résoudre le nom par lui-même.
listen-on
Indique l'interface de réseau IPv4
sur lequel écouter les requêtes. Sur un serveurDNS
, qui agit aussi comme une passerelle, vous pouvez utiliser cette option pour répondre à des requêtes provenant d'un réseau uniquement. Toutes les interfacesIPv4
sont utilisées par défaut.listen-on-v6
Indique l'interface de réseau IPv6
sur lequel écouter pour les requêtes. Sur un serveurDNS
qui agit aussi en tant quepasserelle, vous pouvez utiliser cette option pour répondre à des requêtes provenant d'un seul réseau. Toutes les interfacesIPv6
sont utilisées par défaut.max-cache-size
Indique la quantité maximale de mémoire à utiliser pour les caches de serveurs. Lorsque la limite est atteinte, le serveur entraîne l'expiration prémature des enregistrements, alors que la limite n'est pas dépassée. Sur un serveur avec plusieurs vues, la limite s'appliquera séparément dans le cache de chaque vue. L'option par défaut est 32M
.notify
Indique si on doit notifier les serveurs de noms secondaires quand une zone est mise à jour. Accepte les options suivantes :yes
— le serveur notifiera tous les serveurs de noms secondaires.no
— le serveur ne notifiera aucun serveur de noms secondaire.master-only
— le serveur notifiera un serveur primaire pour cette zone uniquement.explicit
— le serveur ne notifiera que les serveurs secondaires spécifiés dans la listealso-notify
dans un argument de zone.
pid-file
Indique l'emplacement du fichier d'ID de processus créé par le service named
.recursion
Indique comportement de serveur récurvif ou non. L'option par défaut est yes
.statistics-file
Indique un emplacement spécifique pour les fichiers de statistiques. Le fichier /var/named/named.stats
est utilisé par défaut.Note
Le répertoire utilisé parnamed
pour les données de runtime a été déplacé de l'emplacement par défaut de BIND,/var/run/nom /
, à un nouvel emplacement/run/name/
. Ainsi, le fichier PID a été déplacé de l'emplacement par défaut/var/run/named/named.pid
au nouvel emplacement/run/named/named.pid
. De plus, le fichier de clés de session a été déplacé à/run/named/session.key
. Ces emplacements devront être précisés par les arguments de la section options. Voir Exemple 11.4, « Utiliser l'argument « option » ».Important
Pour éviter les attaques DDoS (de l'anglais, distributed denial of service), nous vous conseillons d'utiliser l'optionallow-query-cache
pour limiter l'accès aux servicesDNS
récursifs à quelques groupes de clients particuliers.Voir le BIND 9 Administrator Reference Manual référencé dans Section 11.2.8.1, « Documentation installée », et la page mannamed.conf
pour obtenir une liste complète des options.Exemple 11.4. Utiliser l'argument « option »
options { allow-query { localhost; }; listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; max-cache-size 256M; directory "/var/named"; statistics-file "/var/named/data/named_stats.txt"; recursion yes; dnssec-enable yes; dnssec-validation yes; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; };
-
zone
- L'argument
zone
vous permet de définir les caractéristiques d'une zone, comme l'emplacement de son fichier de configuration et les options spécifiques à la zone, et il peut être utilisé en remplacement aux arguments d'options
. Il prend la forme suivante :zone zone-name [zone-class] { option; ... };
L'attribut zone-name correspond au nom de la zone, zone-class correspond à la classe optionnelle de zone, et option correspond à une option d'argument dezone
comme expliqué dans Tableau 11.4, « Options couramment utilisées comme arguments de zone ».L'attribut zone-name est particulièrement important, car il correspond à la valeur par défaut assignée à la directive$ORIGIN
utilisée dans le fichier de zone correspondant qui se trouve dans le répertoire/var/named/
. Le démonnamed
ajoute le nom de la zone à n'importe quel nom de domaine incomplet répertorié dans le fichier de zone. Par exemple, si un argument dezone
définit l'espace de noms pourexample.com
, utilisezexample.com
comme zone-name pour qu'il soit placé à la fin des noms d'hôte dans le fichier de zoneexample.com
.Pour obtenir plus d'informations sur les fichiers de zone, consulter Section 11.2.3, « Conflits de fichiers ».Tableau 11.4. Options couramment utilisées comme arguments de zone Option Description allow-query
Indique quels clients sont autorisés à demander des informations sur cette zone. Cette option prévaut sur l'option globale allow-query
. Tous les demandes de requête sont autorisées par défaut.allow-transfer
Indique les serveurs secondaires qui sont autorisés à demander un transfert de l'information de zone. Toutes les requêtes de transfert sont autorisées par défaut. allow-update
Indique quels hôtes sont autorisés à mettre leurs informations à jour de façon dynamique dans leur zone. L'option par défaut est de refuser toutes les demandes de mise à jour dynamiques.Notez que vous devez être prudents lorsque vous autorisez les clients à mettre à jour des informations sur leur zone. Ne définissez pas les adressesIP
dans cette option à moins que le serveur soit dans un réseau fiable. À la place, utiliser la clé TSIG décrite dans Section 11.2.6.3, « TSIG (Transaction SIGnatures) ».file
Indique le nom du fichier qui se trouve dans le répertoire de travail named
qui contient les données de configuration de la zone.masters
Indique à partir de quelles adresses IP
on peut demander des informations de zone autoritatives. Cette option n'est utilisée que si la zone est définie en tant quetype
slave
.notify
Indique si on doit notifier les serveurs de noms secondaires quand une zone est mise à jour. Accepte les options suivantes :yes
— le serveur va notifier tous les serveurs de noms secondaires.no
— le serveur ne notifiera aucun serveur de noms secondaires.master-only
— le serveur ne notifiera le serveur primaire que pour la zone.explicit
— le serveur ne notifiera que les serveurs secondaires spécifiés dans la listealso-notify
dans l'argument de zone.
type
Indique le type de zone. Accepte les options suivantes :delegation-only
— active le statut de délégation de zones d'infrastructures comme COM, NET, ou ORG. Toute réponse reçue sans délégation implicite ou explicite sera traitée commeNXDOMAIN
. Cette option ne s'applique qu'aux niveaux TLDs (Top-Level Domain) ou pour les fichiers de zone racine pour les implémentations en cache ou récursives.forward
— transfère toutes les demandes d'informations de cette zone vers d'autres serveurs de noms.hint
— un type particulier de zone utilisée pour pointer vers les serveurs de noms racine qui résolvent les requêtes lorsqu'une zone n'est pas connue par ailleurs. Aucune configuration au-delà de la valeur par défaut n'est nécessaire dans une zonehint
(astuce).master
— indique le serveur de noms comme étant le serveur faisant autorité pour cette zone. Une zone doit être définie commemaster
si les fichiers de configuration de la zone se trouvent sur le système.slave
— désigne le serveur de noms comme serveur esclave de la zone. Le serveur maître est spécifié dans la directivemasters
.
La plupart des changements au fichier/etc/named.conf
d'un serveur de noms primaire ou secondaire consistent à ajouter, modifier ou supprimer des arguments dezone
, et seul un petit nombre d'options d'arguments dezone
est normalement utile pour qu'un serveur de noms puisse fonctionner efficacement.Dans Exemple 11.5, « Argument de zone pour un serveur de noms primaire », la zone est identifiée commeexample.com
, le type est défini sur lemaster
et le servicenamed
est chargé de lire le fichier/var/named/example.com.zone
. Il permet également à un serveur de noms secondaire (192.168.0.2
) uniquement de transférer la zone.Exemple 11.5. Argument de zone pour un serveur de noms primaire
zone "example.com" IN { type master; file "example.com.zone"; allow-transfer { 192.168.0.2; }; };
L'argument dezone
d'un serveur secondaire est légèrement différent. Le type est défini surl'esclave
, et la directive dumaster
indique au servicenamed
l'adresseIP
du serveur maître.Dans Exemple 11.6, « Un argument de zone pour le serveur de noms secondaire », le servicenamed
est configuré pour interroger le serveur principal à l'adresseIP
192.168.0.1
pour obtenir des informations sur la zoneexample.com
. L'information reçue est alors enregistrée dans le fichier/var/named/slaves/example.com.zone
. Notez que vous devez mettre toutes les zones esclave dans le répertoire/var/named/esclaves /
, sinon le service ne pourra pas transférer la zone.Exemple 11.6. Un argument de zone pour le serveur de noms secondaire
zone "example.com" { type slave; file "slaves/example.com.zone"; masters { 192.168.0.1; }; };
11.2.2.3. Autres types d'arguments
/etc/named.conf
:
-
controls
- L'argument
controls
vous permet de configurer les diverses exigences de sécurité avant d'utiliser la commanderndc
qui sert à administrer le servicenamed
.Reportez-vous à Section 11.2.4, « Comment se servir de l'utilitaire rndc » pour obtenir plus d'informations sur l'utilitairerndc
et la façon de l'utiliser. -
key
- L'argument
key
vous permet de définir une clé particulière par son nom. Les clés sont utilisées pour authentifier les différentes actions, telles que les mises à jour sécurisées ou l'utilisation de la commanderndc
. Deux options sont utilisées avec l'argumentkey
:algorithm algorithm-name
— le type d’algorithme à utiliser (par exemple,hmac-md5
).secret "key-value"
— la clé cryptée.
Reportez-vous à Section 11.2.4, « Comment se servir de l'utilitaire rndc » pour obtenir plus d'informations sur l'utilitairerndc
et la façon de l'utiliser. -
logging
- L'argument
logging
vous permet d'utiliser plusieurs types de journaux, appelés canaux. En utilisant l'optionchannel
dans l'argument, vous pouvez construire un type personnalisé du journal avec son propre nom de fichier (file
), une limite de taille (taille
), un numéro de version (version
) et un niveau d'importance (gravité
). Une fois qu'un canal (channel) personnalisé est défini, une optioncatégorie
est utilisée pour catégoriser le canal et commencer la journalisation lorsque le servicenamed
démarre à nouveau.Par défaut, le servicenamed
envoie des messages standards au démonrsyslog
, qui les place dans/var/log/messages
. Plusieurs canaux standards sont intégrés dans BIND selon les niveaux de gravité, commedefault_syslog
(qui gère les messages de journalisation d'information) etdefault_debug
(qui gère spécifiquement les messages de débogage). Une catégorie par défaut, appeléepar défaut
, utilise les canaux intégrés afin d'effectuer une journalisation normale sans aucune configuration spéciale.Personnaliser le processus de journalisation peut être un processus très détaillé, qui dépasse le cadre du présent chapitre. Pour obtenir des informations sur la création de journaux BIND personnalisés, consultez le guide BIND 9 Administrator Reference Manual référencé dans Section 11.2.8.1, « Documentation installée ». -
server
- L'argument
server
vous permet de spécifier des options qui affectent comment le servicenamed
doit répondre à des serveurs de noms éloignés, surtout au niveau notifications et transferts de zones.L'optiontransfer-format
contrôle le nombre d'enregistrements de ressources qui sont envoyées avec chaque message. Il peut êtreone-answer
(enregistrement d'une seule ressource) oumany-answers
(plusieurs enregistrements de ressources). Notez que bien l'optionmany-answers
soit plus efficace, elle n'est pas supportée par les anciennes versions de BIND. -
trusted-keys
- L'argument
trusted-keys
vous permet d'indiquer des clés publiques assorties utilisées pour sécuriser le protocoleDNS
(DNSSEC). Voir Section 11.2.6.4, « DNSSEC (DNS Security Extensions ) » pour obtenir plus d'informations à ce sujet. -
view
- L'argument
view
vous permet de créer des affichages spéciaux selon le réseau sur lequel l'hôte qui interroge le serveur se trouve. Cela permet à certains hôtes de recevoir une réponse concernant une zone tandis que les autres hôtes reçoivent des informations totalement différentes. Par ailleurs, certaines zones ne peuvent être rendues disponibles qu'aux hôtes de confiance, tandis que les hôtes non approuvés ne peuvent effectuer des requêtes que pour d'autres zones.Des vues multiples peuvent être utilisées tant que leurs noms sont uniques. L'optionmatch-clients
(correspondance client) vous permet de spécifier les adressesIP
qui s'appliquent à une vision particulière. Si l'argumentoptions
est utilisé dans une vue, il remplacera les options globales déjà configurées. Enfin, la plupart des arguments deview
contiennent plusieurs arguments dezone
qui s'appliquent à la liste dematch-clients
.Notez que l'ordre dans lequel les arguments deview
sont listés est important, car le premier argument qui correspond à une adresseIP
de client particulier sera utilisée. Pour plus d'informations sur ce sujet, voir Section 11.2.6.1, « Vues multiples ».
11.2.2.4. Balises de commentaires
/etc/named.conf
peut également contenir des commentaires. Les commentaires peuvent être ignorés par le service named
, mais peuvent se révéler utiles quand on donne des informations supplémentaires à un utilisateur. Voici des balises de commentaires valides :
//
- Tout texte se trouvant après
//
en fin de ligne est considéré comme un commentaire seulement. Exemple :notify yes; // notifie tous les serveurs de noms secondaires
#
- Tout texte se trouvant après
#
en fin de ligne est considéré comme un commentaire seulement. Exemple :notify yes; # notifie tous les serveurs de noms secondaires
/*
et*/
- Tout bloc de texte se trouvant entre
/*
et*/
est considéré comme un commentaire. Exemple :notify yes; /* notifie tous les serveurs de noms secondaires */
11.2.3. Conflits de fichiers
named
situé dans /var/named/
par défaut. Chaque fichier de zone est nommé selon l'option de fichier
dans l'argument zone
, habituellement d'une manière qui porte sur le domaine et qui identifie le fichier comme contenant des données de zone, comme example.com.zone
.
Chemin | Description |
---|---|
/var/named/ | Le répertoire de travail du service named . Le serveur de noms n'est pas autorisé à écrire dans ce répertoire. |
/var/named/slaves/ | Le répertoire de zones secondaires. Ce répertoire peut contenir des écritures du service named . |
/var/named/dynamic/ | Le répertoire pour les autres fichiers, comme les zones dynamiques DNS (DDNS) ou les clés DNSSEC gérées. Ce répertoire est accessible en écriture par le service named . |
/var/named/data/ | Le répertoire de statistiques variées et de fichiers de débogage. Ce répertoire peut contenir des écritures du service named . |
11.2.3.1. Directives communes
$
) et sont suivies par le nom de la directive, qui apparaît normalement en haut du fichier. Les directives suivantes sont couramment utilisées dans les fichiers de zone :
-
$INCLUDE
- La directive
$INCLUDE
vous permet d'inclure un autre fichier là où il se trouve, de façon à ce que les autres paramètres de configuration de zone puissent être stockés dans un fichier de zone séparé.Exemple 11.7. Utilisation de la directive $INCLUDE
$INCLUDE /var/named/penguin.example.com
-
$ORIGIN
- La directive
$ORIGIN
vous permet d'ajouter le nom de domaine aux enregistrements non qualifiés, comme ceux qui ont un nom d'hôte uniquement. Notez que l'utilisation de cette directive n'est pas nécessaire si la zone est spécifiée dans/etc/named.conf
, puisque la zone est utilisée par défaut.Dans Exemple 11.8, « Utilisation de la directive $ORIGIN », tous les noms utilisés dans les enregistrements de ressources ne se terminant pas par un point final (le signe.
) se terminent parexample.com
.Exemple 11.8. Utilisation de la directive $ORIGIN
$ORIGIN example.com.
-
$TTL
- La directive
$TTL
vous permet de définir la valeur par défaut de Time to Live (TTL) pour la zone, autrement dit, combien de temps est un enregistrement de zone est valide. Chaque enregistrement de ressource peut avoir sa propre valeur TTL, qui se substitue à la cette directive.Augmenter cette valeur permet aux serveurs de noms distants de mettre les informations de zone en cache pour une plus longue période, réduisant le nombre de requêtes pour la zone et allongeant ainsi l'intervalle de temps requis pour propager les modifications d'enregistrements de ressources.Exemple 11.9. Utilisation de la directive $TTL
$TTL 1D
11.2.3.2. Enregistrements de ressources communs
-
A
- L'enregistrement Address indique l'adresse
IP
à assigner à un nom. Prend la forme suivante :hostname IN A IP-address
Si la valeur hostname est omise, l'enregistrement pointera vers le dernier hostname indiqué.Dans Exemple 11.10, « Utiliser un enregistrement de ressource A », les requêtes deserver1.example.com
pointent vers10.0.1.3
ou10.0.1.5
.Exemple 11.10. Utiliser un enregistrement de ressource A
server1 IN A 10.0.1.3 IN A 10.0.1.5
-
CNAME
- L'enregistrement Canonical Name fait correspondre un nom à un autre. Pour cette raison, ce type d'enregistrement est souvent appelé alias record. Il prend la forme suivante :
alias-name IN CNAME real-name
Les enregistrementsCNAME
sont plus couramment utilisés pour pointer vers des services qui utilisent un schéma d'affectation de noms, commewww
pour les serveurs Web. Cependant, il existe plusieurs restrictions à leur utilisation :- Les enregistrements CNAME ne doivent pas pointer vers d'autres enregistrements CNAME, ceci, afin d'éviter des boucles à l'infini.
- Les enregistrements CNAME ne doivent pas contenir d'autres types de ressources (comme A, NS, MX, etc.), excepté pour les enregistrements DNSSEC (RRSIG, NSEC, etc.) quand la zone est signée.
- Les autres enregistrements de ressources qui pointent vers le nom de domaine complet (FQDN) d'un hôte (NS, MX, PTR) ne doivent pas pointer vers un enregistrement CNAME.
Dans Exemple 11.11, « Utiliser l'enregistrement de ressource CNAME », l'enregistrementA
relie un nom d'hôte à une adresseIP
, tandis que l'enregistrementCNAME
y fait pointer le nom d'hôte communwww
.Exemple 11.11. Utiliser l'enregistrement de ressource CNAME
server1 IN A 10.0.1.5 www IN CNAME server1
-
MX
- Le premier enregistrement Mail Exchange indique où le courrier envoyé à un espace nom particulier contrôlé par cette zone doit aller. Il est sous la forme suivante :
IN MX preference-value email-server-name
L'email-server-name est un nom de domaine complet (FQDN). La preference-value permet un classement numérique des serveurs e-mail pour un espace de noms, donnant la préférence à certains systèmes de courrier électronique sur d'autres. L'enregistrement de ressourceMX
avec la plus faible preference-value sera privilégiée au détriment des autres. Toutefois, plusieurs serveurs de messagerie peuvent posséder la même valeur pour distribuer le trafic e-mail équitablement entre eux.Dans Exemple 11.12, « Utilisation de l'enregistrement de ressource MX », le premier serveur d'emailsmail.example.com
sera préféré au serveur d'emailsmail2.example.com
pour recevoir des emails destinés au domaineexample.com
.Exemple 11.12. Utilisation de l'enregistrement de ressource MX
example.com. IN MX 10 mail.example.com. IN MX 20 mail2.example.com.
-
NS
- L'enregistrement Nameserver indique les serveurs de noms qui font autorité pour une zone particulière. Il est sous la forme suivante :
ssh username@penguin.example.net
Le nameserver-name doit correspondre à un nom complet (FQDN). Notez que quand deux noms de serveurs sont répertoriés comme étant autoritatifs pour un domaine, le fait qu'ils soient des serveurs de noms secondaires ou si l'un d'entre eux est un serveur primaire n'est pas important. Ils sont tous deux considérés comme faisant référence d'autorité.Exemple 11.13. Utiliser l'enregistrement de ressource NS
IN NS dns1.example.com. IN NS dns2.example.com.
-
PTR
- L'enregistrement Pointer pointe vers une autre partie de l'espace nom. Prend la forme suivante :
last-IP-digit IN PTR FQDN-of-system
La directive last-IP-digit correspond au dernier numéro d'une adresseIP
, et le FQDN-of-system est un nom complet (FQDN).Les enregistrementsPTR
sont principalement utilisés pour la résolution de noms inversés, car ils pointent vers des adressesIP
qui renvoient à un nom particulier. Voir Section 11.2.3.4.2, « Un fichier de zone de résolution de noms inversés » pour obtenir des enregistrementsPTR
en cours d'utilisation. -
SOA
- L'enregistrement Start of Authority donne des informations importantes en matière d'autorité sur un espace nom ou un serveur de noms. Situé juste après la directive, c'est le premier enregistrement de ressource d'un fichier de zone. Prend la forme suivante :
@ IN SOA primary-name-server hostmaster-email ( serial-number time-to-refresh time-to-retry time-to-expire minimum-TTL )
Voici les directives :- Le symbole
@
met la directive$ORIGIN
(ou le nom de zone si la directive$ORIGIN
n'est pas définie) comme espace nom défini par cet enregistrementSOA
de ressource. - La directive primary-name-server est le nom d'hôte du serveur de noms primaire qui fait autorité pour ce domaine.
- La directive hostmaster-email correspond à l'email de la personne à contacter au sujet de l'espace nom.
- La directive serial-number est une valeur numérique incrémentée à chaque fois que le fichier de zone est altéré pour indiquer qu'il est temps que le service
named
charge la zone à nouveau. - La directive time-to-refresh est une valeur numérique que les serveurs de noms secondaires utilisent pour déterminer combien de temps il faut attendre avant de demander au serveur de noms primaire si des changements ont été apportés à la zone.
- La directive time-to-retry est une valeur numérique utilisée par les serveurs de noms secondaires pour déterminer la durée à attendre avant d'émettre une demande d'actualisation, si le serveur de noms primaire ne répond pas. Si le serveur principal n'a pas répondu à une demande de rafraîchissement dans un délai spécifié dans la directive time-to-expire, les serveurs secondaires bloque d'autorité pour les demandes concernant cet espace de noms.
- Dans BIND 4 et 8, la directive minimum-TTL est la durée pendant laquelle les autres serveurs cachent les informations de la zone. Dans BIND 9, elle définit combien de temps les réponses négatives sont mises en cache. La mise en cache des réponses négatives peut être définie à un maximum de 3 heures (
3H
).
Lors de la configuration de BIND, toutes les heures sont spécifiées en secondes. Toutefois, il est possible d'utiliser des abréviations lorsque l'on indique des unités de temps autres que des secondes, comme des minutes (M
), des heures (H
), des jours (D
) ou des semaines (W
). Tableau 11.6, « Secondes comparées à d'autres unités de temps » affiche une durée en secondes et un temps équivalent dans un autre format.Tableau 11.6. Secondes comparées à d'autres unités de temps Secondes Autres unités de temps 60 1M
1800 30M
3600 1H
10800 3H
21600 6H
43200 12H
86400 1D
259200 3D
604800 1W
31536000 365D
Exemple 11.14. Utilisation d'un enregistrement de ressource SOA
@ IN SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day
11.2.3.3. Balises de commentaires
named
, mais peuvent s'avérer utiles pour fournir des renseignements supplémentaires à l'utilisateur. N'importe quel texte après le point-virgule, en fin de ligne, est considéré comme un commentaire. Exemple :
604800 ; expire après 1 semaine
11.2.3.4. Exemple d'utilisation
11.2.3.4.1. Fichier de zone simple
SOA
.
Exemple 11.15. Fichier de zone simple
$ORIGIN example.com. $TTL 86400 @ IN SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; ; IN NS dns1.example.com. IN NS dns2.example.com. dns1 IN A 10.0.1.1 IN AAAA aaaa:bbbb::1 dns2 IN A 10.0.1.2 IN AAAA aaaa:bbbb::2 ; ; @ IN MX 10 mail.example.com. IN MX 20 mail2.example.com. mail IN A 10.0.1.5 IN AAAA aaaa:bbbb::5 mail2 IN A 10.0.1.6 IN AAAA aaaa:bbbb::6 ; ; ; This sample zone file illustrates sharing the same IP addresses ; for multiple services: ; services IN A 10.0.1.10 IN AAAA aaaa:bbbb::10 IN A 10.0.1.11 IN AAAA aaaa:bbbb::11 ftp IN CNAME services.example.com. www IN CNAME services.example.com. ; ;
dns1.example.com
et dns2.example.com
, et sont liés aux adressess 10.0.1.1
et 10.0.1.2
IP
respectivement en utilisant l'enregistrement A
.
MX
pointent vers mail
et mail2
via les enregistrementsA
. Comme ces noms ne se terminent pas par un point final, le domaine $ORIGIN
est placé à leur suite, ce qui les étend à mail.example.com
et à mail2.example.com
.
www.example.com
(WWW), pointent vers les serveurs qui conviennent, en utilisant l'enregistrement CNAME
.
zone
dans /etc/named.conf
sous la forme suivante :
zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; };
11.2.3.4.2. Un fichier de zone de résolution de noms inversés
IP
d'espace nom particulier en nom complet (FDNQ). Ce fichier ressemble beaucoup à un fichier de zone standard, sauf que les enregistrements de ressources PTR
sont utilisés pour faire correspondre les adresses IP
à un nom de domaine complet comme le montre Exemple 11.16, « Un fichier de zone de résolution de noms inversés ».
Exemple 11.16. Un fichier de zone de résolution de noms inversés
$ORIGIN 1.0.10.in-addr.arpa. $TTL 86400 @ IN SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; @ IN NS dns1.example.com. ; 1 IN PTR dns1.example.com. 2 IN PTR dns2.example.com. ; 5 IN PTR server1.example.com. 6 IN PTR server2.example.com. ; 3 IN PTR ftp.example.com. 4 IN PTR ftp.example.com.
IP
qui vont de 10.0.1.1
à 10.0.1.6
pointent vers le nom de domaine complet correspondant.
zone
dans le fichier /etc/named.conf
sous la forme suivante :
zone "1.0.10.in-addr.arpa" IN { type master; file "example.com.rr.zone"; allow-update { none; }; };
zone
standard, à l'exception du nom de zone. Notez qu'une zone de résolution de noms inversés nécessite que les trois premiers blocs de l'adresse IP
soient inversés, suivis par .in-addr.arpa
. Cela permet à l'unique bloc de numéros IP
utilisé dans le fichier de zone de résolution de noms inversés d'être associé à la zone.
11.2.4. Comment se servir de l'utilitaire rndc
rndc
est un outil de ligne de commandes qui vous permet d'administrer le service named
, à la fois localement et à partir d'une machine éloignée. Son usage est le suivant :
rndc
[option...] command [command-option]
11.2.4.1. Configuration de l'utilitaire
named
doit être configuré pour écouter le port sélectionné (953
par défaut), et une clé identique doit être utilisée par le service et l'utilitaire rndc
à la fois.
rndc
est située dans /etc/rndc.conf
. Si le fichier n'existe pas, l'utilitaire utilisera la clé située dans /etc/rndc.key
, qui a été générée automatiquement pendant l'installation par la commande rndc-confgen-a
.
named
est configuré à l'aide de l'argument controls
qui se trouve dans le fichier de configuration /etc/named.conf
comme décrit dans Section 11.2.2.3, « Autres types d'arguments ». À moins que cet argument soit présent, seules les connexions de l'adresse de loopback ( 127.0.0.1
) seront autorisées, et la clé qui se trouve dans /etc/rndc.key
sera utilisée.
Important
root
soit autorisé à lire le fichier /etc/rndc.key
:
~]# chmod o-rwx /etc/rndc.key
11.2.4.2. Vérifier le statut de service
named
, utiliser la commande suivante :
~]# rndc status
version: 9.7.0-P2-RedHat-9.7.0-5.P2.el6
CPUs found: 1
worker threads: 1
number of zones: 16
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
11.2.4.3. Configuration en ligne de commandes
~]# rndc reload
server reload successful
reload
, comme par exemple :
~]# rndc reload localhost
zone reload up-to-date
~]# rndc reconfig
Note
DNS
Dynamique (DDNS), veillez à exécuter la commande freeze
pour commenncer :
~]# rndc freeze localhost
thaw
pour autoriser DDNS
à nouveau, et charger la zone à nouveau.
~]# rndc thaw localhost
The zone reload and thaw was successful.
11.2.4.4. Mise à jour des clés de zone
sign
. Exemple :
~]# rndc sign localhost
auto-dnssec
doit être définie sur maintain
dans l'argument de la zone. Exemple :
zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; auto-dnssec maintain; };
11.2.4.5. Activation de la validation DNSSEC
root
:
~]# rndc validation on
~]# rndc validation off
options
décrit dans Section 11.2.2.2, « Types d'arguments communs » pour obtenir des informations sur la façon de configurer cette option dans /etc/named.conf
.
11.2.4.6. Activation de la journalisation des requêtes
root
:
~]# rndc querylog
status
décrite dans Section 11.2.4.2, « Vérifier le statut de service ».
11.2.5. Utilisation de l'utilitaire dig
dig
est un outil de ligne de commandes qui vous permet de faire des consultations DNS
et de déboguer une configuration de serveur de noms. Son usage est le suivant :
dig
[@server] [option...] name type
11.2.5.1. Rechercher un serveur de noms
dig
name NS
dig
est utilisé pour afficher les serveurs de noms de example.com
.
Exemple 11.17. Exemple de recherche de serveur de noms
~]$ dig example.com NS
; <<>> DiG 9.7.1-P2-RedHat-9.7.1-2.P2.fc13 <<>> example.com NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57883
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;example.com. IN NS
;; ANSWER SECTION:
example.com. 99374 IN NS a.iana-servers.net.
example.com. 99374 IN NS b.iana-servers.net.
;; Query time: 1 msec
;; SERVER: 10.34.255.7#53(10.34.255.7)
;; WHEN: Wed Aug 18 18:04:06 2010
;; MSG SIZE rcvd: 77
11.2.5.2. Recherche d'une adresse IP
IP
assignée à un domaine en particulier, utiliser la commande sous la forme suivante :
dig
name A
dig
est utilisé pour afficher l'adresse IP
de example.com
.
Exemple 11.18. Exemple de recherche d'adresse IP
~]$ dig example.com A
; <<>> DiG 9.7.1-P2-RedHat-9.7.1-2.P2.fc13 <<>> example.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4849
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 155606 IN A 192.0.32.10
;; AUTHORITY SECTION:
example.com. 99175 IN NS a.iana-servers.net.
example.com. 99175 IN NS b.iana-servers.net.
;; Query time: 1 msec
;; SERVER: 10.34.255.7#53(10.34.255.7)
;; WHEN: Wed Aug 18 18:07:25 2010
;; MSG SIZE rcvd: 93
11.2.5.3. Recherche d'un nom d'hôte
IP
particulière, utiliser la commande sous la forme suivante :
dig
-x
address
dig
est utilisé pour afficher le nom d'hôte assigné à 192.0.32.10
.
Exemple 11.19. Exemple de recherche de nom d'hôte
~]$ dig -x 192.0.32.10
; <<>> DiG 9.7.1-P2-RedHat-9.7.1-2.P2.fc13 <<>> -x 192.0.32.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29683
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 6
;; QUESTION SECTION:
;10.32.0.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
10.32.0.192.in-addr.arpa. 21600 IN PTR www.example.com.
;; AUTHORITY SECTION:
32.0.192.in-addr.arpa. 21600 IN NS b.iana-servers.org.
32.0.192.in-addr.arpa. 21600 IN NS c.iana-servers.net.
32.0.192.in-addr.arpa. 21600 IN NS d.iana-servers.net.
32.0.192.in-addr.arpa. 21600 IN NS ns.icann.org.
32.0.192.in-addr.arpa. 21600 IN NS a.iana-servers.net.
;; ADDITIONAL SECTION:
a.iana-servers.net. 13688 IN A 192.0.34.43
b.iana-servers.org. 5844 IN A 193.0.0.236
b.iana-servers.org. 5844 IN AAAA 2001:610:240:2::c100:ec
c.iana-servers.net. 12173 IN A 139.91.1.10
c.iana-servers.net. 12173 IN AAAA 2001:648:2c30::1:10
ns.icann.org. 12884 IN A 192.0.34.126
;; Query time: 156 msec
;; SERVER: 10.34.255.7#53(10.34.255.7)
;; WHEN: Wed Aug 18 18:25:15 2010
;; MSG SIZE rcvd: 310
11.2.6. Fonctionnalités avancées de BIND
named
pour fournir des services de résolution de nom ou pour agir comme autorité pour un domaine particulier. Cependant, la version BIND 9 a un certain nombre de fonctionnalités avancées qui permettent un service DNS
plus sûr et plus efficace.
Important
11.2.6.1. Vues multiples
DNS
de la part de clients se trouvant à l'extérieur du réseau local, tout en permettant aux requêtes des clients à l'intérieur du réseau local.
view
dans le fichier de configuration /etc/named.conf
. Utilisez l'option de match-clients
pour faire correspondre les adresses IP
ou des réseaux dans leur ensemble et leur donner des options spéciales et les données de zone.
11.2.6.2. IXFR (Incremental Zone Transfers)
11.2.6.3. TSIG (Transaction SIGnatures)
IP
standard d'autorisation de transfert, dans la mesure où les attaquants auraient non seulement besoin d'avoir accès à l'adresse IP
de la zone de transfert, mais il faudrait aussi qu'ils connaissent la clé secrète.
Important
IP
basée adresse uniquement.
11.2.6.4. DNSSEC (DNS Security Extensions )
DNS
, le déni d'existence authentifié, et l'intégrité des données. Quand un domaine particulier est marqué comme sécurisé, la réponse SERVFAIL
est retournée pour chaque enregistrement de ressource qui échoue au niveau validation.
dig
comme décrit dans Section 11.2.5, « Utilisation de l'utilitaire dig ». Options utiles : + dnssec
(demande d'enregistrements de ressources liées à DNSSEC en définissant le DNSSEC OK bit), + cd
(indique au serveur de noms récursif de ne pas valider la réponse), et + bufsize = 512
(modifie la taille du paquet à 512 octets pour pouvoir passer à travers certains pare-feux).
11.2.6.5. IPv6 (Internet Protocol version 6)
AAAA
, et la directive listen-on-v6
décrite dans Tableau 11.3, « Options de configuration souvent utilisées ».
11.2.7. Erreurs communes à éviter
- Utiliser les points virgule et les crochets courbes correctement
- Un point virgule ou un crochet courbe qui ne correspond pas, dans le fichier
/etc/named.conf
, peut empêcher le démarrage du servicenamed
. - Utiliser le point final (le signe
.
) correctement. - Dans les fichiers de zone, un point virgule en fin de nom de domaine indique un nom de domaine complet. Si vous l'omettez, le service
named
ajoutera le nom de la zone ou la valeur correspondant à$ORIGIN
pour compléter le nom de domaine. - Incrémenter le numéro de série lorsque vous modifiez un fichier de zone
- Si le numéro de série n'est pas incrémenté, le serveur de noms primaire aura la nouvelle information correcte, mais les noms de serveurs ne seront jamais notifiés du changement, et ne tenteront pas de réactualiser leurs données dans cette zone.
- Fichier de configuration
- Si un parefeu bloque des connexions d'un service
named
à d'autres serveurs de noms, la pratique conseillée est de modifier les paramètres de configuration du parefeu.Avertissement
L'utlisation d'un port sourceUDP
pour les recherchesDNS
représente un danger potentiel de sécurité car cela permettrait à un attaquant de conduire des attaques d'empoisonnement de cache plus facilement. Pour éviter cela, par défaut,DNS
envoie un port éphémère. Configurer votre parefeu pour autoriser les demandes aléatoires sortantes de ports sourceUDP
. Une plage de1024
à65535
est utilisée par défaut.
11.2.8. Ressources supplémentaires
11.2.8.1. Documentation installée
/usr/share/doc/bind-version/
- Le répertoire principal contenant la documentation la plus récente. Le répertoire contient le manuel BIND 9 Administrator Reference Manual au format HTML et PDF, qui détaille les ressources BIND nécessaires, comment configurer différents types de serveurs de noms, comment effectuer l'équilibrage des charges et autres sujets avancés.
/usr/share/doc/bind-version/sample/etc/
- Le répertoire contient des exemples de fichiers de configuration
named
.
rndc(8)
- La page man de l'utilitaire de contrôle de serveur de noms
rndc
contient une documentation sur son utilisation. named(8)
- La page man du serveur de noms de domaine Internet
named
qui contient une documentation sur un assortiement d'arguments pouvant être utilisés pour contrôler le démon du serveur de noms BIND. lwresd(8)
- Page man pour le démon du programme de résolution léger
lwresd
(de l'anglais lightweight resolver daemon), qui contient la documentation sur le démon et sur son utilisation. named.conf(5)
- Page man avec une liste complète d'options disponibles dans le fichier de configuration de
named
. rndc.conf(5)
- Page man comprenant une liste d'options disponibles pour le fichier de configuration de
rndc
.
11.2.8.2. Ressources en ligne
- https://access.redhat.com/site/articles/770133
- Un article de la base de connaissances de Red Hat sur l'exécution de BIND dans un environnement
chroot
, comprenant les différences par rapport à Red Hat Enterprise Linux 6. - https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/
- Le guide Red Hat Enterprise Linux 7 Security Guide a une bonne section sur DNSSEC.
- https://www.icann.org/namecollision
- ICANN FAQ on domain name collision.