La doc de base est le Chroot-BIND HOWTO (version anglaise seulement) : ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Chroot-BIND-HOWTO
Si vous avez installé BIND à partir des sources en prenant les options par défaut, ça va être très simple (sinon ça ne sera que simple).
On commence par créer le répertoire dédié, par exemple :
mkdir /chrooted-named
Puis on crée le groupe named et l'utilisateur named :
groupadd named
adduser [group named, répertoire /chrooted-named, shell /bin/false]
Pour un serveur tout simple ça va avoir cet aspect là en fonctionnement :
/chrooted-named|
|-dev|
| |-log=
| |-null
| |-random
|
|-etc|
| |-Paris
| |-localtime@
| |-named.conf
|
|-var|-named|
|-mondomaine.hosts
|-mondomaine.rev
|-localhost.rev
|-named.pid
cd /chrooted-named
mkdir dev etc var
mkdir var/named
mknod /chrooted-named/dev/null c 1 3
mknod /chrooted-named/dev/random c 1 8
chmod 666 /chrooted-named/dev/{null,random}
cp -p /usr/share/zoneinfo/Europe/Paris etc/
cd etc
ln -s Paris localtime
Dans les scripts de démarrage (par exemple /etc/rc.d/rc.inet2 pour une
Slackware), repérez la ligne du style
/usr/sbin/syslogd
et remplacez-la par :
/usr/sbin/syslogd -a /chrooted-named/dev/log
Puis relancez syslogd avec ce nouveau paramètre :
killall syslogd
/usr/sbin/syslogd -a /chrooted-named/dev/log
Recopiez vos anciens fichiers de configuration, par exemple
/etc/named.conf vers /chrooted-named/etc/named.conf
et par exemple également
/var/named/* vers /chrooted-named/var/named
À affiner selon les besoins :
chown -R root.root /chrooted-named
chown -R named.named /chrooted-named/var/named
Même pas besoin de recompiler BIND (enfin ça dépendra de vos options
et répertoires initiaux)...
Une petite ligne dans un script de démarrage :
/usr/local/sbin/named -u named -t /chrooted-named/
On arrête (délicatement) l'ancien et on lance le nouveau :
killall named
/usr/local/sbin/named -u named -t /chrooted-named/
Dernière mise à jour : vendredi 3 janvier 2003