6. Serveur primaire de la zone zone(i).lan-213.stri

Il s'agit ici de configurer un serveur maître pour une nouvelle branche ou zone de l'arborescence DNS de travaux pratiques. On part de l'installation du service cache-only et on complète les fichiers de configuration.

La syntaxe des fichiers de zone n'est pas facile à maîtriser au premier abord. Il est donc nécessaire de faire appel à des patrons de fichiers de configuration. Un premier jeu de ces fichiers est disponible dans la documentation BIND 9 Administrator Reference Manual. Un second jeu, pour une configuration sécurisée, est disponible à partir du site Secure BIND Template.

Le fichier /usr/share/doc/bind9/README.Debian.gz contient des informations importantes sur l'organisation des fichiers de configuration du service. Il faut retenir les éléments suivants :

  • Les fichiers db.* qui contiennent les enregistrements sur les serveurs racine et l'interface de boucle locale sont fournis directement avec le paquet Debian. Ils sont donc susceptibles d'être mis à jour à chaque nouvelle version du paquet.

  • Le fichier de configuration principal named.conf a été éclaté en trois parties.

    named.conf

    Déclarations d'autorité sur le localhost et la diffusion en résolution directe et inverse. Liste des fichiers db.*.

    Ce fichier appartient au paquet bind9 et est susceptible d'être mis à jour. Il ne faut donc pas éditer ce fichier ou y insérer des informations de définitions de zones contrôlées par le service DNS.

    named.conf.local

    Déclarations d'autorité sur les zones administrées par le serveur ; qu'il s'agisse d'un serveur primaire ou secondaire. Ce fichier n'est pas modifié lors d'une mise à jour du paquet Debian.

    C'est donc le fichier qui doit être édité pour déclarer les zones sous le contrôle du serveur DNS.

    named.conf.options

    Paramétrage des options du service notamment du répertoire contenant les fichiers de déclaration des zones administrées /var/cache/bind/. Voir le BIND 9 Administrator Reference Manual pour obtenir la liste de ces options.

    C'est le fichier qui doit être édité pour sécuriser les accès aux enregistrements des zones sous le contrôle du serveur DNS..

Q14.

Quel est le fichier de configuration à éditer pour que le service DNS installé ait autorité sur la zone zone(i).lan-213.stri ?

Établir la correspondance entre l'organisation des fichiers de configuration du paquet Debian et les indications des documents de référence.

Le fichier /etc/bind/named.conf.local du nouveau serveur DNS doit être édité de façon à faire apparaître les zones directes et inverses sur lesquelles il a autorité. Une fois l'opération effectuée, on recharge la configuration du serveur et on consulte les journaux système. Voici une copie du fichier correspondant à la zone lab.lan-213.stri.

# cat /etc/bind/named.conf.local 
//
// Do any local configuration here
//

zone "lab.lan-213.stri" {
        type master;
        file "lab.lan-213.stri";
        };

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

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

Q15.

Quel est le fichier de configuration qui désigne le répertoire de stockage des fichiers de déclaration de zone ? Quel est ce répertoire ? Quelle est la particularité de son masque de permissions ?

Établir la correspondance entre l'organisation des fichiers de configuration du paquet Debian et les indications de la documentation de référence. Repérer le propriétaire du processus named et relever ses caractéristiques : uid, gid, répertoire utilisateur, etc.

  • C'est le fichier named.conf.options qui désigne le répertoire de travail du service de noms de domaines : /var/cache/bind/.

  • On retrouve la même information au niveau des paramètres du compte utilisateur système dédié au service.

    $ grep bind /etc/passwd
    bind:x:105:107::/var/cache/bind:/bin/false
  • Le masque de permissions donne les droits d'écriture aux membres du groupe système bind.

    $ ll /var/cache/ | grep bind
    drwxrwxr-x  2 root bind 4,0K oct.   7 21:05 bind

Q16.

À l'aide de l'exemple donné dans le document DNS HOWTO : A real domain example, créer un fichier de déclaration de la zone directe zone(i).lan-213.stri dans le répertoire adéquat.

Le fichier de zone doit comprendre :

  • Deux serveurs de noms : un primaire et un secondaire.

  • Un Mail Exchanger.

  • Trois hôtes avec des adresses IP différentes et quelques Canonical Names.

[Avertissement] Avertissement

Pour les besoins des travaux pratiques, les temps définis dans l'enregistrement SOA ont été considérablement réduits pour caractériser l'effet des notifications et des durées de maintien en cache mémoire. Ces temps permettent aussi de propager les modifications sur les enregistrements plus rapidement en incrémentant les numéros de version.

En respectant les options de configuration du paquet Debian, on créé le fichier lab.lan-213.stri dans le répertoire /var/cache/bind/.

