bindのmasterゾーンをDNSSECに対応

まずは、http://xoops.fens.net/modules/wiki/?Linux%2FMemo%2FDNSSEC%20%E3%81%AE%E8%A8%AD%E5%AE%9A を参考にしながらやっていく。
通常のbindの設定はできていることを前提にする。

http://www.atmarkit.co.jp/fnetwork/rensai/dnssec02/01.html もいいんだけど、まだ本題に入らないから概要でおしまい。(早く更新してー!!)

http://jprs.jp/dnssec/ を見ながら進めるのがよさそう。
ちょっと古いけど、これが詳しい感じがする。 http://www.nic.ad.jp/ja/materials/iw/2009/proceedings/h3/iw2009-h3-01.pdf

  • zskを作る
    # dnssec-keygen -r "/dev/urandom"  -a NSEC3RSASHA1 -b 1024 kensuke.jp > zsk-kensuke.jp

    zsk-kensuke.jpには生成された鍵のファイル名が記録されて、どっちのカギだった変わらなくならないようにする。
    1組の鍵ファイルができた。 Kkensuke.jp.+007+49274.key と Kkensuke.jp.+007+49274.private

    # ls -al Kkensuke.jp.+007+49274.*
    -rw-r--r-- 1 root bind  378 2011-05-28 23:36 Kkensuke.jp.+007+49274.key
    -rw------- 1 root bind 1011 2011-05-28 23:36 Kkensuke.jp.+007+49274.private
  • KSKを作る
    # dnssec-keygen -r "/dev/urandom"  -a NSEC3RSASHA1 -b 2048 -f KSK kensuke.jp > ksk-kensuke.jp

    もう一組の鍵ファイルが出来上がった。

    # cat ksk-kensuke.jp
    Kkensuke.jp.+007+19593
    root@dnstest:/etc/bind# ls -al Kkensuke.jp.+007+19593*
    -rw-r--r-- 1 root bind  552 2011-05-28 23:42 Kkensuke.jp.+007+19593.key
    -rw------- 1 root bind 1779 2011-05-28 23:42 Kkensuke.jp.+007+19593.private		 
    
  • ゾーンファイルにKSK、ZSKの公開鍵を登録する。
    公開鍵のみをまとめたファイルを作成して、includeでゾーンファイルから読み込む
    # cat `cat ksk-kensuke.jp`.key `cat zsk-kensuke.jp`.key > kensuke.jp.keys
    
    # diff -uN db.kensuke.ext.orig db.kensuke.ext
    --- db.kensuke.ext.orig 2011-05-20 10:00:46.888120894 +0900
    +++ db.kensuke.ext      2011-05-28 23:51:01.915315296 +0900
    @@ -2,6 +2,7 @@
     ; BIND data file for local loopback interface
     ;
     $TTL   1D
    +$INCLUDE kensuke.jp.keys
     @      IN      SOA     ns hostmaster (
                             2009010101     ; Serial
                             8H             ; Refresh
  • 署名の実行
    # dnssec-signzone -H 3 -3 123ABC -o kensuke.jp -k `cat ksk-kensuke.jp`.private db.kensuke.ext 
    `cat zsk-kensuke.jp`.private
    
    Verifying the zone using the following algorithms: NSEC3RSASHA1.
    Zone signing complete:
    Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
                             ZSKs: 1 active, 0 stand-by, 0 revoked
    db.kensuke.ext.signed		

    2つの出力ファイルが出力される。
    -dsset-kensuke.jp.
    -db.kensuke.ext.signed

  • DSの登録(まだやってない)
    dsset-kensuke.jpの内容を親ドメインに登録をする。
  • bindの設定を変更して、DNSSECを有効に
    named.confの設定を変更する。
    options 部分 に dnssec-enable yes;を追記

    ゾーンファイルを署名済みのものに変更して、reload

  • digコマンドでDNSSEC対応しているか確認
    # dig +dnssec +norec @127.0.0.1 www.kensuke.jp a