Zeitplan für die DNSSEC Einführung
Die Vorgehensweise für die Einführung auf den eigenen DNS-Servern ist weitestgehend frei wählbar, wenn man den in unseren Anleitungen zum Signieren der Zonen auf dem autoritativen Server und der Durchführung von Keyrollovers beschriebenen Mindestzeitbedarf beachtet.
Der größte Zeitaufwand liegt darin, sich mit der grundlegenden Theorie von DNSSEC und den möglichen Fallstricken bekannt zu machen. Hier ist auch eine gewisse Erprobungsphase auf einem nicht-kritischen System mit einer Testdomain zu empfehlen.
Notwendige und empfohlene Schritte
Die folgenden Schritte müssen durchgeführt, beziehungsweise vorbereitet werden:
- Registrar der auf DNSSEC umzustellenden Domain und DNSSEC unterstützen (und bekannt sein)
- Verfahren zur Kommunikation des KSK an die Parentzone muss klar sein (web interface, email)
- Testdomain zum üben registriert sein (unterhalb der TLD!)
- Ist ein Monitoring vorhanden, in das DNSSEC-Checks eingebunden werden können?
- Nameserver-Software muss (aktuelles) DNSSEC unterstützen (z.B. BIND >9.9, PowerDNS >4.x)
- Schlüssel (ZSK und KSK) pro Domain erzeugt werden
- Domain mit den ZSK und KSK auf dem autoritativen Nameserver signieren
- TTL (gewöhnlich 86400 Sekunden, d.h. 1 Tag) der Caching resolver abwarten
- Überprüfen mit DNSViz über externen Caching Resolver (z.B. Google/OARC):
DNSSEC-Kette ohne DS zwar unvollständig, aber die Zone sollte als signiert erkannt werden - KSK an die Parentzone kommunizieren, die den DS RR setzt
- TTL (86400 Sek) zur Propagierung in den Caching Resolvern abwarten
- Überprüfen der vollständigen Kette der DNSSEC-Signierung (dig oder DNSViz)
Zeitplan-Illustration
Die Ausführung an einem bestimmten Wochentag ist natürlich nicht nötig, sondern hier nur exemplarisch zu sehen.
1.-3.:
Die ersten drei Punkte sind nicht systemadministrativer Natur, sollten aber weit genug im Voraus geklärt werden. Die zeitliche Verteilung ist nach Belieben, aber die einzelnen Fragestellungen können durchaus ~ 1 Tag zur Klärung benötigen. Daher kann es sein, dass dafür eine Woche benötigt wird.
4.+5.:
Der Softwarestand der Nameserver muss bekannt sein, und darauf geprüft werden, ob DNSSEC unterstützt wird, die DNS-Software den aktuellen und kommenden root-KSK beinhaltet.
Woche | Montag | Dienstag | Mittwoch | Donnerstag | Freitag | Vorgang | ||
---|---|---|---|---|---|---|---|---|
~ im Voraus | Registrar unterstützt DNSSEC? | Verfahren der Kommunikation des KSK? | Testdomain registrieren! fh-xxx.de | Monitoring-System vorhanden? | Nameserver- Software unterstützt DNSSEC? | Vorbereitung | ||
... | Einarbeitung in | die Theorie... | Einarbeitung | |||||
1 | Nameserver Software updaten | ZSK/KSK für Testdomain erzeugen, Zone signieren | Monitoring aufsetzen / anpassen | Signierung der Zone überprüfen KSK der Parentzone kommunizieren | Überprüfung der korrekten DNSSEC-Signierung | Einrichtung auf der Testdomain | ||
ZSK rollover | Pre-publish | Methode | ||||||
2 | "3-Tage" rollover mit 2.ZSK | TTL abwarten 2.ZSK publiziert | Zone wir mit 2.ZSK signiert, 1.ZSK noch publiziert | ZSK rollover üben ("Schnell- durchlauf") | ||||
3 | TTL abwarten, nun auch auf caching resolvern | 1.ZSK wird aus der Zone gemäß Meta-Daten entfernt | nach TTL auch auf Caching resolvern | Ende des ZSK rollovers | ||||
KSK rollover | Double | signature | Methode | |||||
4 | "3-Tage" rollover mit 2.KSK, Inactivation und Deletion Daten des alten KSK setzen | TTL abwarten, nun auch auf caching resolvern: 2.KSK in der Zone publiziert | KSK an die Parentzone kommuni-zieren | TTL abwarten, nun auch auf caching resolvern: beide KSK im Parent | DNSKEYs werden nun mit beiden KSKs signiert | KSK rollover üben ("Schnell- durchlauf") | ||
5 | alten KSK deaktivieren, aber noch publizieren, Deletion Datum | TTL abwarten, nun auch auf caching resolvern: alter KSK nun nicht zum Signieren verwendet | alter KSK sollte nun aus der Zone verschwunden sein | TTL abwarten, nun auch auf caching resolvern: nun sollte auch in den Caching resolvern nur noch der neue KSK sein | Ende des KSK rollovers | |||
6 | ZSK/KSK für Produktivdomain erzeugen, Zone signieren TTL abwarten | Signierung der Zone überprüfen KSK der Parentzone kommunizieren TTL abwarten | Überprüfung der korrekten DNSSEC-Signierung | Ende der DNSSEC-Einrichtung | DNSSEC auf der Produktiv- domain |
Rollover-Zeiten - Durchprügeln des ZSK und KSK rollovers
Die Publishing-, Inactivation- und Deletion-Zeiten von drei Tagen (+3d) sind Minimalzeiten, die nur gewählt wurden, um das Üben eines Key rollovers nicht zu lange dauern zu lassen. Eine realistischere Übung sollte auch dementsprechend längere Zeiten von 20 Tagen (+20d) oder 30 Tagen (+30d) verwenden.
Für das Üben des Vorgangs und Praxis für die notwendigen Schlüsselmanipulationen zu bekommen geht auch unser Zeitraum. Generell gilt aber in allen DNSSEC-Fragen, sich Zeit zu lassen und in Ruhe zu agieren!
Die theoretische Einarbeitung, eventuell auch Lesen umfangreicherer Dokumentation zu DNSSEC (z.B. "BIND DNSSEC Guide" von ISC), kann dann erfolgen. Der Aufwand hängt natürlich von der Tiefe der Einarbeitung ab, aber mit minimal 3-4 Tagen sollte man rechnen.
6.+7.:
Mit den erzeugten ZSK/KSK-Schlüsselpaaren (es wird jeweils ein eigenes ZSK/KSK-Paar pro Domain verwendet) kann dann die Zone in der Nameserver-Software signiert werden.
8.:
Wichtig ist nun vor dem nächsten Schritt die TTL der caching resolver, im allgemeinen ein Tag, d.h. 86400s, abzuwarten.
TTL abwarten
Die DNSSEC-Kette muss immer von den root-Nameservern, über alle Zonen bis zur eigentlich zu überprüfenden Zone, sicher sein - d.h. korrekt mit gültigen DNSSEC-Schlüsseln signiert sein. Der delegierende Nameserver erwartet aber nur dann eine mit DNSSEC-signierte valide Zone, wenn ein DS (Delegated Signer) Record im Parent gesetzt ist.
Ist aber zu diesem Zeitpunkt noch nicht die signierte Zone in den caching resolvern aufgenommen worden, wird die DNSSEC-Validierung fehlschlagen, ein validierender Resolver ein SERVFAIL zurück liefern und die Zone aus dem öffentlichen Internet unnerreichbar sein.
Signierungsreihenfolge
Es muss daher immer zuerst die Zone auf dem autoritativen Nameserver signiert werden, dann die TTL abgewartet werden, und schließlich der DS-RR im Parent gesetzt werden, um eine durchgehende Erreichbarkeit für validierende Resolver sicher zu stellen!
Nach einer weiteren TTL erhalten caching resolver eine korrekt DNSSEC-signierte ausgelieferte Zone ausgeliefert.
Insbesondere für die Umstellung der Live-Domains, Haupt- und Maildomains ist planvolles Vorgehen und die Einhaltung der durch die TTL-bedingten Wartezeiten wichtig.
9.:
Der Vollständigkeit halber kann man hier einmal die DNSSEC-Signierung mit DNSViz überprüfen. Es kann hilfreich sein, sich den Fall der DNSSEC-Signierung der Zone (schwarze Markierungen der Zone selbst, türkise Signierungspfeile), aber noch nicht gesetzten DS-Records zu veranschaulichen:
Wie man den schwarzen Pfeil sieht, ist die Delegation natürlich nicht sicher, aber das ist kein fataler Fehler eines unter Umständen kompromittierten DNSSEC. Validierende Resolver erhalten also kein SERVFAIL als Antwort, und die Zone bleibt trotzdem noch erreichbar.
10.:
Als letzten Schritt der Umstellung auf DNSSEC muss - nach Abwarten einer TTL(86400s/1 Tag) noch der zu der Zone zugehörige KSK an die Parentzone kommuniziert werden. Wie diese Kommunikation erfolgen kann, oder zwingend zu erfolgen hat, hängt vom Registrar ab, bei dem die Domain registriert ist.
Für die meisten Hochschulen und Universitäten ist der DFN e.V. Registrar. Wie hier die Übermittelung des DS-Eintrags per Email erfolgen soll, haben wir auf DS-"Upload"-Formate zum Parent über den DFN beschrieben.
11.:
Erst nach dem Abwarten einer weiteren TTL von einem Tag, da wir nur keinen Einfluß auf die Handhabung der minimal erlaubten TTL der caching resolver haben, ist die vollständige DNSSEC-Signierung inklusive sicheren Delegation von der Parentzone zur DNSSEC-signierten Zone auf unserem autoritativen Nameserver auch für alle Benutzer von caching resolvern sichtbar.
Damit ist der, durch die TTL-Latenz bedingte langwierige, Umstellung unserer Zone auf DNSSEC abgeschlossen. Im nachfolgenden Schritt wollen wir das überprüfen.
12.: Überprüfung der DNSSEC-signierten Zone
Eine erste Kommandozeilen-basierte Methode zur Überprüfung der DNSSEC-Signierung einer Zone, besteht darin die Zone mit dig abzufragen, und nach zu prüfen, ob der Resolver ein "AD" (Authenticated Data) Flag gesetzt hat. Hier wird am besten ein externer Resolver (z.B.: Googles 8.8.8.8) verwendet, um sicher zu stellen, dass man keine Antwort der eigenen Resolver erhält, die eventuell kürzere TTL-Caching-Zeiten haben:
dig ws04.ws.dnssec.bayern @8.8.8.8
dig-Abfrage und AD Flag
; <<>> DiG 9.10.3-P4-Debian <<>> ws04.ws.dnssec.bayern @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9577
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;ws04.ws.dnssec.bayern. IN A
;; AUTHORITY SECTION:
ws04.ws.dnssec.bayern. 299 IN SOA dnssec-ws04.dnssec.bayern. root.dnssec-ws04.dnssec.bayern. 5 14400 3600 1209600 300
;; Query time: 216 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Jul 10 14:23:53 CEST 2018
;; MSG SIZE rcvd: 103
Die Korrektheit der DNSSEC-Signierung kann auch mit DNSViz graphisch veranschaulicht werden:
Key rollovers üben
Die Einrichtung von DNSSEC für eine Zone mit neuen Schlüsseln ist nicht der schwierigste Teil der DNSSEC-Administration einer Zone. Kritischer und mit mehr Sorgfalt und Vorsicht zu behandeln sind die Durchführung von Rollovers.
Hier stellt der ZSK noch die einfachere Variante dar, die aufgrund der nicht notwendigen Kommunikation mit der Parentzone, von der "key manager"-Komponente der DNS-Software (z.B. in BIND "dnssec-keymgr" oder in Windows) übernommen werden kann.
ZSK rollover üben
Dies ist explizit ein auf die kürzest mögliche sinnvolle Pre publication/Post publication Zeit getrimmtes Beispiel.
KSK rollover üben
Dies ist explizit ein auf die kürzest mögliche sinnvolle Pre publication/Post publication Zeit getrimmtes Beispiel. Ein praxis-orientiertes Beispiel eines KSK rollovers ist auf dieser Doku-Seite.