目次
(Obsolate)DNS Serverを建てる
Obsolate
NetBSDでDNS Serverを建てる。DNSはInternetを利用する上で非常に重要なので、設置する際に十分な注意が必要。
DNS Serverを建てる前に、以下を準備する。
- ネットワーク構成図
- DNSに限らず、Network構成図は出来るだけ作る習慣を付けておく方がいいでしょう。
- 出来れば、cvs等で構成図を管理しておくとなお良いでしょう。
- IP Address, IPv6 Address、ドメイン名の割り当て表
- DNS Serverの構成
- Master ServerとSecondary Serverの構成
なお、本稿では、DNS ServerとしてBIND(BIND9)を仮定する。これは、NetBSDが標準で取り入れている実装である。
ネットワーク構成図
今回管理するNetwork構成図は以下の通り。
DNSの設定において重要なのは、
- IP Address
- IPv6 Address
- hostname
である。
なお、Omni Graffleでファイルを作ったので、これも上げておく。example_org.graffle.gz
DNS用DB
次にDNS用のDBファイルを作成する。
正引き、逆引きを共に設定する必要がある。
言葉がわからない人や、意味が判らない人は、Googleにお伺いを立てれば調べられると思うので、そちらを参照のこと。
今回の設定においては、
- example.orgは既にレジストラによって登録されている
- example.orgは、NSレコードを2つ持っている。
- 登録されているNSレコードは、10.1.1.2と10.1.1.4である
- IPv4アドレスの逆引きは、上流のISPによって既に委任されている。
- 0exam.1.1.10.in-addr.arpa. として登録されている
- NSとして、10.1.1.2と10.1.1.4が登録されている
- IPv6 アドレスの逆引きは提供されていない
ものとする。
このような状況の場合、DNSサーバーに準備しなければならないデータベースは
- example.org用の正引きData
- 0exam.1.1.10.in-addr.arpa用の逆引きData
- Root DNSサーバーの一覧
- named用の設定ファイル
となる。
正引き用Data file
正引き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
逆引き用Data file
正引きと同じように逆引きも設定する。
逆引きファイルは 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.
Root DNSサーバー一覧
NetBSDを利用している場合は、/etc/namedb/root.cacheがそれ。
わざわざ作る物ではない。
named用の設定ファイル
rndc keyの作成
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 #
これで、種となる鍵ファイルが出来上がる。
- rndc.keyを作成
# 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=="; };
- rndc.confを作成
# cat /etc/rndc.conf include "/etc/namedb/rndc.key"; options { default-server localhost; default-key RNDC; }; #
これでrndcが利用できるようになる。
DNSSEC
サブドメイン設定に関して
DNS Serverの起動とデバッグ
以上の設定が済んだら、/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サーバーがエラーを出していないことを確認しよう。