ノットDNS¶
`Knot DNS<https://www.knot-dns.cz/>`__ はDNSSECに使用できるオープンソースの権威DNSサーバーです。NetHSMでKnotDNSを使用するには、` <./pkcs11-setup.html>`__に記載されているように、PKCS#11モジュールをインストールして設定してください。
マニュアル・モード¶
手動モードでは、キーを手動で生成し、管理しなければならない。
PKCS#11 モジュール設定ファイルで必要なのは、Operator ユーザーのみである。パスワードは、knot.confの`PKCS#11 URI<https://www.rfc-editor.org/rfc/rfc7512>`__の``pin-value``で指定できる。
KnotDNS 設定ファイル``/etc/knot/knot.conf`` に以下の行を追加する:
keystore:
- id: nethsm_keystore
backend: pkcs11
config: "pkcs11:token=localnethsm /usr/local/lib/libnethsm_pkcs11.so"
policy:
- id: manual_policy
keystore: nethsm_keystore
manual: on
zone:
- domain: example.com
storage: "/var/lib/knot"
file: "example.com.zone"
dnssec-signing: on
dnssec-policy: manual_policy
PKCS#11 URIの``token`` の値は、p11nethsm.conf
の``label`` である。libnethsm_pkcs11.so
へのパスは必要に応じて調整してください。
キーを生成するには、以下のコマンドを実行する:
nitropy nethsm \
--host "localhost:8443" --no-verify-tls \
--username "admin" \
generate-key \
--type "EC_P256" --mechanism "ECDSA_Signature" --length "256" --key-id "myKSK"
# knot's keymgr expects the binary key id in hex format
# myKSK in ascii-binary is 0x6d794b534b, e.g. echo -n "myKSK" | xxd -ps
keymgr "example.com" import-pkcs11 "6d794b534b" "algorithm=ECDSAP256SHA256" "ksk=yes"
nitropy nethsm \
--host "localhost:8443" --no-verify-tls \
--username "admin" \
generate-key \
--type "EC_P256" --mechanism "ECDSA_Signature" --length "256" --key-id "myZSK"
# myZSK in ascii-binary is 0x6d795a534b
keymgr "example.com" import-pkcs11 "6d795a534b" "algorithm=ECDSAP256SHA256"
自動モード¶
自動モードでは、鍵はKnot DNSによって生成され、NetHSMに保存される。
PKCS#11 モジュールの設定には、Administrator と Operator ユーザーが必要である。
Knot DNS設定ファイル``/etc/knot/knot.conf`` に以下の行を追加する:
keystore:
- id: nethsm_keystore
backend: pkcs11
config: "pkcs11:token=localnethsm /usr/local/lib/libnethsm_pkcs11.so"
#key-label: on
policy:
- id: auto_policy
keystore: nethsm_keystore
ksk-lifetime: 5m
zsk-lifetime: 2m
dnskey-ttl: 10s
zone-max-ttl: 15s
propagation-delay: 2s
zone:
- domain: example.com
storage: "/var/lib/knot"
file: "example.com.zone"
dnssec-signing: on
dnssec-policy: auto_policy
key-label
を``on`` に設定しても何も変わらず、pkcs11モジュールは与えられたラベルを無視し、常に16進数のキーIDをラベルとして返す。pkcs11モジュールは与えられたラベルを無視し、常に16進数のキーIDをラベルとして返します。このポリシーでは、テスト目的で非常に短いキー寿命とTTLを使用しています。