L'objectif de cette section est de présenter les mécanismes de contrôle d'accès offerts par le service Berkeley Internet Name Domain à un niveau très modeste. On se contente ici de définir les adresses IP ou les réseaux qui sont autorisés à émettre des requêtes récursives sur le service DNS ainsi que les adresses IP ou les réseaux qui sont autorisés à émettre des requêtes de transfert de zone.
Les éléments de configuration présentés ci-après sont à appliquer sur tous les serveurs DNS quel que soit leur rôle.
On commence par la définition des listes de contrôle d'accès
dans le fichier /etc/bind/named.conf.options
. Ces listes
permettent de définir des groupes d'adresses IP ou de réseaux. Ces
groupes peuvent ensuite être réutilisés autant de fois que
nécessaire au niveau global de la configuration du service ou bien
dans les déclarations de zones.
Ici, on se limite à la définition de deux groupes.
-
Le groupe
xfer
donne la liste des adresses IP à partir desquelles les opérations de transfert de zone sont possibles. -
Le groupe
trusted
donne la liste des réseaux de confiance qui sont habilités à utiliser le service.
Ces définitions se retrouvent au début du fichier de configuration global du service DNS.
#
cat /etc/bind/named.conf.options
acl "xfer" {
localhost;
198.51.100.1;
198.51.100.3;
198.51.100.4;
};
acl "trusted" {
localhost;
198.51.100.0/27;
};
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
198.51.100.1;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
allow-transfer {
none;
};
allow-query {
trusted;
};
allow-query-cache {
trusted;
};
};
C'est dans la section options
que
l'on trouve la première utilisation des listes de contrôle d'accès.
Ce niveau est dit global puisqu'il est examiné avant les
déclarations de zone qui sont effectuées dans le fichier
/etc/bind/named.conf.local
. Dans
l'exemple donné ci-dessus, les opérations de transfert sont
interdites au niveau global et les requêtes récursives pour des
enregistrements sur lesquels le serveur n'a pas autorité ne sont
autorisées que pour les réseaux de confiance.
Il faut noter que la section forwarders
a été décomentée et configurée avec
l'adresse IP du serveur de niveau supérieur dans l'arborescence
DNS. Cette configuration est
nécessaire pour garantir la «continuité» de l'arborescence factice
de travaux pratiques. Il faut que les communications inter zones
soient effectives pour mettre en œuvre les autres services internet
qui s'appuient sur la résolution des noms.
On retrouve les listes de contrôle d'accès dans le fichier de déclaration de zone.
#
cat /etc/bind/named.conf.local
//
// Do any local configuration here
//
zone "0.200.192.in-addr.arpa" {
type master;
file "198.51.100";
allow-query {
any;
};
allow-transfer {
xfer;
};
};
zone "stri.lab" {
type master;
file "stri.lab";
allow-query {
any;
};
allow-transfer {
xfer;
};
};
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
Les choix effectués ici reviennent à autoriser sans restriction
les requêtes directes et inverses sur les enregistrements de la
zone stri.lab
. Les transferts sur les
mêmes enregistrements ne sont autorisés que pour les serveurs dont
les adresses IP figurent dans la liste xfer
.
Comme dans les sections précédentes, ces options de configuration sont à valider avec la suite des tests utilisant les différents types de requêtes à l'aide de la commande dig. À titre d'exemple, voici ce que l'on peut lire dans les journaux système lors d'une requête de transfert de zone non autorisée.
named[1524]: client 198.51.100.4#58025: zone transfer 'stri.lab/AXFR/IN' denied
Pour être plus complète, la sécurisation de la configuration devrait utiliser la notion de vue interne et externe du service de résolution des noms. Ce niveau de configuration dépasse «quelque peu» le cadre de ces travaux pratiques d'introduction. Le contenu de cette section n'est qu'une première prise de contact avec les fonctionnalités de sécurité d'un serveur DNS.