Pseudo top level domain DNSSEC: Unterschied zwischen den Versionen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 116: | Zeile 116: | ||
Falls die Konfiguration korrekt ist, sollten RRSIG-Einträge sichtbar sein. | Falls die Konfiguration korrekt ist, sollten RRSIG-Einträge sichtbar sein. | ||
| − | === | + | === Eintragen der Trust-Anker im Resolver === |
| − | ==== | + | ==== Beispiel zum Ermitteln der DNSKEYs ==== |
| − | + | Die benötigten Schlüssel zur Einrichtung eines Trust-Ankers werden mit folgendem Befehl auf dem autoritativen DNS-Server ermittelt: | |
| − | + | ;'''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 DNSKEY mit der Kennung '''257 3 13''' wird als Trust-Anker verwendet. | |
| − | + | ==== DNSSEC-Trust-Anker auf dem Resolver ==== | |
| − | + | ||
| + | Um DNSSEC-Validierung für die eigene Pseudo-TLD zu ermöglichen, müssen die Trust-Anker manuell auf jedem DNS-Resolver eingetragen werden, der die Signaturen prüfen soll. | ||
| + | |||
| + | Der autoritative DNS-Server (z. B. dnsgw.int) stellt nur die signierten Zonen bereit, nimmt jedoch selbst keine Validierung vor. | ||
| + | |||
| + | Die folgenden Zeilen werden auf dem jeweiligen Resolver in der Datei '''/etc/bind/named.conf.options''' oder '''named.conf''' eingetragen: | ||
| − | + | 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>"; | ||
| + | }; | ||
| − | + | ==== Abschluss ==== | |
| − | + | Nach dem Eintragen der Trust-Anker muss der DNS-Dienst auf jedem Resolver neu gestartet werden: | |
| − | |||
| − | + | *systemctl restart bind9 | |
| − | |||
| − | Ab jetzt | + | Ab jetzt validieren die Resolver die DNSSEC-Signaturen für die angegebenen 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. | ||
Aktuelle Version vom 22. März 2025, 08:29 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.
Eintragen der Trust-Anker im Resolver
Beispiel zum Ermitteln der DNSKEYs
Die benötigten Schlüssel zur Einrichtung eines Trust-Ankers werden mit folgendem Befehl auf dem autoritativen DNS-Server ermittelt:
- 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 DNSKEY mit der Kennung 257 3 13 wird als Trust-Anker verwendet.
DNSSEC-Trust-Anker auf dem Resolver
Um DNSSEC-Validierung für die eigene Pseudo-TLD zu ermöglichen, müssen die Trust-Anker manuell auf jedem DNS-Resolver eingetragen werden, der die Signaturen prüfen soll.
Der autoritative DNS-Server (z. B. dnsgw.int) stellt nur die signierten Zonen bereit, nimmt jedoch selbst keine Validierung vor.
Die folgenden Zeilen werden auf dem jeweiligen Resolver in der Datei /etc/bind/named.conf.options oder named.conf eingetragen:
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>";
};
Abschluss
Nach dem Eintragen der Trust-Anker muss der DNS-Dienst auf jedem Resolver neu gestartet werden:
- systemctl restart bind9
Ab jetzt validieren die Resolver die DNSSEC-Signaturen für die angegebenen 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.