CentOS 6.3 bind 9.8.2 の設定
設定する時の注意事項
設定ファイルは、/etc/named.conf, /var/named など、chrootを意識せずにファイル配置します。標準的な位置に配置されたファルは、bindを起動した際、/var/named/chroot 配下にマウントされた上でbindから参照されます。
システムの時刻が正しく設定されていないと、DLVでエラーが発生し、名前解決が出来ません。
最新のOSであれば、更新する必要は無いと思いますが、やり方は覚えておきましょう。
[root@centos6 ~]# dig @a.root-servers.net . ns > /var/named/named.ca
[root@centos6 ~]# cat /var/named/named.ca
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> @a.root-servers.net . ns
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20827
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS h.root-servers.net.
. 518400 IN NS j.root-servers.net.
. 518400 IN NS c.root-servers.net.
. 518400 IN NS d.root-servers.net.
. 518400 IN NS a.root-servers.net.
. 518400 IN NS k.root-servers.net.
. 518400 IN NS g.root-servers.net.
. 518400 IN NS m.root-servers.net.
. 518400 IN NS l.root-servers.net.
. 518400 IN NS i.root-servers.net.
. 518400 IN NS e.root-servers.net.
. 518400 IN NS b.root-servers.net.
. 518400 IN NS f.root-servers.net.
;; ADDITIONAL SECTION:
h.root-servers.net. 3600000 IN A 128.63.2.53
h.root-servers.net. 3600000 IN AAAA 2001:500:1::803f:235
j.root-servers.net. 3600000 IN A 192.58.128.30
j.root-servers.net. 3600000 IN AAAA 2001:503:c27::2:30
c.root-servers.net. 3600000 IN A 192.33.4.12
d.root-servers.net. 3600000 IN A 128.8.10.90
d.root-servers.net. 3600000 IN AAAA 2001:500:2d::d
a.root-servers.net. 3600000 IN A 198.41.0.4
a.root-servers.net. 3600000 IN AAAA 2001:503:ba3e::2:30
k.root-servers.net. 3600000 IN A 193.0.14.129
k.root-servers.net. 3600000 IN AAAA 2001:7fd::1
g.root-servers.net. 3600000 IN A 192.112.36.4
m.root-servers.net. 3600000 IN A 202.12.27.33
l.root-servers.net. 3600000 IN A 199.7.83.42
;; Query time: 69 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Wed Aug 22 13:33:30 2012
;; MSG SIZE rcvd: 512
[root@centos6 ~]#
/etc/named.conf を使って設定します
[root@centos6 ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
acl internal {
127.0.0.1;
192.168.1.0/24;
};
options {
;;listen-on port 53 { 127.0.0.1; };
;;listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
;;allow-query { localhost; };
;;recursion yes;
allow-query { internal; };
allow-recursion { internal; };
version ""; // version.bind の応答を隠ぺい
hostname ""; // hostname.bind の応答を隠ぺい
// ただ、両方とも viewで拒否するので設定は必須ではない
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
// empty-zones-enable no; // yes or noに設定しないと、警告がでる。
// とりあえず、外部DNSの場合:yes、イントラの場合:noって使い方でいいかも。
// 未指定の場合、中途半端に有効になってるっぽい
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
category lame-servers { null; };
//category update { null; };
//category update-security { null; };
//category security { null; };
};
// for hide version
view "version" chaos {
match-clients { any; };
allow-query { none; };
zone "." chaos {
type hint;
file "chaos.hint";
};
zone "version.bind" chaos {
allow-query { none; };
type master;
file "version.bind";
};
};
view "nameserver" {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
// add youre dns data below ---------------------------------------------------
zone "example.jp" IN {
type master;
allow-query { any; };
//allow-transfer { xxx.xxx.xxx.xxx; };
file "example.jp_zone";
notify yes;
};
zone "1.168.192.in-addr.arpa" IN {
type master;
allow-query { any; };
//allow-transfer { xxx.xxx.xxx.xxx; };
file "192.168.1_rev";
};
};
// add youre dns data above ---------------------------------------------------
include “/etc/named.root/key”;
include "/etc/rndc.key";
//以下の設定は無くても、rndc.keyが読み込まれると、設定したのと同様の動作をします。
//設定変更の際の参考情報として記載しています。
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
[root@centos6 ~]#
自動生成されます。作成不要です。
ただし、初回起動時にすごく時間がかかります。(5分程度)
以下の操作を行うと、初回起動時の時間短縮が計れます。以下の操作は一秒も掛かりません。
[root@centos6 ~]# rndc-confgen -a -b 256 -r /dev/urandom -c /etc/rndc.key
[root@centos6 ~]# chmod 640 /etc/rndc.key
[root@centos6 ~]# chgrp named /etc/rndc.key
rndc.key が読み込まれると、自動的にlocalhost に bindした状態でrndcが起動 します。
このメモの設定例の通り、ファイルに出力する場合、この設定は不要です。
rsyslogを用いて、ログの一元管理を行いたい場合、rsyslogに以下の設定を追加する必要があります。
※この設定を行わなくても、サービス起動時のメッセージは、/var/log/messagesに書き出されます。
[root@centos6 ~]# vi /etc/rsyslog.conf
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
$AddUnixListenSocket /var/named/chroot/dev/log
[root@centos6 ~]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
[root@centos6 ~]# ls -l /var/named/chroot/dev/log
srw-rw-rw- 1 root root 0 8月 22 14:40 2012 /var/named/chroot/dev/log
[root@centos6 ~]#