■セカンダリDNSもDNSSEC対応にしてみる
※zoneファイルが必要、「managed-keys.bind」はプライマリDNSからコピー。
squeeze+bindでDNSSECに対応する
http://d.hatena.ne.jp/labunix/20120503
■必要なパッケージの導入
$ sudo apt-get install -y dnssec-tools libmailtools-perl libcrypt-openssl-random-perl
■「logging」をinfoからdebugにする。
bindデーモンの再読み込みでdebugモードに。
「rndc reload」でzoneがクリアされる。
$ sudo cp -pi /etc/bind/named.conf.options /etc/bind/named.conf.options.rndc
$ sudo /etc/init.d/bind9 reload
$ sudo rndc reload
03-May-2012 19:28:43.770 general: info: reloading zones succeeded
03-May-2012 19:28:43.775 database: debug 1: calling free_rbtdb(.)
03-May-2012 19:28:43.775 database: debug 1: done free_rbtdb(.)
■「bind.keys」を確認してincludeする。
※includeすると、rndcポートがリッスンできなくなるので、まだ行わない。
$ wc -l /etc/bind/bind.keys
49 /etc/bind/bind.keys
■「file」指定で、少なくとも「zone」ファイルを作成して署名する
デバッグレベルが6以上だとやはりプライマリDNSと同じ警告が出る。
$ ls /var/cache/bind/
localdomain.rev localdomain.zone managed-keys.bind named_dump.db
$ cd /etc/bind && sudo zonesigner -genkeys -usensec3 -zone localdomain /var/cache/bind/localdomain.zone
if zonesigner appears hung, strike keys until the program completes
(see the "Entropy" section in the man page for details)
Generating key pair..................++++++..................................
.....................................++++++
Generating key pair...........++++++ ..................++++++
Generating key pair..........................................................
.......................................................................+++
.............................................................................
.............................................................................
...........+++
Verifying the zone using the following algorithms: RSASHA256.
Zone signing complete:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
ZSKs: 1 active, 1 stand-by, 0 revoked
zone signed successfully
localdomain:
KSK (cur) 43765 -b 2048 05/03/12 (localdomain-signset-00003)
ZSK (cur) 15129 -b 1024 05/03/12 (localdomain-signset-00001)
ZSK (pub) 28920 -b 1024 05/03/12 (localdomain-signset-00002)
zone will expire in 4 weeks, 2 days, 0 seconds
DO NOT delete the keys until this time has passed.
$ wc -l /var/cache/bind/localdomain.zone.signed
157 /var/cache/bind/localdomain.zone.signed
$ sudo /usr/sbin/donuts --level 9 /var/cache/bind/localdomain.zone.signed localdomain
localdomain:
Warning: Only 1 NS record(s) for localdomain found, but at least 2
are suggested/required
1 errors found in /var/cache/bind/localdomain.zone.signed
$ sudo /usr/sbin/donuts --level 5 /var/cache/bind/localdomain.zone.signed localdomain
0 errors found in /var/cache/bind/localdomain.zone.signed
■debugログでエラーも警告も出ていないので、
セカンダリDNSの「/var/cache/bind/managed-keys.bind」は空なので、
プライマリDNSからコピー(これが無いと起動出来ない)
dnssecのオプションを追加して、DNSSECを有効にする。
$ sudo diff -b /etc/bind/named.conf.options.rndc /etc/bind/named.conf.options
33a34,37
> dnssec-enable yes;
> dnssec-validation yes;
> dnssec-lookaside auto;
> managed-keys-directory "/var/cache/bind/";
35a40
> include "/etc/bind/bind.keys";
40c45
< severity info;
---
> severity debug;
48a54,55
>
$ sudo named-checkconf && sudo /etc/init.d/bind9 reload
■adフラグの確認
$ dig +dnssec jprs.jp @127.0.0.1 2>&1| grep -A 1 HEADER
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38463
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 1