Serveri DNS

apt-get install bind9

Për të rritur nivelin e sigurisë, BIND do të ekzekutohet në "birucë" (chrooted), prandaj duhet të veprojmë si në vazhdim:

/etc/init.d/bind9 stop

Ndryshojmë file /etc/default/bind9 në menyrë që deamon të funksionojë si përdorues pa të drejta 'bind', chroot-uar në /var/lib/named.
Ndryshojmë rreshtin: OPTS="-u bind" në menyrë që të lexohet OPTS="-u bind -t /var/lib/named":

OPTIONS="-u bind -t /var/lib/named"

Krijojmë directories e duhura nën /var/lib:

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

dhe lëvizim directory me konfigurimin nga /etc/var/lib/named/etc:

mv /etc/bind /var/lib/named/etc

Për të shmangur problemet që mund të lindin gjatë përditësimeve të mundëshme të mëvonshme, krijojmë një lidhje simbolike midis directory të konfigurimit dhe pozicionit të vjetër:

ln -s /var/lib/named/etc/bind /etc/bind

Krijojmë devices "null" dhe "random" dhe sistemojmë të drejtat e kartelave:

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
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

Gjithashtu na duhet të ndryshojmë script-in e nisjes së szsklogd (/etc/init.d/sysklogd) në menyrë që të vazhdojmë regjistrimin e mesazheve të rendësishme të log tek logs e sistemit.

Ndryshojmë rreshtin SYSLOGD="" në menyrë që të lexojë: SYSLOGD="-a /var/lib/named/dev/log":

#! /bin/sh
# /etc/init.d/sysklogd: start the system log daemon.

### BEGIN INIT INFO
# Provides:             syslog
# Required-Start:       $local_fs $network $time
# Required-Stop:        $local_fs $network $time
# Default-Start:        2 3 4 5
# Default-Stop:         S 0 1 6
# Short-Description:    System logger
### END INIT INFO

PATH=/bin:/usr/bin:/sbin:/usr/sbin

pidfile=/var/run/syslogd.pid
binpath=/sbin/syslogd

test -x $binpath || exit 0
# Options for start/restart the daemons
#   For remote UDP logging use SYSLOGD="-r"
#SYSLOGD="-a /var/lib/named/dev/log"
create_xconsole()
{  
if [ ! -e /dev/xconsole ]; then        mknod -m 640 /dev/xconsole p    else        chmod 0640 /dev/xconsole    fi    chown root:adm /dev/xconsole}running(){    # No pidfile, probably no daemon present    #    if [ ! -f $pidfile ]    then        return 1    fi    pid=`cat $pidfile`    # No pid, probably no daemon present    #    if [ -z "$pid" ]    then        return 1    fi    if [ ! -d /proc/$pid ]    then        return 1    fi    cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`    # No syslogd?    #    if [ "$cmd" != "$binpath" ]    then        return 1    fi    return 0}case "$1" in  start)    echo -n "Starting system log daemon: syslogd"    create_xconsole    start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD    echo "."    ;;  stop)    echo -n "Stopping system log daemon: syslogd"    start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile    echo "."    ;;  reload|force-reload)    echo -n "Reloading system log daemon: syslogd"    start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile    echo "."    ;;  restart)    echo -n "Restarting system log daemon: syslogd"    start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile    sleep 1    start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD    echo "."    ;;  reload-or-restart)    if running    then        echo -n "Reloading system log daemon: syslogd"        start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile    else        echo -n "Restarting system log daemon: syslogd"        start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD    fi    echo "."    ;;  *)    echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"    exit 1esacexit 0

Rinisim daemon e sistemit të regjistrimit të mesazheve:

/etc/init.d/sysklogd restart

Nisim BIND, dhe kontrollojmë /var/log/syslog për ndonjë gabim të mundshëm:

/etc/init.d/bind9 start