DNS för knutar¶
Knot DNS is an open source authoritative DNS server that can be used for DNSSEC. To use Knot DNS with the NetHSM please install and configure the PKCS#11 module as described here.
Manuellt läge¶
I manuellt läge måste nycklarna genereras och hanteras manuellt.
Endast Operator-användaren behövs i konfigurationsfilen för PKCS#11-modulen. Lösenordet kan anges med hjälp av pin-value i PKCS#11 URI i knot.conf.
Lägg till följande rader i konfigurationsfilen för Knot DNS /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
Värdet token i PKCS#11 URI är label från p11nethsm.conf. Justera sökvägen till libnethsm_pkcs11.so efter behov.
Kör följande kommandon för att generera nycklarna:
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"
Automatiskt läge¶
I automatiskt läge genereras nycklarna av Knot DNS och lagras i NetHSM.
En administratörs- och en operatörsanvändare behövs i PKCS#11-modulkonfigurationen.
Lägg till följande rader i konfigurationsfilen för 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
Att ställa in key-label till on ` ändrar ingenting och pkcs11-modulen ignorerar den angivna etiketten och returnerar alltid det hexadecimala nyckel-ID:t som etikett. Policyn använder mycket korta nyckellivstider och TTL:er för teständamål.