目錄表

Bind DNS DNSSEC 實作

本偏僅放快速實作指令,相關理論及入門請拜讀網路上各個長輩的大作

實作步驟

  1. 產生 DNSKEY
    1. 使用 RSA/SHA-1 演算法 (已不建議使用,請直接使用第二組 SHA-256)
      1. 產生 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
      2. 產生 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
    2. 使用 RSA/SHA-256 演算法
      • 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 = RSA/SHA-256
      • Tips: 產生出來之後常常會混亂哪個是 KSK 哪個是 ZSK,簡單的判斷法,由於 KSK 是 2048 bits,所以檔案大小會比較大,這樣看最快了~
  2. 將 DNSKEY 放入 zone file
    • cat *.key » /etc/namedb/jal.tw.db
  3. 簽署網域
    • 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 放反了,對不起。
  4. 啟用該檔案
    • zone “jal.tw” {
      	type master;
      	file “/etc/namedb/jal.tw.db.signed”;
      };
  5. reload named
    • named.reload
  6. 因為常常會忘記每個重新簽發,所以寫了個 php 小程式直接丟 crontab 處理。 GitHub 連結

完成後檢查

註冊 DS 紀錄至上層 DNS

本人在此步驟卡關卡了大概有三年之久了,從此文章完成後沒多久就發現
TFNHiNet DNSSEC 都已經完成 DS 登記頁面了。
但由於網頁上寫的不清不楚的(根本沒寫),完全沒有任何有用的說明導致從來沒成功過。
最後在瘋狂測試及直接看原文的相關說明後終於被我試出來了。

Key ID Algorithm Number DS紀錄
46449 5 E548AEB1E2988A3D2F2BC64631E305D4ABD23181B3AFAE785D6549D460CBD40B
42644 8 0D2CF5DB1BB12345E9122AE18DDA3C55F53CC2D2C1FFA398E93549D4132D2A21
Keytag DS 設定
42644 0D2CF5DB1BB12345E9122AE18DDA3C55F53CC2D2C1FFA398E93549D4132D2A21

相關網站

  1. DNSSEC 入門介紹 ← 觀念講解的很清楚
  2. TWNIC DNSSEC 實作班投影片(Link Broken) ← 大大推薦,我是按照這份完成設定的,可惜它失效了

結論