1. Introduction

Ceci est le guide pratique de BIND 8 en environnement restreint ; allez voir Section 1.3, « Où ? » pour le site principal, qui contient la dernière version de ce document. Nous supposons que vous savez déjà configurer et utiliser BIND (le serveur de Noms de Domaines Internet de Berkeley). Si ce n'est pas le cas, je vous recommande de lire d'abord le Guide pratique du DNS (DNS HOWTO). Nous supposons également que vous avez une connaissance suffisante de compilation et d'installation d'un logiciel sur votre système de type Unix.

1.1. Objet de ce document

Ce document décrit quelques précautions de sécurité supplémentaires que vous pouvez prendre quand vous installez BIND. Il explique comment configurer BIND de sorte qu'il réside dans un environnement restreint, ceci signifiant qu'il ne peut pas voir ou avoir accès aux fichiers à l'extérieur de sa propre arborescence. Nous le configurerons également pour l'exécuter en tant qu'utilisateur non-root.

Le principe d'un environnement restreint est assez simple. Lorsque vous exécutez BIND (ou tout autre processus) dans un environnement restreint (c'est-à-dire avec une racine différente du système de fichier — d'où le nom de la commande utilisée « chroot », c'est-à-dire, en anglais, « changer la racine »), le processus ne peut tout simplement pas voir les autres parties du système de fichiers en dehors de son environnement. Par exemple, dans ce document, nous placerons BIND pour être exécuté en environnement restreint dans le répertoire /chroot/named. Cependant, pour BIND, le contenu de ce répertoire apparaîtra comme étant /, la racine. Il ne pourra accéder à rien d'autre en dehors de ce répertoire. Vous avez probablement déjà rencontré un environnement restreint auparavant, si vous avez déjà fait un ftp vers un serveur de fichier public.

1.2. Pourquoi ?

Le principe lors de l'exécution de BIND dans un environnement restreint est de limiter la quantité d'accès que n'importe quel individu malveillant pourrait gagner en exploitant une des vulnérabilités de BIND. C'est pour la même raison que nous exécutons BIND en tant qu'utilisateur non-root.

Ceci devrait être considéré comme un supplément aux précautions normales de sécurité (exécution de la dernière version, utilisation des listes de contrôle d'accès, et cætera), et non pas comme une solution de remplacement de ces dernières.

Si la sécurité du DNS vous intéresse, quelques autres produits pourraient également vous intéresser. Compiler BIND avec StackGuard peut être une bonne idée pour assurer une plus grande protection. Son utilisation est simple ; elle équivaut à utiliser un gcc standard. Il existe aussi une alternative sécurisée à BIND, DNScache, écrit par Dan Berstein. Dan est l'auteur de qmail et DNScache semble en suivre la même philosophie.

1.3. Où ?

La dernière version française de ce document est toujours disponible sur le site du projet Traduc.org : http://www.traduc.org/docs/howto/lecture/Chroot-BIND8-HOWTO.html.

La dernière version originale de ce document est toujours disponible à partir du site web des Utilisateurs de Linux et de Logiciel Libre de Regina, Saskatchewan, Canada (LOSURS) à l'adresse http://www.losurs.org/docs/howto/Chroot-BIND8.html.

Il existe maintenant une traduction japonaise de ce document, maintenue par . Elle est disponible à l'adresse http://www.linux.or.jp/JF/JFdocs/Chroot-BIND8-HOWTO.html.

BIND est disponible à l'adresse de l'Internet Software Consortium à l'adresse http://www.isc.org/bind.html. Au moment de la publication de ce document, la version courante de BIND 8 est 8.2.4. BIND 9.x est maintenant sorti, et il fonctionne depuis un petit moment. Vous pouvez envisager de mettre à jour vers cette version, la procédure d'environnement restreint y est vraiment beaucoup plus simple et propre. Si vous exploitez BIND 9, alors utilisez le « guide pratique d'utilisation de BIND en environnement restreint » qui doit être disponible au même emplacement que ce document.

Gardez à l'esprit que des trous de sécurité sont connus dans toutes les versions de BIND 8 inférieure à 8.2.3, assurez-vous que vous exécutez bien la dernière version !

1.4. Comment ?

J'ai écrit ce document à partir de mon expérience du paramétrage de BIND dans un environnement restreint. Dans mon cas, j'avais déjà un BIND en exploitation sous la forme d'un paquetage provenant de ma distribution Linux. Je vais supposer que beaucoup d'entre vous êtes dans la même situation, que vous allez juste récupérer et modifier les fichiers de configuration provenant de votre installation actuelle de BIND, puis désinstaller le paquetage avant d'installer le nouveau. Ne désinstallez pas le paquetage tout de suite ; nous pourrions avoir besoin d'y récupérer quelques fichiers.

Si vous n'êtes pas dans ce cas, vous devriez néanmoins être capable de comprendre ce document. La seule différence est que, lorsque je copie un fichier existant, vous devrez d'abord le créer vous-même. Le guide pratique du DNS peut être utile pour cela.

1.5. Mise en garde

Cette procédure a fonctionné pour moi, sur mon système. Vous pouvez avoir à la modifier. Ce n'est qu'une façon d'aborder la question ; il y a d'autres moyens d'arriver à la même solution (cependant l'approche restera la même). Il s'est juste trouvé que ma première tentative a fonctionné, et j'ai donc tout noté.

À ce jour, mon expérience de BIND se limite à l'installation sur des serveurs Linux. Cependant, la plupart des instructions dans ce document doivent être facilement applicables à d'autres saveurs d'UNIX, et j'essaierai d'indiquer les éventuelles différences dont j'ai la connaissance.