○ Bind-chrootの設定

・設定はbind-9.11.2で行っています
・bind (namedデーモン) をchroot環境で起動します
・namedデーモンは -t オプションで指定したディレクトリを / と想定します
・必要なファイルをchrootディレクトリ下にコピーします

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○参照ファイル

パッケージの追加
最初の設定 (Router)
bindのインストール
opensslのインストール

○インストール環境

:OS CentOS 6.9
:selinux permissive
:作業
:言語 LANG=en_US.UTF-8
:ユーザー  rootで実行

・メンテナンスの場合は一般ユーザから行います



○chroot環境の作成

・既にbindが通常の設定で作動していることを前堤にします
bindのインストールを参照

○chrootディレクトリの作成

[root@venus:~]
# mkdir -p /var/chroot/bind
# cd /var/chroot/bind
[root@venus:/var/chroot/bind]
# mkdir -p dev etc var/named
# chown -R root:named .
# chown named:named var/named
# chmod 750 var/named

○既存ファイルのコピー

# cd /var/chroot/bind
[root@venus:/var/chroot/bind]
# cp -av /etc/{localtime,named.conf,bind.keys} etc/
# cp -Rav /var/named/{data,slave,master} var/named/

○devファイルの作成

・devファイルの調査

# cd ~
[root@venus:~]
# file /dev/random
/dev/random: character special (1/8)
# file /dev/urandom
/dev/urandom: character special (1/9)
# file /dev/zero
/dev/zero: character special (1/5)
# file /dev/null
/dev/null: character special (1/3)

・devファイルの作成

# cd /var/chroot/bind
[root@venus:/var/chroot/bind]
# /bin/mknod -m 666 "dev/random" c 1 8
# /bin/mknod -m 666 "dev/urandom" c 1 9
# /bin/mknod -m 666 "dev/zero" c 1 5
# /bin/mknod -m 666 "dev/null" c 1 3

○/etc/named.confの修正

・既存ファイルを削除して、/var/chroot/bindのファイルにリンクします

# cd /etc
[root@venus:/etc]
# rm named.conf
# ln -s /var/chroot/bind/etc/named.conf named.conf

○zoneファイルはそのまま使用します

zoneファイル (詳細別記)

○named.conf,named.default.zonesはそのまま使用します

named.conf (詳細別記)
named.default.zones (詳細別記)

○resolv.confファイルはそのまま使用します

○/etc/sysconfig/namedファイルの修正

・named起動スクリプトで読みこみます
・IPV4のみの接続にします

ROOTDIR=/var/chroot/bind
OPTIONS=-4

○named起動スクリプトはそのまま使用します

/etc/rc.d/init.d/named (詳細別記)

○ファイル及びディレクトリのユーザ・グループ・パーミッションの設定

・変更コマンド省略
・( )のファイルは起動後またはrndcコマンドで作られます

etc/ 755 root:root

rndc.conf 640 root:named

resolv.conf 644 root:root
var/chroot/bind/ 755 root:named

dev/ 755 root:named


null 666 root:root


random 666 root:root


urandom 666 root:root


zero 666 root:root

etc/ 755 root:named


localtime 644 root:root


named.conf 640 root:named


named.default.zones 640 root:named


bind.keys 640 root:named

var/ 755 root:named


named/ 750 named:named



(named.pid) 644 named:named



(*.mkeys) 644 named:named



(*.mkeys.jnl) 644 named:named



(session.key) 600 named:named



data/ 750 named:named




(named_stats.txt) 644 named:named




(cache_dump.db) 644 named:named




(queries.log) 644 named:named



slave/ 750 named:named



master/ 750 named:named




zone-file 640 named:named




named.cache 440 named:named

○rsyslogの修正

・rsyslogにログを出力するには/dev/logを使用します
・/dev/logはchrootの外にあるのでそのままでは利用できません
・/etc/rsyslog.confに設定を追記します
・/var/chroot/bind/dev/logが作られます

: /etc/rsyslog.conf

・省略

$AddUnixListenSocket /var/chroot/bind/dev/log

・rsyslogの再起動

# cd ~
[root@venus:~]
# service rsyslog restart

○selinuxの対応 (selinuxが有効の場合)

:新規インストールファイルのselinuxラベルを修正

[root@venus:~]
# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -Rv /var/chroot

○namedを再起動します

[root@venus:~]
# service named restart

○ Copyright(c) 528p.com All Rights Reserved.