bindにDNSSECを設定して、DNSの検証が出来るようにする。
DNSSECは、レジストラが対応している必要がある。
ここでは、バリュードメインで確認した。
$ root@uranus:~# dnssec-keygen -f KSK -a RSASHA256 -b 4096 -r /dev/urandom -n zone example.jp Generating key pair....................................................++...................++ Kexample.jp.+008+44209 $ dnssec-keygen -r /dev/urandom -a RSASHA256 -b 1024 -n zone example.jp Generating key pair........++++++ .....................................++++++ Kexample.jp.+008+08748
# cp -p Kexample.jp.*.key /var/cache/bind/ # chown bind. /var/cache/bind/*.key # echo '$INCLUDE "Kexample.jp.+008+44209.key"' >> /var/cache/bind/example.zone # echo '$INCLUDE "Kexample.jp.+008+08748.key"' >> /var/cache/bind/example.zone # vi /var/cache/bind/example.zone
# dnssec-signzone -o example.jp /var/cache/bind/example.zone Verifying the zone using the following algorithms: RSASHA256. Zone signing complete: Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 0 stand-by, 0 revoked /var/cache/bind/example.zone.signedカレントディレクトリに"dsset-example.jp."ファイルが出来る。
// file "example.zone"; file "example.zone.signed";
$ cat dsset-example.jp. example.jp. IN DS 44209 8 1 xxxxxxxxxxxxxxx example.jp. IN DS 44209 8 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DSより後ろの「44209 8 〜」の部分(2つ)を、レジストラのDNSSECに設定する。
DNS情報が反映されるまで待ち、以下のコマンドで"flags:"に"ad"が表示されていれば成功。
$ dig +dnssec www.example.jp ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> +dnssec www.example.jp ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2986 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 9 (以下略)