Tutorial rapide pour chrooter bind9. Le but est d’avoir un répertoire /var/lib/named ou se va se chrooter bind9. La configuration va se faire dans le etc relatif au chroot et les zones seront stockées dans le var relatif au chroot. Les manipulation sont faites sur une Debian Lenny. Créons d’abord les répertoires :
mkdir /var/lib/named
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir /var/lib/named/var/log
mkdir -p /var/lib/named/var/run/bind/run
On déplace la configuration :
mv /etc/bind /var/lib/named/etc
On fait un lien au cas on voudrait facilement le déchrooté (et aussi pour les upgrades) :
ln -s /var/lib/named/etc/bind /etc/bind
On se crée un socket en écoute dans le chroot pour rsyslog. Dans /etc/rsyslog.conf :
$AddUnixListenSocket /var/lib/named/dev/log
On crée les devices dans le chroot
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
On fixe les permissions :
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind
Enfin dans /etc/defaults/bind9 :
OPTIONS="-u bind -t /var/lib/named"
Un restart de rsyslogd et bind et c’est parti !
A quoi servent les périphériques /dev/null et /dev/random ?
Ne faudrait il pas définir un /etc/localtime pour avoir les bons timestamps dans les logs ?