Bind-Chroot-Howto(Debian)
バージョン1.3
作成者:Falko Timme
このドキュメントでは、セキュリティ上の理由から、DNSサーバーBindをDebianにインストールしてchrootjailが不足するようにする方法について説明します。
このハウツーは、実用的なガイドとして意図されています。理論的背景については説明していません。それらは、Webの他の多くのドキュメントで扱われています。
このドキュメントには、いかなる種類の保証もありません!
BindAndChrootItをインストール
apt-getinstall bind9
セキュリティ上の理由から、BINDをchrootして実行したいので、次の手順を実行する必要があります。
/etc/init.d/bind9 stop
Debian Sarge(3.1)の場合:
ファイルを編集 / etc / default / bind9 デーモンが非特権ユーザーとして実行されるように、' バインド '、 / var / lib / namedにchrootされました 。次の行を変更します: OPTS =" -u bind " OPTS ="-u bind -t / var / lib / named"と表示されます。 :
OPTIONS="-u bind -t /var/lib/named" |
Debian Woody(3.0)の場合:
スタートアップスクリプトを編集 /etc/init.d/bind9 デーモンが非特権ユーザーとして実行されるように、' 誰もフォント> '、chrooted to / var / lib / named 。行を変更します: OPTS ="" OPTS ="-u nobody-t / var / lib / named"と表示されます。 :
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# for a chrooted server: "-u nobody -t /var/lib/named"
OPTS="-u nobody -t /var/lib/named"
test -x /usr/sbin/named || exit 0
case "$1" in
start)
echo -n "Starting domain name service: named"
start-stop-daemon --start --quiet \
--pidfile /var/run/named.pid --exec /usr/sbin/named -- $OPTS
echo "."
;;
stop)
echo -n "Stopping domain name service: named"
/usr/sbin/rndc stop
echo "."
;;
reload)
/usr/sbin/rndc reload
;;
restart|force-reload)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
|
/ 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
次に、configdirectoryをから移動します / etc から / var / lib / named / etc :
mv / etc / bind / var / lib / named / etc
古い場所から新しい構成ディレクトリへのシンボリックリンクを作成します(将来、bindisがアップグレードされる際の問題を回避するため):
ln -s / var / lib / named / etc / bind / etc / bind
nullおよびrandomdevicesを作成し、ディレクトリの権限を修正します:
mknod / var / lib / named / dev / nullc 1 3
mknod / var / lib / named / dev / random c 1 8
chmod 666 / var / lib / named / dev / null / var / lib / named / dev / random
Debian Sarge(3.1)の場合:
chown -R bind:bind / var / lib / named / var / *
chown -R bind:bind / var / lib / named / etc / bind
Debian Woody(3.0)の場合:
chown -R nobody:nogroup / var / lib / named / var / *
chown -R nobody:nogroup / var / lib / named / etc / bind
起動スクリプトを変更する必要があります
#! /bin/sh
# /etc/init.d/sysklogd: start the system log daemon.
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
cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -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)
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
;;
restart)
echo -n "Stopping system log daemon: syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
echo "."
sleep 1
echo -n "Starting system log daemon: syslogd"
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo "."
;;
reload-or-restart)
if running
then
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
else
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
fi
;;
*)
echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
exit 1
esac
exit 0
|
ロギングデーモンを再起動します:
/etc/init.d/sysklogd再起動
BINDを起動し、 / var / log /syslog<を確認します。 / font> エラーの場合:
/etc/init.d/bind9 start
頑張ってください!