内部向けDNSの設定
「ネットワークの設定」では /etc/hosts ファイルを編集して、ホスト名をIPアドレスに紐付けました。
これだけでもLAN内部からホスト名指定でサーバへアクセスできるんですが、クライアントPCを増やすごとに同じ設定を書くのも面倒です。
というわけで、今回は bind9 で内部向けDNSを構築してみます。
暗号鍵ファイルの生成
SSH に引き続き、bind9 でも暗号鍵が必要になってきます。
rndc-confgen コマンドを使うと自動で暗号鍵付きの設定ファイルを生成できるので楽ですが、ここではあえて自力で設定することにします。
最初に、dnssec-keygen コマンドで暗号鍵を生成します。
# cd /etc/namedb
# dnssec-keygen -a hmac-md5 -b 512 -n user rndc
Krndc.+157+63181
# ls
Krndc.+157+63181.key named.conf working/
Krndc.+157+63181.private named.root
dynamic/ rndc.conf
master/ slave/
「Krndc.+157+*****.private」と「Krndc.+157+*****.key」 (***** は5桁の数値) というファイルが生成されたはずです。
ファイル名から想像がつくと思いますが、「Krndc.+157+*****.private」は秘密鍵、「Krndc.+157+*****.key」は公開鍵が保存されています。
今回はこの2つのファイルをもとに、設定ファイルを作成します。
rndc.key の編集
公開鍵の設定ファイルは /etc/namedb/rndc.key です。
先ほど作った「Krndc.+157+*****.key」の中身は、以下のようになっているはずです。
Krndc.+157+*****.key
rndc. IN KEY 0 3 157 rRsw1dx/fJzZnY6tJRAk5VR5VTeQxuEu2/hKRqD6uLr0tnE5xc7PjWDQ vou00VTfAfR74/udYnohlv/FVK738w==
「rndc. IN KEY 0 3 157」の部分は鍵の種別設定なので、何度作り直しても同じ値です。
ここで必要になるのはその後に続く「rRsw1dx/fJzZnY6tJRAk5VR5VTeQxuEu2/hKRqD6uLr0tnE5xc7PjWDQ vou00VTfAfR74/udYnohlv/FVK738w==」の部分です。 (値はランダム)
この値をコピーしてください。
コピーしたら rndc.key ファイルを編集します。
/etc/namedb/rndc.key
key "rndc-key"
{
algorithm hmac-md5;
secret "ここに Krndc.+157+*****.key の値を貼り付けてください。";
};
rndc.conf の編集
同じように秘密鍵設定ファイル /etc/namedb/rndc.conf も編集します。
「Krndc.+157+*****.private」の中身は以下のようになっているはずです。
Krndc.+157+*****.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: rRsw1dx/fJzZnY6tJRAk5VR5VTeQxuEu2/hKRqD6uLr0tnE5xc7PjWDQvou00VTfAfR74/udYnohlv/FVK738w==
Bits: AAA=
ここでも重要なのは「Key: 」以降の部分です。この値をコピーしてください。
コピーしたら rndc.conf を編集します。
/etc/namedb/rndc.conf
options
{
default-server localhost;
default-key "rndc-key";
};
server localhost
{
key "rndc-key";
};
key "rndc-key"
{
algorithm hmac-md5;
secret "ここに Krndc.+157+*****.private の値を貼り付けてください。";
};
オーナーの変更
rndc.key、rndc.conf ファイルを編集したら、「Krndc.+157+*****.private」と「Krndc.+157+*****.key」は不要です。削除してしまいましょう。
# rm -f Krndc.+157+*.*
bind9 は bind ユーザーで実行させるのが基本です。(他のユーザーで実行させてもいいですが)
暗号鍵ファイルは実行ユーザー以外が読める状態だとエラーになるので、所有権とパーミッションの設定を行います。
# chown bind:wheel rndc.*
# chmod 400 rndc.*
ゾーンファイルの編集
DNS正引き、逆引き用のゾーンファイルを作成します。
私は正引きゾーンファイル名はいつも「ドメイン名.db」、逆引き用は「IPアドレス.db」というふうにしてますが、取り決めがあるわけではないので好きなように付けてください。
/etc/namedb/master/kanow.jp.db
; kanow.jp.db: kanow.jp 正引きファイル
;
$ORIGIN kanow.jp.
$TTL 86400
@ IN SOA works.kanow.jp. root.works.kanow.jp. (
2010092900 ; serial number
3600 ; refresh 1Hour
900 ; retry 15min
604800 ; expiry 1week
86400 ; min 24Hour
)
IN NS works.kanow.jp.
IN MX 10 mail.kanow.jp.
localhost IN A 127.0.0.1
@ IN A 192.168.0.11 ; kanow.jp
works IN A 192.168.0.10 ; このサーバ
www IN CNAME @ ; www.kanow.jp -> kanow.jp
ns IN CNAME works ; ns.kanow.jp -> works.kanow.jp
mail IN A 192.168.0.12 ; MX レコードは A レコードでないとダメなので、IPを割り振る
:
:
(以下、必要なだけ記述)
/etc/namedb/master/192.168.0.db
; 1921.168.0.db: 192.168.0.1 ~ 192.168.0.255 逆引きファイル
;
$ORIGIN 0.168.192.IN-ADDR.ARPA.
$TTL 86400
@ IN SOA works.kanow.jp. root.works.kanow.jp. (
2010092900 ; serial number
3600 ; refresh 1Hour
900 ; retry 15min
604800 ; expiry 1week
86400 ; min 24Hour
)
IN NS works.kanow.jp.
IN MX 10 mail.kanow.jp.
10 IN PTR works.kanow.jp.
11 IN PTR kanow.jp.
12 IN PTR mail.kanow.jp.
:
:
(以下、必要なだけ記述)
bind9 設定ファイルの編集
次に bind9 本体の設定を行います。
/etc/namedb/named.conf
/*
* named.conf: bind9 設定ファイル
*/
/*
* キーファイルの読み込み
*/
include "/etc/namedb/rndc.key";
/*
* キーの設定
*/
controls
{
inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key"; };
inet ::1 allow { ::1; } keys { "rndc-key"; };
};
/*
* 動作設定
*/
options
{
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
allow-query
{
127.0.0.1;
192.168.0.0/24;
};
allow-recursion
{
127.0.0.1;
192.168.0.0/24;
};
allow-transfer
{
127.0.0.1;
192.168.0.0/24;
};
forwarders
{
プロバイダのプライマリDNSのIPアドレス;
プロバイダのセカンダリDNSのIPアドレス;
};
};
/*
* ゾーンファイルの設定
*/
// ルート
zone "."
{
type hint;
file "named.root";
};
// 正引き: ローカルホスト
zone "localhost"
{
type master;
file "master/localhost-forward.db";
};
// 逆引き: ローカルホスト
zone "127.in-addr.arpa"
{
type master;
file "master/localhost-reverse.db";
};
// 正引き: *.kanow.jp
zone "kanow.jp"
{
type master;
file "master/kanow.jp.db";
};
// 逆引き: 192.168.0.1 ~ 192.168.0.255
zone "0.168.192.in-addr.arpa"
{
type master;
file "master/192.168.0.db";
};
起動スクリプトの編集
起動時に自動で bind9 を起動できるよう、/etc/rc.conf に以下の行を追加します。
/etc/rc.conf
# bind9: ドメインネームサーバ
named_program="/usr/sbin/named"
named_flags="-u bind -c /etc/namedb/named.conf"
named_enable="YES"
設定ファイルの確認
最後に設定ファイルにミスがないか、構文チェックを行います。
# named-checkconf
# named-checkzone kanow.jp /etc/namedb/master/kanow.jp.db
zone kanow.jp/IN: loaded serial 2010092900
OK
# named-checkzone 0.168.192.in-addr.arpa /etc/namedb/master/192.168.0.db
zone 0.168.192.in-addr.arpa/IN: loaded serial 2010092900
OK
起動 / 再読込
bind9 を起動するには、サーバを再起動するか以下のコマンドを実行します。
# /etc/rc.d/named start
各IPアドレスの追加、変更などを行った場合は、以下のコマンドで再読込を行います。
# rndc reload
これで内部向けDNSの設定は完了です。
後はクライアントPCのDNS問い合わせ先をこのサーバに設定するか、DHCP機能を持つルータのDNSにサーバのIPアドレスを指定すれば、「www.kanow.jp」などのホスト名でLAN内部のサーバへアクセスできるようになります。
関連記事
- サーバ移転のお知らせ - 2011年11月23日 (水)
- Apache + Passenger で作る Redmine 環境 - 2011年5月13日 (金)
- XHTML5 移行メモ - 2011年2月10日 (木)
- UTF-8 日本語環境の構築 - 2010年9月26日 (日)
- vimで日本語テキスト編集 - 2010年9月25日 (土)
トラックバック
コメント
コメントはまだありません。