Pseudo top level domain DNSSEC: Unterschied zwischen den Versionen
(→Fazit) |
|||
| Zeile 128: | Zeile 128: | ||
Die benötigten Schlüssel werden mit folgendem Befehl ermittelt (auszuführen auf dem Toplevel-DNS-Server): | Die benötigten Schlüssel werden mit folgendem Befehl ermittelt (auszuführen auf dem Toplevel-DNS-Server): | ||
| − | '''DNSKEY für int:''' dig DNSKEY int @127.0.0.1 +short | + | ;'''DNSKEY für int:''' |
| + | *dig DNSKEY int @127.0.0.1 +short | ||
| − | '''DNSKEY für 88.10.in-addr.arpa:''' dig DNSKEY 88.10.in-addr.arpa @127.0.0.1 +short | + | ;'''DNSKEY für 88.10.in-addr.arpa:''' |
| + | *dig DNSKEY 88.10.in-addr.arpa @127.0.0.1 +short | ||
Ausgabeformat des benötigten Schlüssels (Beispiel): | Ausgabeformat des benötigten Schlüssels (Beispiel): | ||
| Zeile 137: | Zeile 139: | ||
Nur der Schlüssel, der mit '''257 3 13''' beginnt, wird als Trust-Anker verwendet. | Nur der Schlüssel, der mit '''257 3 13''' beginnt, wird als Trust-Anker verwendet. | ||
| − | === Abschluss === Nachdem die Trust-Anker eingetragen wurden, wird der DNS-Server neu gestartet: systemctl restart bind9 | + | === Abschluss === |
| + | Nachdem die Trust-Anker eingetragen wurden, wird der DNS-Server neu gestartet: *systemctl restart bind9 | ||
Ab jetzt validiert '''dnsgw.int''' die signierten Zonen korrekt. | Ab jetzt validiert '''dnsgw.int''' die signierten Zonen korrekt. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=== Fazit === | === Fazit === | ||
Mit diesen Schritten ist die Pseudo-Top-Level-Domain mit DNSSEC abgesichert. Falls ein Slave-Server existiert, muss auch dort DNSSEC aktiviert und die signierte Zone übernommen werden. | Mit diesen Schritten ist die Pseudo-Top-Level-Domain mit DNSSEC abgesichert. Falls ein Slave-Server existiert, muss auch dort DNSSEC aktiviert und die signierte Zone übernommen werden. | ||
Version vom 13. März 2025, 21:47 Uhr
DNSSEC-Umstellung für eine Pseudo-Top-Level-Domain
Einleitung
Dieser Artikel beschreibt die Aktivierung von DNSSEC für eine Pseudo-Top-Level-Domain (TLD), die mit BIND9 verwaltet wird. DNSSEC stellt sicher, dass die Antworten des DNS-Servers authentifiziert und vor Manipulation geschützt sind.
Voraussetzungen
- Ein laufender BIND9-Nameserver, der als autoritativer DNS-Server für die Pseudo-TLD dient.
- Installation der notwendigen Werkzeuge: `dnssec-tools` oder `bind9-utils`.
- Zugriff auf das Verzeichnis `/var/cache/bind/` zur Speicherung der signierten Zonen.
Generierung der DNSSEC-Schlüssel
DNSSEC benötigt zwei Arten von Schlüsseln:
- Zone Signing Key (ZSK): Signiert die Zone und wird häufiger gewechselt.
- Key Signing Key (KSK): Signiert den ZSK und wird seltener gewechselt.
int
ZSK erzeugen
- dnssec-keygen -a RSASHA256 -b 2048 -n ZONE int
KSK erzeugen
- dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE int
Die generierten Dateien sehen ungefähr so aus:
Kint.+008+12315.key Kint.+008+12315.private Kint.+008+43144.key Kint.+008+43144.private
- Integration der DNSSEC-Schlüssel in die Zone
Die .key-Dateien müssen in die Zonendatei /var/cache/bind/int eingebunden werden:
- for k in Kint*.key ; do echo \$INCLUDE /var/cache/bind/$k >> /var/cache/bind/int; done
88.10.in-addr.arpa
ZSK erzeugen
- dnssec-keygen -a RSASHA256 -b 2048 -n ZONE 88.10.in-addr.arpa
KSK erzeugen
- dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE 88.10.in-addr.arpa
Die generierten Dateien sehen ungefähr so aus:
K88.10.in-addr.arpa.+008+06136.key K88.10.in-addr.arpa.+008+06136.private K88.10.in-addr.arpa.+008+29361.key K88.10.in-addr.arpa.+008+29361.private
- Integration der DNSSEC-Schlüssel in die Zone
Die .key-Dateien müssen in die Zonendatei /var/cache/bind/88.10.in-addr.arpa eingebunden werden:
- for k in K88*.key ; do echo \$INCLUDE /var/cache/bind/$k >> /var/cache/bind/88.10.in-addr.arpa; done
Zonensignierung mit DNSSEC
Sobald die Schlüssel eingebunden sind, wird die Zone signiert:
- dnssec-signzone -A -N INCREMENT -o int -t /var/cache/bind/int
- dnssec-signzone -A -N INCREMENT -o 88.10.in-addr.arpa -t /var/cache/bind/88.10.in-addr.arpa
Dies erzeugt signierte Dateien mit der Endung .signed.
Anmerkungen zum DNSSEC-Schlüsselwechsel
BIND9-Konfiguration anpassen
Die Datei `/etc/bind/named.conf.local` muss angepasst werden, damit die signierten Zonen verwendet werden:
zone "int" {
type master;
file "/var/cache/bind/int.signed";
allow-query { any; };
dnssec-policy default;
inline-signing yes;
};
zone "88.10.in-addr.arpa" {
type master;
file "/var/cache/bind/88.10.in-addr.arpa.signed";
allow-query { any; };
dnssec-policy default;
inline-signing yes;
};
DNSSEC in BIND9 aktivieren
In der Datei `/etc/bind/named.conf.options` folgende Einstellungen setzen:
options {
directory "/var/cache/bind";
listen-on-v6 { none; };
allow-recursion { any; };
allow-query { any; };
dnssec-validation auto;
};
Neustart von BIND9
Nach den Änderungen muss der DNS-Server neu gestartet werden:
- systemctl restart bind9
Überprüfung von DNSSEC
Zur Kontrolle, ob DNSSEC korrekt funktioniert:
- dig DNSKEY @localhost +dnssec +nocomments +nostats int
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> DNSKEY @localhost +dnssec +nocomments +nostats int ; (2 servers found) ;; global options: +cmd ;int. IN DNSKEY int. 3600 IN DNSKEY 257 3 13 T9/K08SYQ/7ZglXeagB72j7N9Y5jPVj5Y0qF2thquvpB2Go1M4A43qQw JYqRhuzomoezctxzL6G/VsP9oXxNLQ== int. 3600 IN RRSIG DNSKEY 13 1 3600 20250327161304 20250313151304 54869 int. qb0Hilp7DnpOQkfDp6GhiX3kJ16pw4ItAe/u+k6Q+9kZbLiRwAaiigGO 5YLwuSKgSGbBcAiUZhpnhBdWgflVhg==
- dig DNSKEY @localhost +dnssec +nocomments +nostats 88.10.in-addr.arpa
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> DNSKEY @localhost +dnssec +nocomments +nostats 88.10.in-addr.arpa ; (2 servers found) ;; global options: +cmd ;88.10.in-addr.arpa. IN DNSKEY 88.10.in-addr.arpa. 3600 IN DNSKEY 257 3 13 bRxcMus3OaNS63VwfNedkyso5Oui+v9gVbM3eg7sN3G43nJqgeCtr5E3 725nyKX30EYZQGiAovYM3rXWi1QS0w== 88.10.in-addr.arpa. 3600 IN RRSIG DNSKEY 13 4 3600 20250327161117 20250313151117 39443 88.10.in-addr.arpa. uzTWdjuEy8OlU2u6oex7WWEPb1vJtI7T1MbJy0Smz6ODKdWzYySjT1qU AcZ+aZS/qANqFaUhxFmzugupDzDLrg==
Falls die Konfiguration korrekt ist, sollten RRSIG-Einträge sichtbar sein.
Wir brauchen noch einen Anker
DNSSEC-Trust-Anker auf dem Toplevel-DNS-Server (dnsgw.int)
Um eine korrekte Validierung der DNSSEC-Kette zu gewährleisten, muss auf dem obersten DNS-Server (dnsgw.int) ein DNSSEC-Trust-Anker für die signierten Zonen eingerichtet werden. Nur der Toplevel-Server benötigt diese Trust-Anker, sekundäre Server (Second-Level) benötigen diese nicht.
Die folgenden Zeilen müssen in der Datei /etc/bind/named.conf.options auf dem Toplevel-DNS-Server dnsgw.int eingetragen werden:
managed-keys { int. initial-key 257 3 13 "<hier-den-Key-der-int-Zone-einfügen>"; 88.10.in-addr.arpa. initial-key 257 3 13 "<hier-den-Key-der-Reverse-Zone-einfügen>"; };
Beispiel zum Ermitteln der Schlüssel (DNSKEY)
Die benötigten Schlüssel werden mit folgendem Befehl ermittelt (auszuführen auf dem Toplevel-DNS-Server):
- DNSKEY für int:
- dig DNSKEY int @127.0.0.1 +short
- DNSKEY für 88.10.in-addr.arpa:
- dig DNSKEY 88.10.in-addr.arpa @127.0.0.1 +short
Ausgabeformat des benötigten Schlüssels (Beispiel):
257 3 13 ABCDEFG1234567......
Nur der Schlüssel, der mit 257 3 13 beginnt, wird als Trust-Anker verwendet.
Abschluss
Nachdem die Trust-Anker eingetragen wurden, wird der DNS-Server neu gestartet: *systemctl restart bind9
Ab jetzt validiert dnsgw.int die signierten Zonen korrekt.
Fazit
Mit diesen Schritten ist die Pseudo-Top-Level-Domain mit DNSSEC abgesichert. Falls ein Slave-Server existiert, muss auch dort DNSSEC aktiviert und die signierte Zone übernommen werden.