DNSSEC-Migration

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.

Migration von 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:

  • die Datei /etc/bind/named.conf.options bekommt dnssec-policy-Einträge, in denen die unterstützten Algorithmen und Rotationszeiträume verwaltet werden
  • die Schlüssel werden von /etc/bind/keys/ nach /var/lib/bind/keys/ verschoben und deren Berechtigungen angepasst
  • in /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 angepasst
  • zudem erhalten die vorhandenen KSK-Schlüssel ein DSPublish-Datum gesetzt (damit BIND davon ausgeht, dass diese bereits im DNS veröffentlicht sind)
  • BIND fügt wiederum automatisch ein 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.

Multi-Server-Installationen

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.

Diagnose & Tools

  • 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

Ausblick

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. :-)