這是本文件的舊版!
Bind DNS DNSSEC 實作
本偏僅放快速實作指令,相關理論及入門請拜讀網路上各個長輩的大作
實作步驟
- 產生 DNSKEY
- 產生 KSK (Key Signing Key)
- dnssec-keygen -r /dev/urandom -f KSK -a RSASHA1 -b 2048 -n ZONE jal.tw
- 同樣會產生二個檔案(檔名請勿修改)
- Kjal.tw.+005+46449.key
- Kjal.tw.+005+46449.private
- 產生 ZSK (Zone Signing Key)
- dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE jal.tw
- 會產生二個檔案(檔名請勿修改)
- Kjal.tw.+005+30233.key
- Kjal.tw.+005+30233.private
- 005 是代表 RSASHA1,演算法列表
- 30258 代表 Key ID
- 使用 RSASHA256 演算法
- dnssec-keygen -r /dev/urandom -f KSK -a RSASHA256 -b 2048 -n ZONE jal.tw
- Kjal.tw.+008+33567.key
- Kjal.tw.+008+33567.private
- dnssec-keygen -r /dev/urandom -a RSASHA256 -b 1024 -n ZONE jal.tw
- Kjal.tw.+008+42644.key
- Kjal.tw.+008+42644.private
- 這時你會發現演算法變成 8 = RSASHA256
- 將 DNSKEY 放入 zone file
- cat *.key » /etc/namedb/jal.tw.db
- 簽署網域
- dnssec-signzone -o jal.tw -k Kjal.tw.+008+33567.key /etc/namedb/jal.tw.db Kjal.tw.+008+42644.key
- dnssec-signzone -o domain -k KSK_file zone_file ZSK_file
- 完成後會出現 /etc/namedb/jal.tw.db.signed
- ps.20150116: 我直到今天才發現我把 KSK & ZSK 放反了,對不起。
- 啟用該檔案
zone “jal.tw” { type master; file “/etc/namedb/jal.tw.db.signed”; };
- reload named
- named.reload
完成後檢查
- dig any trace jal.tw
- dig +dnssec jal.tw
- dig any trace jal.tw @8.8.8.8
- dig -6 any trace jal.tw @dns.google.com
- dig -6 any trace he.net @ns2.he.net
註冊 DS 紀錄至上層 DNS
本人在此步驟卡關卡了大概有三年之久了,從此文章完成後沒多久就發現
TFN 及 HiNet DNSSEC 都已經完成 DS 登記頁面了。
但由於網頁上寫的不清不楚的(根本沒寫),完全沒有任何有用的說明導致從來沒成功過。
最後在瘋狂測試及直接看原文的相關說明後終於被我試出來了。
- 所需檔案 dsset-jal.tw. 內容會類似下面
jal.tw. IN DS 46449 5 1 3973B7E50692468334CA8B1517D305D4BC26CBD6 jal.tw. IN DS 46449 5 2 E548AEB1E2988A3D2F2BC64631E305D4ABD23181B3AFAE785D6549D4 60CBD40B jal.tw. IN DS 42644 8 1 9D434E2926E5B3AB334CA8B1517D977160CBD40B jal.tw. IN DS 42644 8 2 0D2CF5DB1BB12345E9122AE18DDA3C55F53CC2D2C1FFA398E93549D4 132D2A21
- TFN DS 註冊方式
- 重點在於那個 4 跟 1 之間的空格請刪除,它就會變成長度 64 的 DS 紀錄
- TFN 可支援不同的 Algorithm 所產生的紀錄
Key ID | Algorithm Number | DS紀錄 |
---|---|---|
46449 | 5 | E548AEB1E2988A3D2F2BC64631E305D4ABD23181B3AFAE785D6549D460CBD40B |
42644 | 8 | 0D2CF5DB1BB12345E9122AE18DDA3C55F53CC2D2C1FFA398E93549D4132D2A21 |
- HiNet DS 註冊方式
- 個人沒有 HiNet 的,但是從 GSN 的文件看的話,我猜輸入格式如下
- 另外,HiNet 直接寫明僅接受 RSA/SHA-256 所產生的紀錄(所以 dnssec-keygen 請用 -a RSASHA256 來產生 key)
Keytag | DS 設定 |
---|---|
42644 | 0D2CF5DB1BB12345E9122AE18DDA3C55F53CC2D2C1FFA398E93549D4132D2A21 |
相關網站
- DNSSEC 入門介紹 ← 觀念講解的很清楚
- <del>TWNIC DNSSEC 實作班投影片(Link Broken)</del> ← 大大推薦,我是按照這份完成設定的
結論
- 我完成所有設定了,
可是,我卻無法找上層來進行簽署的動作,因為上層也都還沒完成。 - 我終於可以刪除上面這句話的後半部了,以及真正的完成前半部。