DNSSECは、ドメインを持っている人が行う署名と、名前解決を行う際の検証の2段階があります。まずは、検証を行うためにサーバの設定をしました。環境はUbuntu 10.04 LTS Server x64です。
BINDの設定
まずはBINDの設定です。まずはnamed.conf.optionsに追加の設定を行います。
% sudo vim /etc/bind/named.conf.options options { dnssec-enable yes; dnssec-validation yes; };
続いてnamed.confに1行追記します。
% sudo vim /etc/bind/named.conf include "/etc/bind/named.conf.managed-keys";
named.conf.managed-keysファイルを作成します。
% sudo vim /etc/bind/named.conf.managed-keys managed-keys { "." initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0="; };
最後にBINDを再起動して完了です。
% sudo /etc/init.d/bind9 restart
検証
まずは正しく引けるかを見てみます。通常のdigに検証が出来たか応答するオプション(+adflag; authentic data)を付加します。
% dig jprs.co.jp +adflag ; <<>> DiG 9.7.0-P1 <<>> jprs.co.jp +adflag ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13083 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 5 ;; QUESTION SECTION: ;jprs.co.jp. IN A ;; ANSWER SECTION: jprs.co.jp. 86400 IN A 202.11.16.167 ;; AUTHORITY SECTION: jprs.co.jp. 86397 IN NS ns02.jprs.co.jp. jprs.co.jp. 86397 IN NS ns01.jprs.co.jp. jprs.co.jp. 86397 IN NS ns03.jprs.co.jp. ;; ADDITIONAL SECTION: ns01.jprs.co.jp. 86397 IN A 202.11.17.107 ns01.jprs.co.jp. 86397 IN AAAA 2001:df0:8:6::10 ns02.jprs.co.jp. 86397 IN A 202.11.16.227 ns02.jprs.co.jp. 86397 IN AAAA 2001:df0:8:20::10 ns03.jprs.co.jp. 86397 IN A 61.200.83.204 ;; Query time: 3420 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Thu May 5 01:38:24 2011 ;; MSG SIZE rcvd: 205
flagsにadが増えていますので、DNS応答に含まれる署名の検証が出来ています。そして、検証のため応答が少し遅くなりましたが、大きく変わったところがないためちゃんと検証できているのか分かりません。そこで、検証に失敗するドメインを引いてみます。
% dig dnssec-failed.org soa +adflag ; <<>> DiG 9.7.0-P1 <<>> dnssec-failed.org soa +adflag ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 5052 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;dnssec-failed.org. IN SOA ;; Query time: 183 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Thu May 5 01:53:59 2011 ;; MSG SIZE rcvd: 35
リゾルバによる署名の検証を無効(+cdflag; checking disabled)にした場合はちゃんと解決できます。
% dig dnssec-failed.org soa +cdflag ; <<>> DiG 9.7.0-P1 <<>> dnssec-failed.org soa +cdflag ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16871 ;; flags: qr rd ra cd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5 ;; QUESTION SECTION: ;dnssec-failed.org. IN SOA ;; ANSWER SECTION: dnssec-failed.org. 86372 IN SOA dns101.comcast.org. dnsadmin.comcast.net. 2010101502 900 180 604800 7200 ;; AUTHORITY SECTION: dnssec-failed.org. 85535 IN NS dns102.comcast.org. dnssec-failed.org. 85535 IN NS dns103.comcast.org. dnssec-failed.org. 85535 IN NS dns105.comcast.org. dnssec-failed.org. 85535 IN NS dns104.comcast.org. dnssec-failed.org. 85535 IN NS dns101.comcast.org. ;; ADDITIONAL SECTION: dns101.comcast.org. 3472 IN A 68.87.29.164 dns102.comcast.org. 85535 IN A 68.87.85.132 dns103.comcast.org. 85535 IN A 68.87.76.228 dns104.comcast.org. 85535 IN A 68.87.68.244 dns105.comcast.org. 85535 IN A 68.87.72.244 ;; Query time: 1 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Thu May 5 01:54:27 2011 ;; MSG SIZE rcvd: 284
署名を誤った場合は、このように名前解決が行えないのと同様になります。
Leave a Reply to BIND9でDNSSEC対応する | ねころくぶろぐ Cancel reply