BIND 9.2.2以降で使用できるDNSSECはDS方式のみで、RFC 2535方式は使用できません。
DS方式で鍵の作成とゾーンの署名を行ってみましょう。ただし、上位ドメインにDSレコードを登録する手順が現時点ではないため、ZSK鍵への署名とDSレコードの登録方法については言及しません。
BIND 9は、標準インストールではDNSSECに対応していないため、再インストールが必要です。RPMなどのパッケージも同様にDNSSEC対応版が必要ですが、ほとんどのディストリビューションでは用意されていないため、ソースからコンパイルする必要があります。
configure実行時に--with-opensslでOpenSSL(http://www.openssl.org/)のインストール先を指定します。通常は/usrですが、OpenSSLをソースからインストールした場合は/usr/localになっている場合もあります。
# wget ftp://ftp.isc.org/isc/bind9/9.2.3/bind-9.2.3.tar.gz ←最新のBINDを入手 |
注:この場合、namedやdigなどのバイナリは/usr/localにインストールされます。--prefixで変更できますが、named.confの指定位置も変わります。 |
# make |
注:PGP Signatureによるソースファイルの検証などについては、第1回を参照。 |
named.confやゾーンファイルは通常どおりに用意します(参考:第2回)。DNSSECのための作業はここでは特に必要ありません。
次に、ZSK鍵のペアを作成します。作業は/var/namedで行います。
# /usr/local/sbin/dnssec-keygen -a RSA -b 1024 -n ZONE example.jp |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
注:マシンパワーによっては数分かかります。コマンドパスおよびexample.jpは適宜書き換えてください。
暗号アルゴリズム、鍵の長さは任意のもので構いませんが、KSK鍵を作成する際は更新頻度を考え、鍵の長さは十分大きな値に設定します。 ここまでの作業で、鍵の名前.key、鍵の名前.privateファイルの対ができます。*.keyが公開鍵、*.privateが秘密鍵です。*.keyファイルは、ゾーン情報に登録できるようにフォーマットされています。
ZSK鍵の公開鍵をゾーンファイルに記述します。
準備ができたら、ゾーンファイルに署名します。すでに運用に入っているゾーンファイルの場合は、先にSOAレコード中のSerial値を上げておきます。
以上の作業により、以下のようなゾーンファイルが作成されます。
作成した署名済みゾーンファイル(example.zone.signed)を現在のゾーンファイルに置き換え、
やnamedの再起動でゾーン情報を更新すれば作業終了です。 注:これだけでは、DNSSEC問い合わせに対応できません。ZSK鍵への署名とDSレコードの登録が必要です。
KEY/SIG/NXTレコードDNNSECは仕組みが多少複雑ですが、実際のゾーンファイルの作成は上記のようにdnssec-signzoneコマンドで、ほぼ自動で行えます。署名後のゾーンファイルを見ると、新しい資源レコードが追加されているのが分かります。
上記の例では、dns.example.jpの次にpc1.example.jpのAレコードが来ることが分かります。こうすることで、(dns2やpc0などの)レコード名が存在しないことも保証できます。 今回使用したゾーンファイルの例では、example.jp→dns.example.jp→pc1→pc2→pc3→pc4→pc5(注)の順で記述されています。 注:ホスト名の後ろのexample.jpを省略しています。
署名されたゾーンファイルのNXTレコードを見ると、その連鎖順(注)も同じように作られ、最後はpc5→example.jpに戻っています。ドメイン名で連鎖を作り、さらに循環させることで、連鎖の間にはいかなるドメイン名も存在しないことを保証しています。例えば、dns.example.jpの次にpc1.example.jpのAレコードが来るため、dns0.example.jpやdns1.example.jpのようなドメイン名は存在が否定されます。 注:大文字・小文字を区別しないアルファベット順になります。
DNSSEC普及の課題BIND 9におけるDS方式への変更など、DNSSECにはまだ発展途上の感があり、普及には時間を要すると思われます。また、下位ゾーンから送られてくる公開鍵を上位ゾーンが確認する際に、いかに出元の保証を行うかなど、まだまだ検討の余地が残されています。何より、現在動いているシステムをどのように新しいものに置き換えるのか。IPv6と同様、大変重要な課題です。 Copyright © ITmedia, Inc. All Rights Reserved. SpecialPR
スポンサーからのお知らせPR
SpecialPR
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR
|