* 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