bind9のシステムアカウントの変更(Debian)

ついでにchroot化もしちゃう(詳細はbind添付のドキュメント参照)。

/etc/init.d/bind9の変更(ユーザ、chroot jailの指定)

以下のように変更

OPTS="-u nobody -t /var/lib/named"

chroot環境に必要なディレクトリを作成

(シェルで実行)

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

デバイスファイルの作成

(シェルで実行)

# 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

bindで触れるファイルのオーナを変更

(シェルで実行)

# chown -R nobody:nogroup /var/lib/named/var/*
# chown nobody:nogroup /var/lib/named/etc/bind
# chown -R nobody:nogroup /etc/bind/*   <-- 後々、bind mountする
# chown -R nobody:nogroup /var/cache/bind/*     <-- 後々、bind mountする

/etc/init.d/bind9 の変更(bind mountの位置の指定)

"start" の箇所のサービス開始前の部分に以下を追加

mount --bind /etc/bind /var/lib/named/etc/bind
mount --bind /var/cache/bind /var/lib/named/var/cache/bind

"stop" の箇所のサービス停止後の部分に以下を追加

umount /var/lib/named/var/cache/bind
umount /var/lib/named/etc/bind

syslogdの設定変更

/var/lib/named/dev/logをsyslogdが見に行くようにする。ここではsyslog-ngの設定。/etc/syslog-ng/syslog-ng.confの設定は以下のとおり

source src {
       unix-dgram("/dev/log");
       unix-dgram("/var/lib/named/dev/log");
       internal(); 
       };

起動

以下を実行し、起動したら、namedのプロセスがnobodyで実行されていれば成功。

/etc/init.d/bind9 start

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-11 (金) 00:00:19 (5093d)