# cat /var/cache/bind/lab.lan-213.stri
$TTL 60
@       IN      SOA     lab.lan-213.stri. postmaster.lab.lan-213.stri. (
                        2012100801      ; serial, yearmonthdayserial#
                        20              ; refresh, seconds
                        5               ; retry, seconds
                        420             ; expire, seconds
                        60 )            ; minimum, seconds 
                        NS      primary-srvr.lab.lan-213.stri.
                        NS      secondary-srvr.lab.lan-213.stri.
                        MX      10 smtp.lab.lan-213.stri.  ; Primary Mail Exchanger
                        TXT     "DNS training Lab"

rtr             A       198.51.100.1
primary-srvr    A       198.51.100.2
ns1             CNAME   primary-srvr.lab.lan-213.stri.
secondary-srvr  A       198.51.100.3
ns2             CNAME   secondary.lab.lan-213.stri.
file-srvr       A       198.51.100.5
nfs             CNAME   file-srvr.lab.lan-213.stri.
ldap            CNAME   file-srvr.lab.lan-213.stri.
smtp            A       198.51.100.10

Q17.

À l'aide de l'exemple donné dans le document DNS HOWTO : A real domain example, créer un fichier de déclaration de la zone inverse 100.51.198 dans le répertoire adéquat.

Les enregistrements (RRs) utilisés pour la résolution inverse des adresses IP doivent correspondre exactement aux décarations de la zone directe.

# cat /var/cache/bind/100.51.198 
$TTL 60
@       IN      SOA     lab.lan-213.stri. postmaster.lab.lan-213.stri. (
                        2012100801      ; serial, yearmonthdayserial#
                        20              ; refresh, seconds
                        5               ; retry, seconds
                        420             ; expire, seconds
                        60 )            ; minimum, seconds 
                        NS      primary-srvr.lab.lan-213.stri.
                        NS      secondary-srvr.lab.lan-213.stri.

1               PTR     rtr.lab.lan-213.stri.
2               PTR     primary-srvr.lab.lan-213.stri.
3               PTR     secondary-srvr.lab.lan-213.stri.
;
5               PTR     file-srvr.lab.lan-213.stri.
10              PTR     smtp.lab.lan-213.stri.

Q18.

Quel est l'outil à utiliser pour valider la syntaxe des déclarations d'enregistrement avant d'activer la nouvelle zone ?

Consulter la liste des outils fournis avec les paquets relatifs au logiciel bind9.

Le paquet bind9utils fournit plusieurs outils dont le programme named-checkzone qui permet de valider la syntaxe des fichiers de déclaration de zone.

Dans le cas des deux exemples ci-dessus, on obtient les résultats suivants.

# named-checkzone lab.lan-213.stri. /var/cache/bind/lab.lan-213.stri
zone lab.lan-213.stri/IN: loaded serial 2012100801
OK
# named-checkzone  100.51.198.in-addr.arpa. /var/cache/bind/100.51.198 
zone 100.51.198.in-addr.arpa/IN: loaded serial 2012100801
OK

Q19.

Comment activer les nouveaux enregistrements de zone ? Valider la prise en charge de ces enregistrements

Recharger la configuration du service DNS et consulter les journaux système correspondant

Le rechargement de la configuration du service ne se distingue pas des autres services Internet.

# service bind9 reload
[ ok ] Reloading domain name service...: bind9.

Voici un extrait de journal système.

# tail -100 /var/log/syslog
named[2863]: received control channel command 'reload'
named[2863]: loading configuration from '/etc/bind/named.conf'
named[2863]: reading built-in trusted keys from file '/etc/bind/bind.keys'
named[2863]: using default UDP/IPv4 port range: [1024, 65535]
named[2863]: using default UDP/IPv6 port range: [1024, 65535]
named[2863]: sizing zone task pool based on 7 zones
named[2863]: using built-in root key for view _default
named[2863]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones
named[2863]: reloading configuration succeeded
named[2863]: reloading zones succeeded
named[2863]: zone 100.51.198.in-addr.arpa/IN: zone serial (2012100801) unchanged. zone may fail to transfer to slaves.
named[2863]: zone 100.51.198.in-addr.arpa/IN: loaded serial 2012100801
named[2863]: zone 100.51.198.in-addr.arpa/IN: sending notifies (serial 2012100801)
named[2863]: zone lab.lan-213.stri/IN: zone serial (2012100801) unchanged. zone may fail to transfer to slaves.
named[2863]: zone lab.lan-213.stri/IN: loaded serial 2012100801
named[2863]: zone lab.lan-213.stri/IN: sending notifies (serial 2012100801)

Q20.

Comment valide-t-on individuellement chacun des enregistrements déclarés ?

Reprendre la séquence des tests donnés dans la Section 4, « Requêtes DNS sur les différents types d'enregistrements (Resource Records) ».