Obsolate
NetBSDでDNS Serverを建てる。DNSはInternetを利用する上で非常に重要なので、設置する際に十分な注意が必要。
DNS Serverを建てる前に、以下を準備する。
なお、本稿では、DNS ServerとしてBIND(BIND9)を仮定する。これは、NetBSDが標準で取り入れている実装である。
今回管理するNetwork構成図は以下の通り。
DNSの設定において重要なのは、
である。
なお、Omni Graffleでファイルを作ったので、これも上げておく。example_org.graffle.gz
次にDNS用のDBファイルを作成する。
正引き、逆引きを共に設定する必要がある。
言葉がわからない人や、意味が判らない人は、Googleにお伺いを立てれば調べられると思うので、そちらを参照のこと。
今回の設定においては、
ものとする。
このような状況の場合、DNSサーバーに準備しなければならないデータベースは
となる。
正引きDBファイルを作成する。ファイル名は M.example とする。
今回の例では、TXTレコード、HINFOレコードを利用している。
近年では、情報漏洩やリスクを考慮してかこの種のレコードを利用しないという風潮がある。
しかし、この程度の情報でクラックされてしまうのであれば、この種の情報が無くても結局簡単に攻撃されてしまう。
特に最近では通信時の特性などからOSをほぼ完全に推測してしまうような技術もあるので、わざわざ情報を隠す意味は無いと考える。
あと、一応SPFエントリーを付け加えてある。詳しいことはgoogle様に聞くこと。
;; M.example : Database of example.org
;;
$TTL 3600;
@ IN SOA dns.example.org. root.example.org. (
1 ; Serial
10800 ; Refresh (3h)
3600 ; Retry (1h)
1296000 ; Expire (15d)
10800 ; Minimum (3h)
)
IN NS dns.example.org.
IN NS mail.example.org.
IN MX 20 mail.example.org.
IN TXT "v=spf1 +mx -all"
localhost IN A 127.0.0.1
IN AAAA ::1
router IN HINFO "CISCO" "IOS"
IN TXT "Gateway to Internet"
IN AAAA 2000:ffff:ffff:0::1
IN A 10.1.1.1
dns IN HINFO "PC/AT" "NetBSD"
IN TXT "MasterNS"
IN AAAA 2000:ffff:ffff:0::2
IN A 10.1.1.2
www IN HINFO "PC/AT" "NetBSD"
IN TXT "Web Server"
IN AAAA 2000:ffff:ffff:0::3
IN A 10.1.1.3
mail IN HINFO "PC/AT" "NetBSD"
IN TXT "Mail,pop,smtp,DNS Server"
IN AAAA 2000:ffff:ffff:0::4
IN A 10.1.1.4
pop IN CNAME mail
smtp IN CNAME mail
ns IN CNAME dns
IN CNAME mail
正引きと同じように逆引きも設定する。
逆引きファイルは R.10.1.1.0examとする。
;; R.10.1.1.0exam : Database of 0exam.1.1.10.in-addr.arpa.
;;
$TTL 3600;
@ IN SOA dns.example.org. root.example.org. (
1 ; Serial
10800 ; Refresh (3h)
3600 ; Retry (1h)
1296000 ; Expire (15d)
10800 ; Minimum (3h)
)
IN NS dns.example.org.
IN NS mail.example.org.
1 IN PTR router.example.org.
2 IN PTR dns.example.org.
3 IN PTR www.example.org.
4 IN PTR mail.example.org.
NetBSDを利用している場合は、/etc/namedb/root.cacheがそれ。
わざわざ作る物ではない。
rndc.keyは、DNS Serverを制御するためのrndcを利用するために作成される。
# cd /tmp # mkdir t # cd t # dnssec-keygen -r keyboard -a HMAC-MD5 -b 256 -n USER root start typing: ............................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... stop typing. Kroot.+xxx+xxxxx #
これで、種となる鍵ファイルが出来上がる。
# cat Kroot.+xxx+xxxxx
root. IN KEY 0 3 157 ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789acbdef==
# cat rndc.key ← named.confに記載したrndc.keyファイルを作成する
key RNDC {
algorithm "HMAC-MD5";
secret "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789acbdef==";
};
# cat /etc/rndc.conf
include "/etc/namedb/rndc.key";
options {
default-server localhost;
default-key RNDC;
};
#
これでrndcが利用できるようになる。
以上の設定が済んだら、/etc/rc.confを修正する
named=YES named_flags="-c /etc/namedb/named-m.conf"
なお、namedをchroot環境で動作させるならば、named_chrootdirを設定する。
NetBSDの場合、これを設定すれば問題なくchroot環境に移行してnamedが動作する。
ここまで設定が終わったら、/etc/rc.d/named start をrootから実行する。
これでnamedが起動するが、設定ミスなどがあるとエラーになるので、/var/log/messageを確認して、DNSサーバーがエラーを出していないことを確認しよう。