Kategorie: DNS
Erstellt: 09.04.2025
LiveConfig unterstützt DNSSEC schon seit Version 1.8.2 (siehe Artikel Verwendung von DNSSEC). Mit dem LiveConfig-Update auf Version 2.18 bzw. Version 3.0 erfolgt eine technisch notwendige Migration der DNSSEC-Konfiguration, welche wir in diesem Dokument etwas ausführlicher beschreiben.
auto-dnssec
zu dnssec-policy
Bislang nutzte LiveConfig für DNSSEC die BIND-Option auto-dnssec: maintain
. Diese ist inzwischen aber veraltet (“deprecated”) und wurde durch die Methode dnssec-policy
ersetzt. Spätestens ab BIND 9.20 wird auto-dnssec
nicht mehr unterstützt - die Umstellung ist also obligatorisch.
Das neue Verfahren (dnssec-policy
) ist sehr mächtig und vereinfacht die Verwendung von DNSSEC nochmal erheblich. Das verbesserte Schlüsselmanagement erfordert aber einen Schreibzugriff durch BIND auf die Schlüssel. Auf das bisher verwendete Verzeichnis /etc/bind/keys/
hat BIND mit AppArmor aber keinen Schreibzugriff, daher müssen wir die Schlüssel nach /var/lib/bind/keys/
verschieben. Zudem müssen die Schlüssel noch um einige Metadaten erweitert werden (u.a. Zeitpunkt der Veröffentlichung im DNS), damit BIND die Gültigkeitszeiträume berechnen und automatisch eine Rotation anstoßen kann.
Mit dem Update von LiveConfig auf Version 2.18 bzw 3.0 werden daher folgende Änderungen an der BIND/DNSSEC-Konfiguration durchgeführt:
/etc/bind/named.conf.options
bekommt dnssec-policy
-Einträge, in denen die unterstützten Algorithmen und Rotationszeiträume verwaltet werden/etc/bind/keys/
nach /var/lib/bind/keys/
verschoben und deren Berechtigungen angepasst/etc/bind/zones.liveconfig
wird jeweils auto-dnssec maintain;
durch dnssec-policy <policy>;
ersetzt, die Option dnssec-secure-to-insecure yes;
entfernt sowie die key-directory
-Anweisung angepasstDSPublish
-Datum gesetzt (damit BIND davon ausgeht, dass diese bereits im DNS veröffentlicht sind)SyncPublish
-Datum hinzu und erstellt automatisch entsprechende CDS
- und CDNSKEY
-Records.Grundsätzlich sind nur DNS-Zonen mit aktiviertem DNSSEC betroffen, und diese werden nur auf dem Primary-DNS-Server migriert. Secondary-Server bekommen von all dem nichts mit.
Warten Sie nach dem Update am besten etwa fünf Minuten, bevor Sie prüfen ob alles korrekt funktioniert.
DNSSEC-Schlüssel, die nach dem Update auf 2.18 bzw. 3.0 noch in /etc/bind/keys/
liegen, wurden entweder irgendwann mal manuell dort hinzugefügt (werden also nicht von LiveConfig verwaltet), oder sind veraltet/unbenutzt und können gelöscht werden.
Bei Multi-Server-Installationen von LiveConfig spielt es keine Rolle, in welcher Reihenfolge Sie die Server aktualisieren. Die DNSSEC-Migration wird nur jeweils dann für Zonen angestoßen, wenn sowohl der Client (mit BIND als Primary-DNS) als auch der LiveConfig-Server mindestens mit Version 2.18 laufen.
prüfen Sie nach dem LiveConfig-Update, ob es im BIND-Protokoll Auffälligkeiten gibt (entweder /var/log/named/messages
, /var/log/messages
oder via journalctl -S today -u named.service
)
mit rndc dnssec -status <zone>
lässt sich der DNSSEC-Status einer Zone und ihrer Schlüssel prüfen - das sieht z.B. so aus:
# rndc dnssec -status example.org
dnssec-policy: lc-nsec3rsasha1-2048
current time: Wed Apr 9 12:43:45 2025
key: 13968 (NSEC3RSASHA1), KSK
published: yes - since Tue Apr 8 09:40:00 2025
key signing: yes - since Tue Apr 8 09:40:00 2025
No rollover scheduled
- goal: omnipresent
- dnskey: omnipresent
- ds: omnipresent
- key rrsig: omnipresent
key: 42374 (NSEC3RSASHA1), ZSK
published: yes - since Tue Apr 8 09:40:01 2025
zone signing: yes - since Tue Apr 8 09:40:01 2025
Next rollover scheduled on Sat Jun 7 08:35:01 2025
- goal: omnipresent
- dnskey: omnipresent
- zone rrsig: omnipresent
Wichtig ist hier, dass bei den Schlüsselzuständen möglichst überall omnipresent
steht. Eine Dokumentation der Schlüsselzustände findet sich auf https://kb.isc.org/docs/dnssec-key-states.
die Website https://dnsviz.net/ ermöglicht eine detailierte Prüfung von extern, ob DNSSEC korrekt funktioniert
Langfristig ist mit dnssec-policy
auch ein automatisiertes Deployment von DNSSEC geplant - dank CDS
- und CDNSKEY
-Records. Das Verfahren ist u.a. in RFC8078 beschrieben - nur unterstützen das bislang noch kaum Registrare. Wir haben aber ein Auge darauf. :-)