IFDNRG Datacenter

Setting up BIND 9 on FreeBSD in chroot Jail


cd /usr/ports/dns/bind95
make install clean
mkdir -p /var/chroot/named/etc/namedb/log
mkdir -p /var/chroot/named/dev
mkdir -p /var/chroot/named/var/run
cd /var/chroot
chown -R bind:bind named
chmod 700 named
cp /etc/localtime /var/chroot/named/etc
cp /etc/namedb/named.root /var/chroot/named/etc/namedb/
cd /var/chroot/named/dev
mknod zero c 2 12
ln -s /dev/random .
mknod null c 2 2
chmod 666 zero random null
cd /etc
mv namedb old.namedb
ln -s /var/chroot/named/etc/namedb


if you replace base with ports named, note location of named_program

/etc/rc.conf

named_enable="YES"
named_program=/"usr/sbin/named"
named_chrootdir="/var/chroot/named"
named_flags="-c /etc/namedb/named.conf"
named_pidfile="/var/run/named.pid"

At this stage rndc reload will error with: rndc: no server specified and no default

Add these entries to rndc.conf

/var/chroot/named/etc/namedb/rndc.conf

options {
        default-server  localhost;
        default-key     "dnsadmin";
};
server localhost {
        key     "dnsadmin";
};

#rndc reload
server reload successful

YAY! a chrooted and secure named! YAY!