彩音のBSD日記
2008年08月29日の日記
2008年08月29日(BIND の初期設定をしよう!

次はネームサーバーを設定することにしましょう。

先ずは、デーモン確認。


# top

named は動いていませんねと。では、BIND の設定ファイルのディレクトリに移動。


# cd /var/named/etc/namedb

ここで、ls


# ls

PROTO.localhost-v6.rev
PROTO.localhost.rev
dynamic
make-localhost
master
named.conf
named.root
slave

認証キーの作成

セキュリティー強化のために rndc コマンドの認証キーをまず設定。


# rndc-confgen -b 412 -k キーID > rndc.conf

ll で rndc.conf が生成されているのを確認し、オーナーとパーミッションを変更。


# chown bind:wheel rndc.conf
# chmod 0400 rndc.conf

rndc.conf の内容を確認


# cat rndc.conf

そこで 「# Use with…」の次の行から「# End of named.conf」の手前の行までをコピーする。

ログ用のディレクトリを作成

ログを保管するためのディレクトリを /var/named/ の下に log として作成し、オーナーを変更


# mkdir /var/named/log
# chown bind /var/named/log

named.conf の編集

で、named.conf を編集。


# vi named.conf

まず、ネームサーバーだけれど、今回は外部からの問い合わせを受けるようにしたいので、options ステートメントの以下の行をコメントアウト。


listen-on { 127.0.0.1; };

これを

// listen-on { 127.0.0.1; };

そのあと、logging ステートメントを追加。保管場所は先ほど作成した /var/named/log/ の下に設定。


logging {
channel my_log {
file "/var/named/log/my_log.txt" versions 3 size 1M;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { my_log; };
};

使用するドメインの zone ステートメントを追加


////////////////////////////////
//// hogehoge.co.jp
zone "hogehoge.co.jp" {
type master;
also-notify {notify メッセージを送信するサーバの IP アドレス;};
allow-transfer {ゾーン転送を許可するホスト;};
file "master/hogehoge.co.jp.zone";
};

そしたら、先ほどコピーした、rndc.conf の named.conf 用の key ステートメントと、 controls ステートメントを、 named.conf の option ステートメントの後にペーストしコメントアウトを外し、vi を保存終了。

localhost.rev と localhost-v6.rev を設置

/var/named/etc/namedb に PROTO.localhost.rev と PROTO.localhost-v6.rev があるので、/var/named/etc/namedb/master に localhost.rev、localhost-v6.rev としてコピーする。

/var/named/etc/namedb/master/localhost.rev を以下のように書き換える


$TTL 3600

@ IN SOA ns.hogehoge.co.jp. root.hogehoge.co.jp. (
YYYYMMDDSS ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS ns.hogehoge.co.jp.
1 IN PTR localhost.hogehoge.co.jp.

/var/named/etc/namedb/master/localhost-v6.rev を以下のように書き換える


$TTL 3600

@ IN SOA ns.hogehoge.co.jp. root.hogehoge.co.jp. (
YYYYMMDDSS ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS ns.hogehoge.co.jp.
IN PTR localhost.hogehoge.co.jp.

hogehoge.co.jp.zoneを設定

hogehoge.co.jp用のzoneファイルを設定する。


$TTL 86400
$ORIGIN hogehoge.co.jp.
@ IN SOA ns.hogehoge.co.jp. postmaster.hogehoge.co.jp. (
2009011301; Serial
10800 ; Refresh 3 hours
3600 ; Retry 1 hour
604800 ; Expire 1 week
86400 ) ; Minimum 1 day
IN MX 10 ns.hogehoge.co.jp.
IN NS ns.hogehoge.co.jp.
IN NS ns.s-ezaki.com.
hogehoge.co.jp. IN A IPアドレス
ns IN A IPアドレス
IN MX 10 ns.hogehoge.co.jp.
ftp IN CNAME ns
mail IN CNAME ns
www IN CNAME ns
* IN CNAME ns

こんな感じ。

resolv.conf を確認

念のため /etc/resolv.conf を確認


domain ドメイン名
nameserver IPアドレス

この nameserver のIPアドレスをターゲットにしたいIPアドレスに書き換える。
ローカルで動かしたい場合は

domain ドメイン名
nameserver 127.0.0.1

こんな感じ。

named 起動

とりあえず作業は一段落。
namedデーモン起動


# named

rndc で確認


# rndc status
number of zones: 3
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/1000
tcp clients: 0/100
server is up and running

セキュリティー対策

BIND 8.4.5、BIND 9.3.0以下にはセキュリティーホールがあるということで。
こちらを参照
これ以下の場合はアップグレードが必要。

ということで、BINDのバージョンを確認。


> named -v
BIND 9.3.2

大丈夫ですね。