DNSSECの検証を行う

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

署名を誤った場合は、このように名前解決が行えないのと同様になります。

さいごに

test.dnssec-or-not.orgへどうぞ。


Posted

in

by

Tags:

Comments

One response to “DNSSECの検証を行う”

  1. […] 僕のDNSサーバを使ってもだめよw 参考URL DNSSEC の設定 DNSSECの検証を行う カテゴリー: Linux, サーバ, ネットワーク   作成者: neko6 […]

Leave a Reply

Your email address will not be published. Required fields are marked *