2016年11月24日 星期四

[Gentoo] bind9 的 dnssec 之拖了三年終於弄好?了

總之先產生 Key,然後我這邊是使用 hinet 可以支援的最高標準: RSA/SHA256,長度 1024,會需要花一點時間在執行。

$ dnssec-keygen -r /dev/random -a RSASHA256 -b 1024 -n ZONE mkx.tw
Generating key pair.........++++++ .++++++
Kmkx.tw.+008+59265

接著用 dnssec-signzone 來簽署, -S 是智慧型簽署,只要把你要簽署的檔案放到目前的資料夾中就可以了,所以我就先 ln 把我自己的 zone file 弄到目前的資料夾底下(檔名就設成 zone,以我的為例是 mkx.tw),程式會自己去讀檔案裡面的配置,然後逐一簽署:

$ ln -s /path/to/mkx.tw.fwd ./mkx.tw
$ dnssec-signzone -S -z mkx.tw
Fetching ZSK 59265/RSASHA256 from key repository.
Verifying the zone using the following algorithms: RSASHA256.
Zone fully signed:
Algorithm: RSASHA256: KSKs: 0 active, 0 stand-by, 0 revoked
                      ZSKs: 1 active, 0 stand-by, 0 revoked
mkx.tw.signed

這邊會產生兩個檔案: dsset-mkx.tw 跟 mkx.tw.signed。
然後就可以來修改 config 檔 (named.conf)

options {
    ...
    dnssec-enable yes;
    dnssec-validation yes;
    ...
}

zone "mkx.tw" IN {
    file "/path/to/mkx.tw.signed";
};

最後到 hinet 網域註冊那邊登記 DS 記錄,這時候需要打開 dsset-mkx.tw 來看一下

$ cat dsset-mkx.tw
mkx.tw.                 IN DS 59265 8 1 DF0619E7A7CD1DD2DEDB9D431637C905ACE6B299
mkx.tw.                 IN DS 59265 8 2 D14507C8639B06B1CAD8516F8E997A9D824FD07BE04B4E75D06A0754 CB737FFF

以我的例子來說,59265 就是 key tag,而 hinet 表示 DS 記錄長度需要 64,一開始不太懂所以試了幾次,結果發現原來就是第二行的後面那兩串去掉中間的空白,嗯 ... 長度是 64 沒錯啦,不過 hinet 網頁真的寫得不清不楚啊 ...

沒有留言:

張貼留言