IT pass HikiWiki - [EPA]bindのインストールと設定 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
== ビルドとインストール
配布サイト ((<URL:http://www.isc.org/index.pl?/sw/bind/index.php>))
からアーカイブを取得.
[ika ~/] > cd /usr/local/src
[ika /usr/local/src/] > sudo -s
[root@ika /usr/local/src/] # tar xfz bind-9.4.1-P1.tar.gz
[root@ika /usr/local/src/] # cd bind-9.4.1-P1
[root@ika /usr/local/src/bind-9.4.1-P1/] # mkdir /usr/local/bind
[root@ika /usr/local/src/bind-9.4.1-P1/] # ./configure --prefix=/usr/local/bind
OpenSSL のバージョンが古いのでセキュリティ脆弱性があると言われるが,
Debian の場合はバージョン番号が古いままでもセキュリティパッチは
当たっているので, --disable-openssl-version-check を指定して
バージョンチェックを無視する.
なお, 具体的に修正された脆弱性一覧は
((<URL:http://www.debian.org/security/>)) にある.
configure 時に指摘されている CAN-2002-0659, CAN-2006-4339,
CVE-2006-2937, CVE-2006-2940は全て対処されていることを確認.
[root@ika /usr/local/src/bind-9.4.1-P1/] # ./configure --prefix=/usr/local/bind \
--disable-openssl-version-check
[root@ika /usr/local/src/bind-9.4.1-P1/] # make
[root@ika /usr/local/src/bind-9.4.1-P1/] # make install
インストールした Bind には host 等のコマンドも同梱されているため,
既にインストールされている bind9-host, libbind9-0, dnsutils は削除する.
[root@ika /usr/local/src/bind-9.4.1-P1/] # apt-get remove bind9-host libbind9-0 dnsutils
== インストールした実行ファイルへのパスの設定
インストールされた Bind の実行ファイル群へパスを通す.
((<[EPA]パスの設定>)) の((* <一般ユーザ用コマンドのパス> *))
に ((*/usr/local/bind/bin*)) を,
((* <システム管理用コマンドのパス> *))
に ((*/usr/local/bind/sbin*)) を追加する.
== インストールしたマニュアルへのパスの設定
/etc/manpath.config に以下の行を追加する.
詳しくは ((<[EPA]パスの設定#man 関連のパスの設定>)) を参照のこと.
MANDATORY_MANPATH /usr/local/bind/man
MANPATH_MAP /usr/local/bind/bin /usr/local/bind/man
MANPATH_MAP /usr/local/bind/sbin /usr/local/bind/man
MANDB_MAP /usr/local/bind/man /usr/local/bind/man
== ユーザとグループ追加
Bind の実行ユーザとして bind ユーザを作成する.
vipw(1)して以下の行を追加.
bind:x:53:53:Bind Sandbox:/usr/local/bind/var:/bin/false
vipw -s して以下の行を追加.
bind:!:13749:0:99999:7:::
同様に bind グループを追加する.
vigr して以下の行を追加.
bind:x:53:
vigr -s して以下の行を追加.
bind:*::
== パーミッション設定
pid ファイル置場を bind 所有にする.
[root@ika /usr/local/bind/etc/namedb/] # chown bind:bind ../../var/run
== ゾーンファイルの用意
/usr/local/bind/etc/namedb に tide の /etc/namedb を移植.
とりあえずの変更方針は, ahs は tide が担当, epa は ika が担当,
逆引きは ika が担当.
== 起動テスト, 他のDNSサーバの設定変更
起動テスト
[root@ika /usr/local/bind/etc/namedb/] # /usr/local/bind/sbin/named -u bind \
-c /usr/local/bind/etc/namedb/named.conf
gradis 側の /etc/named.conf の epa.scitec.kobe-u.ac.jp. ゾーンの
master の IP を ika の IP(133.30.109.22) に変更.
/var/named/scitec.zone の epa.scitec.kobe-u.ac.jp. ゾーンの
ネームサーバを ika に変更. つまり
ns.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.30
を
ns.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.22
に変更.
/etc/init.d/named reload を実行して再読み込み.
tide の /etc/named.conf から epa ゾーン, 逆引きゾーンのエントリを削除.
/etc/rc.d/named restart で再起動.
== 上流 DNS サーバの設定
scitec.kobe-u.ac.jp. の名前空間の権限を持っている
gradis.scitec.kobe-u.ac.jp にログイン.
/etc/named.conf に epa.scitec.kobe-u.ac.jp ゾーンのエントリ作成.
以下の行を追加.
gradis:/etc/named.conf
----ここから----
zone "epa.scitec.kobe-u.ac.jp" {
type slave;
file "slave/epa.zone";
masters {
133.30.109.30;
};
allow-query { any; };
};
----ここまで----
/var/named/scitec.zone に以下を記述し, epa.scitec.kobe-u.ac.jp. ドメインの権限をtideに委譲.
gradis:/var/named/scitec.zone
----ここから----
epa.scitec.kobe-u.ac.jp. IN NS ns.epa.scitec.kobe-u.ac.jp.
ns.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.30
epa.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
----ここまで----
シリアル番号のincrementを忘れずに.
逆引きしたとき, tide 以外には epa ドメインの名前が返るようにする.
逆引き時に参照するネームサーバは ika.epa.scitec.kobe-u.ac.jp にする.
gradis 側の逆引きゾーンファイルを書き換えて,
これまで ns.ahs.scitec.kobe-u.ac.jp に委譲していた
0/25の権限を ns.epa.scitec.kobe-u.ac.jp に委譲する.
gradis:/var/named/master/ahs/ahs.rev (抜粋)
----ここから----
0/25 3600 IN NS ns.epa.scitec.kobe-u.ac.jp.
----ここまで----
== ゾーンファイルの作成と編集
tide 側で epa.scitec.kobe-u.ac.jp ゾーンのエントリを作成.
tide:/etc/namedb/named.conf
----ここから----
zone "epa.scitec.kobe-u.ac.jp" {
type master;
file "epa.zone";
allow-query { any ; } ;
allow-transfer {
133.30.104.1 ;
} ;
};
----ここまで----
epa.zone ファイルを ahs.zone ファイルにコピーして ahs の部分を epa
に書き換える.
逆引きのゾーンファイル ahs.rev を epa な名前を返すように書き換える.
tide だけは ahs の名前を返すようにしておく.
また, 逆引きの権限は ns.epa.scitec.kobe-u.ac.jp に持たせるように変更.
ファイルフォーマットチェック
> named-checkconf /etc/namedb/named.conf
> named-checkzone epa.scitec.kobe-u.ac.jp /etc/namedb/epa.zone
zone epa.scitec.kobe-u.ac.jp/IN: loaded serial 2007102300 OK
> named-checkzone 0/25.109.30.133.in-addr.arpa /etc/namedb/ahs.rev
zone 0/25.109.30.133.in-addr.arpa/IN: loaded serial 2007102300 OK
tide の named を再起動
> sudo /etc/rc.d/named restart
gradis の named を再起動
> sudo /etc/rc.d/init.d/named restart
tide 上で正引き逆引きのチェック, 外部の計算機から同様にチェック.
0/25.109.30.133.in-addr.arpa. について gradis は slave サーバになって
いないので, tide の逆引きゾーンファイル /etc/namedb/ahs.rev には
0/25.109.30.133.in-addr.arpa IN NS gradis.scitec.kobe-u.ac.jp. なる行
は存在してはいけない. これまで入っていた(ようだ)ので, 削除した.
== rndc の設定
rndcコマンドは zone のリロード, 再起動, コンフィグファイルの読み直しな
どを行うコマンドである.
まず, rndc-confgenを実行することで, 必要な設定ファイルの「もと」を生成する.
[root@ika /usr/local/bind/etc/] # rndc-confgen
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "pB+gVs89sX7BDN60+ki1Ow==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "pB+gVs89sX7BDN60+ki1Ow==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
secret "pB+gVs89sX7BDN60+ki1Ow=="; は認証に用いる共通鍵(パスワード)を表す.
従って, ここに挙げているのは例であって, 実際の設定とは異なる.
コメントアウトされていないところを /usr/local/bind/etc/rndc.conf とし
て保存する. コメントされている箇所のうち, controls 以下を named.conf
の末尾に追記する. また, 次の一行を named.conf に挿入.
include "/usr/local/bind/etc/rndc.key";
コメントされている箇所のうち, key で始まる4行を
/usr/local/bind/etc/rndc.key に保存する.
パーミッションを以下のように設定する.
[root@ika /usr/local/bind/etc/] # chgrp -R epaadmin .
[root@ika /usr/local/bind/etc/] # chown bind rndc.key
[root@ika /usr/local/bind/etc/] # chmod 600 rndc.key
[root@ika /usr/local/bind/etc/] # chmod 640 rndc.conf
[root@ika /usr/local/bind/etc/] # chown bind namedb/named.conf
[root@ika /usr/local/bind/etc/] # chmod 640 namedb/named.conf
== rndcのテスト
epaadmin グループに所属するユーザはrndcコマンドによって named プロセスを
制御できる. 以下の例では, ユーザ murashin は epaadmin グループに所属し
ている.
[root@ika /usr/local/bind/etc/] # rndc reload
server reload successful
[murashin@ika /usr/local/bind/etc/] > rndc reload
server reload successful
このように出力されれば(書いてある通り)成功である.
== 起動スクリプトを用意する
サーバの起動時に自動的に起動させるため, bind の起動スクリプト
を用意する.
Debian の bind パッケージに含まれる/etc/init.d/bind を元に
起動スクリプトを bind 用に多少書き換えたものが
((<bind|URL:../epa/bind/bind>))
から入手できる. このファイルを /etc/init.d/bind にコピーし,
以下のようにパーミッションを設定する.
# wget http://epa.scitec.kobe-u.ac.jp/~itpass/epa/bind/bind
# cp bind /etc/init.d/
# chown root:root /etc/init.d/bind
# chmod 755 /etc/init.d/bind
なお, この実行ファイル bind には冒頭部に named や rndc,
named.conf ファイルのパスを設定する箇所がある.
インストールの場所が変更される場合にはこれも変更すること.
ランレベルごとに bind の動作を設定する.
# update-rc.d bind defaults
サーバを再起動し, 起動時に bind が起動することを確認する.
== ビルドとインストール
配布サイト ((<URL:http://www.isc.org/index.pl?/sw/bind/index.php>))
からアーカイブを取得.
[ika ~/] > cd /usr/local/src
[ika /usr/local/src/] > sudo -s
[root@ika /usr/local/src/] # tar xfz bind-9.4.1-P1.tar.gz
[root@ika /usr/local/src/] # cd bind-9.4.1-P1
[root@ika /usr/local/src/bind-9.4.1-P1/] # mkdir /usr/local/bind
[root@ika /usr/local/src/bind-9.4.1-P1/] # ./configure --prefix=/usr/local/bind
OpenSSL のバージョンが古いのでセキュリティ脆弱性があると言われるが,
Debian の場合はバージョン番号が古いままでもセキュリティパッチは
当たっているので, --disable-openssl-version-check を指定して
バージョンチェックを無視する.
なお, 具体的に修正された脆弱性一覧は
((<URL:http://www.debian.org/security/>)) にある.
configure 時に指摘されている CAN-2002-0659, CAN-2006-4339,
CVE-2006-2937, CVE-2006-2940は全て対処されていることを確認.
[root@ika /usr/local/src/bind-9.4.1-P1/] # ./configure --prefix=/usr/local/bind \
--disable-openssl-version-check
[root@ika /usr/local/src/bind-9.4.1-P1/] # make
[root@ika /usr/local/src/bind-9.4.1-P1/] # make install
インストールした Bind には host 等のコマンドも同梱されているため,
既にインストールされている bind9-host, libbind9-0, dnsutils は削除する.
[root@ika /usr/local/src/bind-9.4.1-P1/] # apt-get remove bind9-host libbind9-0 dnsutils
== インストールした実行ファイルへのパスの設定
インストールされた Bind の実行ファイル群へパスを通す.
((<[EPA]パスの設定>)) の((* <一般ユーザ用コマンドのパス> *))
に ((*/usr/local/bind/bin*)) を,
((* <システム管理用コマンドのパス> *))
に ((*/usr/local/bind/sbin*)) を追加する.
== インストールしたマニュアルへのパスの設定
/etc/manpath.config に以下の行を追加する.
詳しくは ((<[EPA]パスの設定#man 関連のパスの設定>)) を参照のこと.
MANDATORY_MANPATH /usr/local/bind/man
MANPATH_MAP /usr/local/bind/bin /usr/local/bind/man
MANPATH_MAP /usr/local/bind/sbin /usr/local/bind/man
MANDB_MAP /usr/local/bind/man /usr/local/bind/man
== ユーザとグループ追加
Bind の実行ユーザとして bind ユーザを作成する.
vipw(1)して以下の行を追加.
bind:x:53:53:Bind Sandbox:/usr/local/bind/var:/bin/false
vipw -s して以下の行を追加.
bind:!:13749:0:99999:7:::
同様に bind グループを追加する.
vigr して以下の行を追加.
bind:x:53:
vigr -s して以下の行を追加.
bind:*::
== パーミッション設定
pid ファイル置場を bind 所有にする.
[root@ika /usr/local/bind/etc/namedb/] # chown bind:bind ../../var/run
== ゾーンファイルの用意
/usr/local/bind/etc/namedb に tide の /etc/namedb を移植.
とりあえずの変更方針は, ahs は tide が担当, epa は ika が担当,
逆引きは ika が担当.
== 起動テスト, 他のDNSサーバの設定変更
起動テスト
[root@ika /usr/local/bind/etc/namedb/] # /usr/local/bind/sbin/named -u bind \
-c /usr/local/bind/etc/namedb/named.conf
gradis 側の /etc/named.conf の epa.scitec.kobe-u.ac.jp. ゾーンの
master の IP を ika の IP(133.30.109.22) に変更.
/var/named/scitec.zone の epa.scitec.kobe-u.ac.jp. ゾーンの
ネームサーバを ika に変更. つまり
ns.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.30
を
ns.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.22
に変更.
/etc/init.d/named reload を実行して再読み込み.
tide の /etc/named.conf から epa ゾーン, 逆引きゾーンのエントリを削除.
/etc/rc.d/named restart で再起動.
== 上流 DNS サーバの設定
scitec.kobe-u.ac.jp. の名前空間の権限を持っている
gradis.scitec.kobe-u.ac.jp にログイン.
/etc/named.conf に epa.scitec.kobe-u.ac.jp ゾーンのエントリ作成.
以下の行を追加.
gradis:/etc/named.conf
----ここから----
zone "epa.scitec.kobe-u.ac.jp" {
type slave;
file "slave/epa.zone";
masters {
133.30.109.30;
};
allow-query { any; };
};
----ここまで----
/var/named/scitec.zone に以下を記述し, epa.scitec.kobe-u.ac.jp. ドメインの権限をtideに委譲.
gradis:/var/named/scitec.zone
----ここから----
epa.scitec.kobe-u.ac.jp. IN NS ns.epa.scitec.kobe-u.ac.jp.
ns.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.30
epa.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
----ここまで----
シリアル番号のincrementを忘れずに.
逆引きしたとき, tide 以外には epa ドメインの名前が返るようにする.
逆引き時に参照するネームサーバは ika.epa.scitec.kobe-u.ac.jp にする.
gradis 側の逆引きゾーンファイルを書き換えて,
これまで ns.ahs.scitec.kobe-u.ac.jp に委譲していた
0/25の権限を ns.epa.scitec.kobe-u.ac.jp に委譲する.
gradis:/var/named/master/ahs/ahs.rev (抜粋)
----ここから----
0/25 3600 IN NS ns.epa.scitec.kobe-u.ac.jp.
----ここまで----
== ゾーンファイルの作成と編集
tide 側で epa.scitec.kobe-u.ac.jp ゾーンのエントリを作成.
tide:/etc/namedb/named.conf
----ここから----
zone "epa.scitec.kobe-u.ac.jp" {
type master;
file "epa.zone";
allow-query { any ; } ;
allow-transfer {
133.30.104.1 ;
} ;
};
----ここまで----
epa.zone ファイルを ahs.zone ファイルにコピーして ahs の部分を epa
に書き換える.
逆引きのゾーンファイル ahs.rev を epa な名前を返すように書き換える.
tide だけは ahs の名前を返すようにしておく.
また, 逆引きの権限は ns.epa.scitec.kobe-u.ac.jp に持たせるように変更.
ファイルフォーマットチェック
> named-checkconf /etc/namedb/named.conf
> named-checkzone epa.scitec.kobe-u.ac.jp /etc/namedb/epa.zone
zone epa.scitec.kobe-u.ac.jp/IN: loaded serial 2007102300 OK
> named-checkzone 0/25.109.30.133.in-addr.arpa /etc/namedb/ahs.rev
zone 0/25.109.30.133.in-addr.arpa/IN: loaded serial 2007102300 OK
tide の named を再起動
> sudo /etc/rc.d/named restart
gradis の named を再起動
> sudo /etc/rc.d/init.d/named restart
tide 上で正引き逆引きのチェック, 外部の計算機から同様にチェック.
0/25.109.30.133.in-addr.arpa. について gradis は slave サーバになって
いないので, tide の逆引きゾーンファイル /etc/namedb/ahs.rev には
0/25.109.30.133.in-addr.arpa IN NS gradis.scitec.kobe-u.ac.jp. なる行
は存在してはいけない. これまで入っていた(ようだ)ので, 削除した.
== rndc の設定
rndcコマンドは zone のリロード, 再起動, コンフィグファイルの読み直しな
どを行うコマンドである.
まず, rndc-confgenを実行することで, 必要な設定ファイルの「もと」を生成する.
[root@ika /usr/local/bind/etc/] # rndc-confgen
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "pB+gVs89sX7BDN60+ki1Ow==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "pB+gVs89sX7BDN60+ki1Ow==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
secret "pB+gVs89sX7BDN60+ki1Ow=="; は認証に用いる共通鍵(パスワード)を表す.
従って, ここに挙げているのは例であって, 実際の設定とは異なる.
コメントアウトされていないところを /usr/local/bind/etc/rndc.conf とし
て保存する. コメントされている箇所のうち, controls 以下を named.conf
の末尾に追記する. また, 次の一行を named.conf に挿入.
include "/usr/local/bind/etc/rndc.key";
コメントされている箇所のうち, key で始まる4行を
/usr/local/bind/etc/rndc.key に保存する.
パーミッションを以下のように設定する.
[root@ika /usr/local/bind/etc/] # chgrp -R epaadmin .
[root@ika /usr/local/bind/etc/] # chown bind rndc.key
[root@ika /usr/local/bind/etc/] # chmod 600 rndc.key
[root@ika /usr/local/bind/etc/] # chmod 640 rndc.conf
[root@ika /usr/local/bind/etc/] # chown bind namedb/named.conf
[root@ika /usr/local/bind/etc/] # chmod 640 namedb/named.conf
== rndcのテスト
epaadmin グループに所属するユーザはrndcコマンドによって named プロセスを
制御できる. 以下の例では, ユーザ murashin は epaadmin グループに所属し
ている.
[root@ika /usr/local/bind/etc/] # rndc reload
server reload successful
[murashin@ika /usr/local/bind/etc/] > rndc reload
server reload successful
このように出力されれば(書いてある通り)成功である.
== 起動スクリプトを用意する
サーバの起動時に自動的に起動させるため, bind の起動スクリプト
を用意する.
Debian の bind パッケージに含まれる/etc/init.d/bind を元に
起動スクリプトを bind 用に多少書き換えたものが
((<bind|URL:../epa/bind/bind>))
から入手できる. このファイルを /etc/init.d/bind にコピーし,
以下のようにパーミッションを設定する.
# wget http://epa.scitec.kobe-u.ac.jp/~itpass/epa/bind/bind
# cp bind /etc/init.d/
# chown root:root /etc/init.d/bind
# chmod 755 /etc/init.d/bind
なお, この実行ファイル bind には冒頭部に named や rndc,
named.conf ファイルのパスを設定する箇所がある.
インストールの場所が変更される場合にはこれも変更すること.
ランレベルごとに bind の動作を設定する.
# update-rc.d bind defaults
サーバを再起動し, 起動時に bind が起動することを確認する.