IT pass HikiWiki - [Memo2008][EPA]ika構築作業ログ(塩原,島津) Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<EPAサーバ構築ドキュメント>)) へ戻る]
== 作業前の準備
DNS サーバの設定作業では,
上位ドメインを管理する別マシン (例: 2008 年 7 月現在, scitec.kobe-u.ac.jp は gradis.scitec.kobe-u.ac.jp が管理している) にログインして
ファイルを書き換えることがある.
予めそのマシンのアカウントおよび root になれる権限を取得していると
スムーズに作業が行える.
また, 研究室や研究科などの組織の変更の影響を受けやすい
(以下の構築ドキュメントにも古い設定が残っている)
ので,
去年の設定をそのまま引き継げないことがある.
予め計算機セミナーや研究室ミーティングなどで変更内容を確認しておくとよい.
== ビルドとインストール
$ sudo -s
# cd /usr/local/src
配布サイト ((<URL:http://www.isc.org/index.pl?/sw/bind/index.php>))
からアーカイブを取得. 今回(10/17) 入手したbind のバージョン は bind-9.4.2-P2である.
# wget http://ftp.isc.org/isc/bind9/9.4.2-P2/bind-9.4.2-P2.tar.gz
# tar zxfv bind-9.4.2-P2.tar.gz
# cd bind-9.4.2-P2
# mkdir /usr/local/bind
# ./configure --prefix=/usr/local/bind
OpenSSL のバージョンが古いのでセキュリティ脆弱性がある, という
警告が出る. ここで一旦 apt-get update && apt-get upgrade してアップデートを行った.
configure 時に警告されたセキュリティ脆弱性 CAN-2002-0659, CAN-2006-4339,
CVE-2006-2937, CVE-2006-2940 が解決されているかどうかを確認した.
これらの番号は脆弱性識別番号と呼ばれ, CVE Educational Board と呼ぶ機関が個々の脆弱性に対して与えている登録番号である. 正式登録している CVE と, その候補として評価中の CAN とに分けられる. CAN は CVE に変わる事があるので, CVE で同じ番号が見つかればよい場合がある.
セキュリティ脆弱性の解決に関する記述は,
/usr/share/doc/openssl/ にあるDebian パッケージの OpenSSL に関する開発ログファイル
changelog.gz または chagelog.Debian.gz にまとめられている.
changelog.gz にて CVE-2002-0659, CVE-2006-4339 の解決に関する記述を,
chagelog.Debian.gz にて CVE-2006-2937, CVE-2006-2940 の解決に関する記述を確認.
警告された脆弱性がすべて解決されている事を確認したので,
--disable-openssl-version-check を指定して
バージョンチェックを無視する.
# ./configure --prefix=/usr/local/bind \
--disable-openssl-version-check
# make
# make install
インストールした bind には host 等のコマンドも同梱されているため,
既にインストールされている bind9-host, libbind9-0, dnsutils は削除する.
# apt-get remove bind9-host libbind9-0 dnsutils
== インストールした実行ファイルへのパスの設定
インストールされた bind の実行ファイル群へパスを通す.
((<[EPA2008]パスの設定>)) の((* <一般ユーザ用コマンドのパス> *))
に ((*/usr/local/bind/bin*)) を,
((* <システム管理用コマンドのパス> *))
に ((*/usr/local/bind/sbin*)) を追加する.
=== sh, bash
/etc/profile の末尾に以下を記述 (今回はすでに書き込まれていた.)
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
/etc/bash.bashrc の先頭部分を以下のように追記.
# add PATH for local installed softwares
PATH="${PATH}:/usr/local/bind/bin:/usr/local/apache2/bin\
:/var/qmail/bin:/usr/local/ucspi-tcp/bin:/usr/local/ezmlm/bin"
PATH="${PATH}:/usr/local/gate/bin"
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
PATH="${PATH}:/usr/local/bind/sbin:/usr/local/gate/sbin"
fi
=== csh, tcsh
/etc/csh.cshrc の先頭部分を以下のように追記.
# add PATH for local installed softwares
set path = ($path /usr/local/bin /usr/bin /bin /usr/\
local/apache2/bin /usr/local/bind/bin)
set path = ($path /usr/local/bin /usr/bin /bin /usr/local/gate/bin)
# add PATH for local installed softwares (for root)
if ( "`id -u`" == 0 ) then
set path = ($path /usr/local/sbin /usr/sbin \
/sbin /usr/local/gate/sbin /usr/local/bind/sbin)
endif
=== zsh
/etc/zsh/zshenv の末尾部分を以下のように追記.
# add PATH for local installed softwares
export PATH=/usr/local/apache2/bin:/usr/local/bind/bin:$PATH
export PATH=/usr/local/gate/bin:$PATH
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
export PATH=/usr/local/gate/sbin:/usr/local/bind/sbin:$PATH
fi
== インストールしたマニュアルへのパスの設定
/etc/manpath.config に以下の行を追加する.
詳しくは ((<[EPA2008]パスの設定#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 所有にする.
# chown bind:bind /usr/local/bind/var/run
== ゾーンファイルの用意
new の /usr/local/bind/etc/namedb に
old の /usr/local/bind/etc/namedb を移植.
=== 2008 年度 DNS の設定
gradis にログインして, 下の二つのファイルを修正.
(要 gradis アカウント, ルート権限)
* gradis.epa.scitec.kobe-u.ac.jp:/etc/named.conf
zone "epa.scitec.kobe-u.ac.jp" {
type slave;
file "slave/epa.zone";
masters {
133.30.109.22;
};
allow-query { any; };
};
* gradis.epa.scitec.kobe-u.ac.jp:/var/named/scitec.zone
; epa
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.22
epa.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
=== ika の namedb の変更
ika.epa.scitec.kobe-u.ac.jp:/usr/local/bind/etc/namedb/ 内のファイルを書き換える.
* epa.zone
MX, www, ns, mail, @ のレコードを以下のごとく変更.
(epa.zone ファイルのうち, 変更した行のみを抜粋)
IN MX 10 ika.epa.scitec.kobe-u.ac.jp.
;
ns IN A 133.30.109.22
mail IN A 133.30.109.22
www IN CNAME ika.epa.scitec.kobe-u.ac.jp.
@ IN A 133.30.109.22
== 上流 DNS サーバの設定項目の確認
=== epa.scitec.kobe-u.ac.jp ゾーンなどのエントリ確認
scitec.kobe-u.ac.jp を担当している gradis.scitec.kobe-u.ac.jp の
/etc/named.conf に epa.scitec.kobe-u.ac.jp ゾーンのエントリがあるかを確認.
gradis.scitec.kobe-u.ac.jp:/etc/named.conf に以下の記述を確認.
zone "ahs.scitec.kobe-u.ac.jp" {
type slave;
file "slave/ahs.zone";
masters {
133.30.109.22;
};
allow-query { any; };
};
zone "epa.scitec.kobe-u.ac.jp" {
type slave;
file "slave/epa.zone";
masters {
133.30.109.22;
};
allow-query { any; };
};
gradis.scitec.kobe-u.ac.jp:/var/named/scitec.zone にて以下の記述を確認.
;; for 133.30.109.22 domain
; ahs
ahs.scitec.kobe-u.ac.jp. IN NS ika.epa.scitec.kobe-u.ac.jp.
ika.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.22
ahs.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
; epa
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.22
epa.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
; aoe
aoe.scitec.kobe-u.ac.jp. IN A 133.30.109.22
; cps
cps.scitec.kobe-u.ac.jp. IN A 133.30.109.22
/etc/named.conf 内で "109.30.133" を検索して以下の記述を確認.
zone "109.30.133.in-addr.arpa" {
type master;
file "master/epa/epa.rev";
allow-query { any; };
};
逆引きゾーンファイル /var/named/master/epa/epa.rev にて,以下により
0/25 の権限が ns.epa.scitec.kobe-u.ac.jp にあることを確認.
0/25 IN NS ns.epa.scitec.kobe-u.ac.jp.
== ゾーンファイルの確認
ika:/usr/local/bind/etc/namedb/ahs.rev にて以下のことを確認.
* 逆引きの権限は ns.epa.scitec.kobe-u.ac.jp が持っている.
@ IN NS ns.epa.scitec.kobe-u.ac.jp.
* 逆引きレコードで 22 は ika のドメインを返す.
22 IN PTR ika.epa.scitec.kobe-u.ac.jp.
== rndc の設定
rndc コマンドは zone のリロード, 再起動, コンフィグファイル読み直しを行うコマンドである.
rndc-confgen を実行して設定ファイルの材料を生成する.
root@ika:/usr/local/bind/etc/namedb# rndc-confgen
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "SZN/mCIMkFJmFJ/98jlcMQ==";
};
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 "SZN/mCIMkFJmFJ/98jlcMQ==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
5 行目, およびコメント行4 行目の secret "SZN/mCIMkFJmFJ/98jlcMQ==";
は認証に用いる共通鍵(パスワード) を表す. ここに記されているのは例であり,
実際に生成されるファイルの内容とは異なる.
rndc-confgen の出力を /usr/local/bind/etc/rndc.conf として保存.
# rndc-confgen > /usr/local/bind/etc/rndc.conf
生成されたファイル rndc.conf を1〜3 のように操作する.
1. コメント行 controls 以下を named.conf の末尾に貼り付け(無論# をはずす),
その下に以下の一文を加える.
include "/usr/local/bind/etc/rndc.key";
2. コメント行内の key で始まる4 行を /usr/local/bind/etc/rndc.key として保存する.
3. rndc.conf のコメント部分を削除する.
生成したファイルのパーミッションを以下のように変更する.
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
== 起動テスト
# /usr/local/bind/sbin/named -u bind\
-c /usr/local/bind/etc/namedb/named.conf
/var/log/syslog および ps aux をみて bind の起動を確認.
== ファイルフォーマットチェック
root@tako:/usr/local/bind/etc# named-checkconf\
/usr/local/bind/etc/namedb/named.conf
何も出力されないので OK.
== rndc のテスト
root@tako:/usr/local/bind/etc# rndc reload
server reload successful
成功.
※ epaadmin グループに所属するユーザなら上記のコマンドを実行可能である.
== 起動スクリプトの用意
サーバの起動時に自動的に bind を起動させるためのスクリプトを用意する.
# cd /etc/init.d
# wget http://epa.scitec.kobe-u.ac.jp/~itpass/epa/bind/bind
# chown root:root /etc/init.d/bind
# chmod 755 /etc/init.d/bind
この実行ファイル bind には, 先頭に named, rndc, named.conf ファイルのパスを設定する記述がある. インストールする場所を変更する場合は, この記述も変更する必要がある.
ランレベルごとに bind の動作を設定する.
# update-rc.d bind defaults
Adding system startup for /etc/init.d/bind ...
/etc/rc0.c/K20bind -> ../init.d/bind
/etc/rc1.c/K20bind -> ../init.d/bind
/etc/rc6.c/K20bind -> ../init.d/bind
/etc/rc2.c/S20bind -> ../init.d/bind
/etc/rc3.c/S20bind -> ../init.d/bind
/etc/rc4.c/S20bind -> ../init.d/bind
/etc/rc5.c/S20bind -> ../init.d/bind
再起動後,以下のコマンドで bind が起動している事を確認.
$ ps auxw | grep named
bind 2791 0.0 0.0 9344 6764 ? Ss 11:51 0:00 /usr/local /bind/sbin/named -c /usr/local/bind/etc/namedb/named.conf -u bind
chikuwa6 3053 0.0 0.0 3580 700 pts/0 D+ 11:53 0:00 grep named
bind を停止.
root@ika:/etc/init.d# /etc/init.d/bind stop
Stopping domain name service: named.
サーバ起動時に bind を起動しないように設定する.
root@ika:/etc/init.d# update-rc.d -f bind remove
Removing any system startup links for /etc/init.d/bind ...
/etc/rc0.d/K20bind
/etc/rc1.d/K20bind
/etc/rc2.d/S20bind
/etc/rc3.d/S20bind
/etc/rc4.d/S20bind
/etc/rc5.d/S20bind
/etc/rc6.d/K20bind
もう一度再起動して, 今度は bind が起動しない事を確認した.
root@ika:~# ps auxw | grep named
root 3054 0.0 0.0 3580 700 pts/0 D+ 12:25 0:00 grep named
== 参考資料
* DNS の仕組み解説 (初学者向け)
* ((<3 Minutes Networking|URL:http://www5e.biglobe.ne.jp/~aji/3min/index.html>))
* OpenSSL のセキュリティ脆弱性
* ((<opensslのセキュリティアップデート|URL:http://www.jp.redhat.com/support/errata/RHSA/RHSA-2006-0695J.html>))
* ((<米国政府のぜい弱性対策に関する取り組み|URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20071015/284567/>))
[((<EPAサーバ構築ドキュメント>)) へ戻る]
[((<EPAサーバ構築ドキュメント>)) へ戻る]
== 作業前の準備
DNS サーバの設定作業では,
上位ドメインを管理する別マシン (例: 2008 年 7 月現在, scitec.kobe-u.ac.jp は gradis.scitec.kobe-u.ac.jp が管理している) にログインして
ファイルを書き換えることがある.
予めそのマシンのアカウントおよび root になれる権限を取得していると
スムーズに作業が行える.
また, 研究室や研究科などの組織の変更の影響を受けやすい
(以下の構築ドキュメントにも古い設定が残っている)
ので,
去年の設定をそのまま引き継げないことがある.
予め計算機セミナーや研究室ミーティングなどで変更内容を確認しておくとよい.
== ビルドとインストール
$ sudo -s
# cd /usr/local/src
配布サイト ((<URL:http://www.isc.org/index.pl?/sw/bind/index.php>))
からアーカイブを取得. 今回(10/17) 入手したbind のバージョン は bind-9.4.2-P2である.
# wget http://ftp.isc.org/isc/bind9/9.4.2-P2/bind-9.4.2-P2.tar.gz
# tar zxfv bind-9.4.2-P2.tar.gz
# cd bind-9.4.2-P2
# mkdir /usr/local/bind
# ./configure --prefix=/usr/local/bind
OpenSSL のバージョンが古いのでセキュリティ脆弱性がある, という
警告が出る. ここで一旦 apt-get update && apt-get upgrade してアップデートを行った.
configure 時に警告されたセキュリティ脆弱性 CAN-2002-0659, CAN-2006-4339,
CVE-2006-2937, CVE-2006-2940 が解決されているかどうかを確認した.
これらの番号は脆弱性識別番号と呼ばれ, CVE Educational Board と呼ぶ機関が個々の脆弱性に対して与えている登録番号である. 正式登録している CVE と, その候補として評価中の CAN とに分けられる. CAN は CVE に変わる事があるので, CVE で同じ番号が見つかればよい場合がある.
セキュリティ脆弱性の解決に関する記述は,
/usr/share/doc/openssl/ にあるDebian パッケージの OpenSSL に関する開発ログファイル
changelog.gz または chagelog.Debian.gz にまとめられている.
changelog.gz にて CVE-2002-0659, CVE-2006-4339 の解決に関する記述を,
chagelog.Debian.gz にて CVE-2006-2937, CVE-2006-2940 の解決に関する記述を確認.
警告された脆弱性がすべて解決されている事を確認したので,
--disable-openssl-version-check を指定して
バージョンチェックを無視する.
# ./configure --prefix=/usr/local/bind \
--disable-openssl-version-check
# make
# make install
インストールした bind には host 等のコマンドも同梱されているため,
既にインストールされている bind9-host, libbind9-0, dnsutils は削除する.
# apt-get remove bind9-host libbind9-0 dnsutils
== インストールした実行ファイルへのパスの設定
インストールされた bind の実行ファイル群へパスを通す.
((<[EPA2008]パスの設定>)) の((* <一般ユーザ用コマンドのパス> *))
に ((*/usr/local/bind/bin*)) を,
((* <システム管理用コマンドのパス> *))
に ((*/usr/local/bind/sbin*)) を追加する.
=== sh, bash
/etc/profile の末尾に以下を記述 (今回はすでに書き込まれていた.)
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
/etc/bash.bashrc の先頭部分を以下のように追記.
# add PATH for local installed softwares
PATH="${PATH}:/usr/local/bind/bin:/usr/local/apache2/bin\
:/var/qmail/bin:/usr/local/ucspi-tcp/bin:/usr/local/ezmlm/bin"
PATH="${PATH}:/usr/local/gate/bin"
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
PATH="${PATH}:/usr/local/bind/sbin:/usr/local/gate/sbin"
fi
=== csh, tcsh
/etc/csh.cshrc の先頭部分を以下のように追記.
# add PATH for local installed softwares
set path = ($path /usr/local/bin /usr/bin /bin /usr/\
local/apache2/bin /usr/local/bind/bin)
set path = ($path /usr/local/bin /usr/bin /bin /usr/local/gate/bin)
# add PATH for local installed softwares (for root)
if ( "`id -u`" == 0 ) then
set path = ($path /usr/local/sbin /usr/sbin \
/sbin /usr/local/gate/sbin /usr/local/bind/sbin)
endif
=== zsh
/etc/zsh/zshenv の末尾部分を以下のように追記.
# add PATH for local installed softwares
export PATH=/usr/local/apache2/bin:/usr/local/bind/bin:$PATH
export PATH=/usr/local/gate/bin:$PATH
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
export PATH=/usr/local/gate/sbin:/usr/local/bind/sbin:$PATH
fi
== インストールしたマニュアルへのパスの設定
/etc/manpath.config に以下の行を追加する.
詳しくは ((<[EPA2008]パスの設定#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 所有にする.
# chown bind:bind /usr/local/bind/var/run
== ゾーンファイルの用意
new の /usr/local/bind/etc/namedb に
old の /usr/local/bind/etc/namedb を移植.
=== 2008 年度 DNS の設定
gradis にログインして, 下の二つのファイルを修正.
(要 gradis アカウント, ルート権限)
* gradis.epa.scitec.kobe-u.ac.jp:/etc/named.conf
zone "epa.scitec.kobe-u.ac.jp" {
type slave;
file "slave/epa.zone";
masters {
133.30.109.22;
};
allow-query { any; };
};
* gradis.epa.scitec.kobe-u.ac.jp:/var/named/scitec.zone
; epa
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.22
epa.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
=== ika の namedb の変更
ika.epa.scitec.kobe-u.ac.jp:/usr/local/bind/etc/namedb/ 内のファイルを書き換える.
* epa.zone
MX, www, ns, mail, @ のレコードを以下のごとく変更.
(epa.zone ファイルのうち, 変更した行のみを抜粋)
IN MX 10 ika.epa.scitec.kobe-u.ac.jp.
;
ns IN A 133.30.109.22
mail IN A 133.30.109.22
www IN CNAME ika.epa.scitec.kobe-u.ac.jp.
@ IN A 133.30.109.22
== 上流 DNS サーバの設定項目の確認
=== epa.scitec.kobe-u.ac.jp ゾーンなどのエントリ確認
scitec.kobe-u.ac.jp を担当している gradis.scitec.kobe-u.ac.jp の
/etc/named.conf に epa.scitec.kobe-u.ac.jp ゾーンのエントリがあるかを確認.
gradis.scitec.kobe-u.ac.jp:/etc/named.conf に以下の記述を確認.
zone "ahs.scitec.kobe-u.ac.jp" {
type slave;
file "slave/ahs.zone";
masters {
133.30.109.22;
};
allow-query { any; };
};
zone "epa.scitec.kobe-u.ac.jp" {
type slave;
file "slave/epa.zone";
masters {
133.30.109.22;
};
allow-query { any; };
};
gradis.scitec.kobe-u.ac.jp:/var/named/scitec.zone にて以下の記述を確認.
;; for 133.30.109.22 domain
; ahs
ahs.scitec.kobe-u.ac.jp. IN NS ika.epa.scitec.kobe-u.ac.jp.
ika.epa.scitec.kobe-u.ac.jp. IN A 133.30.109.22
ahs.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
; epa
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.22
epa.scitec.kobe-u.ac.jp. IN NS gradis.scitec.kobe-u.ac.jp.
; aoe
aoe.scitec.kobe-u.ac.jp. IN A 133.30.109.22
; cps
cps.scitec.kobe-u.ac.jp. IN A 133.30.109.22
/etc/named.conf 内で "109.30.133" を検索して以下の記述を確認.
zone "109.30.133.in-addr.arpa" {
type master;
file "master/epa/epa.rev";
allow-query { any; };
};
逆引きゾーンファイル /var/named/master/epa/epa.rev にて,以下により
0/25 の権限が ns.epa.scitec.kobe-u.ac.jp にあることを確認.
0/25 IN NS ns.epa.scitec.kobe-u.ac.jp.
== ゾーンファイルの確認
ika:/usr/local/bind/etc/namedb/ahs.rev にて以下のことを確認.
* 逆引きの権限は ns.epa.scitec.kobe-u.ac.jp が持っている.
@ IN NS ns.epa.scitec.kobe-u.ac.jp.
* 逆引きレコードで 22 は ika のドメインを返す.
22 IN PTR ika.epa.scitec.kobe-u.ac.jp.
== rndc の設定
rndc コマンドは zone のリロード, 再起動, コンフィグファイル読み直しを行うコマンドである.
rndc-confgen を実行して設定ファイルの材料を生成する.
root@ika:/usr/local/bind/etc/namedb# rndc-confgen
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "SZN/mCIMkFJmFJ/98jlcMQ==";
};
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 "SZN/mCIMkFJmFJ/98jlcMQ==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
5 行目, およびコメント行4 行目の secret "SZN/mCIMkFJmFJ/98jlcMQ==";
は認証に用いる共通鍵(パスワード) を表す. ここに記されているのは例であり,
実際に生成されるファイルの内容とは異なる.
rndc-confgen の出力を /usr/local/bind/etc/rndc.conf として保存.
# rndc-confgen > /usr/local/bind/etc/rndc.conf
生成されたファイル rndc.conf を1〜3 のように操作する.
1. コメント行 controls 以下を named.conf の末尾に貼り付け(無論# をはずす),
その下に以下の一文を加える.
include "/usr/local/bind/etc/rndc.key";
2. コメント行内の key で始まる4 行を /usr/local/bind/etc/rndc.key として保存する.
3. rndc.conf のコメント部分を削除する.
生成したファイルのパーミッションを以下のように変更する.
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
== 起動テスト
# /usr/local/bind/sbin/named -u bind\
-c /usr/local/bind/etc/namedb/named.conf
/var/log/syslog および ps aux をみて bind の起動を確認.
== ファイルフォーマットチェック
root@tako:/usr/local/bind/etc# named-checkconf\
/usr/local/bind/etc/namedb/named.conf
何も出力されないので OK.
== rndc のテスト
root@tako:/usr/local/bind/etc# rndc reload
server reload successful
成功.
※ epaadmin グループに所属するユーザなら上記のコマンドを実行可能である.
== 起動スクリプトの用意
サーバの起動時に自動的に bind を起動させるためのスクリプトを用意する.
# cd /etc/init.d
# wget http://epa.scitec.kobe-u.ac.jp/~itpass/epa/bind/bind
# chown root:root /etc/init.d/bind
# chmod 755 /etc/init.d/bind
この実行ファイル bind には, 先頭に named, rndc, named.conf ファイルのパスを設定する記述がある. インストールする場所を変更する場合は, この記述も変更する必要がある.
ランレベルごとに bind の動作を設定する.
# update-rc.d bind defaults
Adding system startup for /etc/init.d/bind ...
/etc/rc0.c/K20bind -> ../init.d/bind
/etc/rc1.c/K20bind -> ../init.d/bind
/etc/rc6.c/K20bind -> ../init.d/bind
/etc/rc2.c/S20bind -> ../init.d/bind
/etc/rc3.c/S20bind -> ../init.d/bind
/etc/rc4.c/S20bind -> ../init.d/bind
/etc/rc5.c/S20bind -> ../init.d/bind
再起動後,以下のコマンドで bind が起動している事を確認.
$ ps auxw | grep named
bind 2791 0.0 0.0 9344 6764 ? Ss 11:51 0:00 /usr/local /bind/sbin/named -c /usr/local/bind/etc/namedb/named.conf -u bind
chikuwa6 3053 0.0 0.0 3580 700 pts/0 D+ 11:53 0:00 grep named
bind を停止.
root@ika:/etc/init.d# /etc/init.d/bind stop
Stopping domain name service: named.
サーバ起動時に bind を起動しないように設定する.
root@ika:/etc/init.d# update-rc.d -f bind remove
Removing any system startup links for /etc/init.d/bind ...
/etc/rc0.d/K20bind
/etc/rc1.d/K20bind
/etc/rc2.d/S20bind
/etc/rc3.d/S20bind
/etc/rc4.d/S20bind
/etc/rc5.d/S20bind
/etc/rc6.d/K20bind
もう一度再起動して, 今度は bind が起動しない事を確認した.
root@ika:~# ps auxw | grep named
root 3054 0.0 0.0 3580 700 pts/0 D+ 12:25 0:00 grep named
== 参考資料
* DNS の仕組み解説 (初学者向け)
* ((<3 Minutes Networking|URL:http://www5e.biglobe.ne.jp/~aji/3min/index.html>))
* OpenSSL のセキュリティ脆弱性
* ((<opensslのセキュリティアップデート|URL:http://www.jp.redhat.com/support/errata/RHSA/RHSA-2006-0695J.html>))
* ((<米国政府のぜい弱性対策に関する取り組み|URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20071015/284567/>))
[((<EPAサーバ構築ドキュメント>)) へ戻る]