bind-9.2.3-13
作成 : 2004/06/13
修正 : 2005/01/22
bind-9.2.3-13のインストール
bindパッケージ(bind本体)、bind-utilsパッケージ(digなどのユーティリティ)、bind-libsパッケージ(ライブラリ)、bind-chrootパッケージ(非特権ユーザでbindを起動するため)をインストールする。
# rpm -Uvh bind-9.2.3-13.rpm # rpm -Uvh bind-libs-9.2.3-13.rpm # rpm -Uvh bind-utils-9.2.3-13.rpm # rpm -Uvh bind-chroot-9.2.3-13.rpm
ファイルの配置
/var/named/chrootディレクトリにchrootするので、必要なファイルはみんなその中に配置する。
/var/named/chroot/
+ dev/
+ null
+ random
+ etc/
+ named.conf <--- 設定ファイル
+ rndc.key <--- rndcキーファイル
+ var/
+ named/
+ named.ca <--- ルートゾーンファイル
+ zone/
+ localhost <--- ローカルゾーン正引きファイル
+ nina.jp <--- nina.jpゾーン正引きファイル
+ xxxx.jp <--- xxxx.jpゾーン正引きファイル(スレーブなので自動生成)
+ rev/
+ 0.0.127.in-addr.arpa <--- ローカルゾーン逆引きファイル
+ 0.168.192.in-addr.arpa <--- nina.jp逆引きファイル
+ run/
+ named/
+ named.pid <--- PIDファイル(自動生成)
/var/named/chroot/etc/named.confの編集
bindの設定ファイルnamed.confを編集する。 設定の詳細は、named.confの設定を参照。
optionsステートメントのdirectoryディレクティブで、ワーキングディレクトリとして/var/namedディレクトリを指定している。 しかし、/var/named/chrootディレクトリにchrootしているので、実際のワーキングディレクトリは/var/named/chroot/var/namedディレクトリとなる。
プライベートアドレスの逆引きクエリをインターネットに流さないように、10.0.0.0/8、172.168.0.0/12、192.168.0.0/16、169.254.0.0/16の逆引き設定を書いておくこと。
acl "internal-acl" { 127.0.0.0/8; 192.168.0.0/16; }; <--- ACLを定義
include "/etc/rndc.key"; <--- rndcキーファイル
controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndckey; }; }; <--- rndcはローカルホストからの接続を許可
options {
directory "/var/named"; <--- ワーキングディレクトリ
pid-file "/var/run/named/named.pid"; <--- PIDファイル
};
logging {
channel "default_syslog" {
syslog daemon;
severity info;
};
channel "default_debug" {
file "named.run";
severity dynamic;
};
channel "null" {
null;
};
category "unmatched" { "null"; };
category "default" { "default_syslog"; "default_debug"; };
};
view "internal-view" {
match-clients { internal-acl; }; <--- LAN内のクライアントはこのビューを参照できる
allow-query { internal-acl; }; <--- このビューはLAN内のクライアントからのクエリを許可
allow-recursion { internal-acl; }; <--- このビューはLAN内のクライアントから再帰クエリを許可
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "zone/localhost";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "rev/0.0.127.in-addr.arpa";
allow-update { none; };
};
zone "nina.jp" {
type master;
file "zone/nina.jp";
};
zone "168.192.in-addr.arpa" {
type master;
file "rev/168.192.in-addr.arpa";
};
zone "10.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "16.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "17.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "18.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "19.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "20.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "21.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "22.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "23.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "24.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "25.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "26.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "27.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "28.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "29.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "30.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "31.172.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
zone "254.169.in-addr.arpa" {
type master;
file "rev/dummy.rev"; <--- ダミーのゾーンファイル
};
};
view "external-view" {
match-clients { any; }; <--- すべてのクライアントはこのビューを参照できる
allow-query { any; }; <--- このビューはすべてのクライアントからのクエリを許可
allow-recursion { none; }; <--- このビューはすべてのクライアントからのクエリを拒否
allow-notify { any; };
zone "xxxx.jp" IN {
type slave; <--- このゾーンはスレーブゾーン
file "zone/xxxx.jp";
masters { X.X.X.X; }; <--- このゾーンのマスタホスト
};
};
ゾーンファイルの作成
正引きゾーンファイルは/var/named/chroot/var/named/zoneディレクトリ、逆引きゾーンファイルは/var/named/chroot/var/named/revディレクトリに置くことにする。 (デフォルト設定では、正引きファイルも逆引きファイルも/var/named/chroot/var/namedディレクトリに置く)
/var/named/chroot/var/named/zone/localhost (/var/named/chroot/var/named/localhost.zoneをリネーム) $TTL 86400 $ORIGIN localhost. @ 1D IN SOA @ root ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum 1D IN NS @ 1D IN A 127.0.0.1
/var/named/chroot/var/named/rev/0.0.127.in-addr.arpa (/var/named/chroot/var/named/localhost.revをリネーム) $TTL 86400 $ORIGIN 0.0.127.in-addr.arpa. @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS localhost. 1 IN PTR localhost.
/var/named/chroot/var/named/zone/nina.jp
$ORIGIN nina.jp.
$TTL 86400 ; 1 day
IN SOA ns.nina.jp. root.ns.nina.jp. (
2004060101 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns.nina.jp.
A 192.168.0.10
ns A 192.168.0.10
pop CNAME ns
smtp CNAME ns
www CNAME ns
/var/named/chroot/var/named/rev/168.192.in-addr.arpa
$ORIGIN .168.192.in-addr.arpa
$TTL 86400 ; 1 day
IN SOA ns.nina.jp. root.ns.nina.jp. (
2004060101 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns.nina.jp.
10.0 PTR ns.nina.jp.
ダミーのゾーンファイルには、SOAとNSだけ記述しておく。
/var/named/chroot/var/named/rev/dummy.rev
$TTL 86400 ; 1 day
@ IN SOA ns.nina.jp. root.ns.nina.jp. (
2004060101 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns.nina.jp.
スレーブゾーンファイルを置く/var/named/chroot/var/named/zoneディレクトリは、namedユーザに書き込み権限を付与しておかないと、Permission Deniedエラーになる。
# chown root:named /var/named/chroot/var/named/zone # chmod 770 /var/named/chroot/var/named/zone
/var/named/chroot/etc/rndc.confの作成
rndcを利用してnamedサービスに接続するときに必要な、鍵と設定のファイルrndc.confを作成する。
# rndc-confgen -a -t /var/named/chroot
/var/named/chroot/etc/rndc.conf
key "rndckey" {
algorithm hmac-md5;
secret "0hzFmmwt21SGmLub3Kfgpw==";
};
options {
default-key "rndckey";
default-server 127.0.0.1;
default-port 953;
};
namedの起動
namedを起動する。 ファイアウォールを使用している場合は、TCP/UDP 53番ポートをあけておくこと。
# /etc/init.d/named start
システム起動時にデーモンが起動するよう、/etc/rc3.dディレクトリにシンボリックリンクを作成する。
# cd /etc/rc3.d # ln -s ../init.d/named S55named
namedプロセスの確認
psコマンドでnamedプロセスを確認してみる。
# ps -ef | grep named
named 834 1 0 10:10 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot
namedが非特権ユーザ(namedユーザ)で起動されており、chrootディレクトリとして/var/named/chrootが指定されていることがわかる。 chrootディレクトリの指定は、/etc/sysconfig/namedファイルに記述されている。