Pseudo top level domain DNSSEC: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 81: | Zeile 81: | ||
;int | ;int | ||
*for k in Kint*.key ; do echo "\$INCLUDE /var/cache/bind/$k" >> /var/cache/bind/int; done | *for k in Kint*.key ; do echo "\$INCLUDE /var/cache/bind/$k" >> /var/cache/bind/int; done | ||
| − | |||
| − | |||
| − | |||
==Zonen signieren== | ==Zonen signieren== | ||
*dnssec-signzone -A -N INCREMENT -o int -t /var/cache/bind/int | *dnssec-signzone -A -N INCREMENT -o int -t /var/cache/bind/int | ||
| − | + | ||
;Erzeugt | ;Erzeugt | ||
<pre> | <pre> | ||
/var/cache/bind/int.signed | /var/cache/bind/int.signed | ||
| − | |||
</pre> | </pre> | ||
| Zeile 101: | Zeile 97: | ||
==Überprüfung== | ==Überprüfung== | ||
*dig @192.168.6.88 int DNSKEY +dnssec | *dig @192.168.6.88 int DNSKEY +dnssec | ||
| − | |||
;DNSKEY und RRSIG Einträge müssen sichtbar sein | ;DNSKEY und RRSIG Einträge müssen sichtbar sein | ||
| Zeile 117: | Zeile 112: | ||
managed-keys { | managed-keys { | ||
int. initial-key 257 3 13 "BASE64-KSK-HIER-EINFÜGEN"; | int. initial-key 257 3 13 "BASE64-KSK-HIER-EINFÜGEN"; | ||
| − | |||
}; | }; | ||
</pre> | </pre> | ||
| Zeile 125: | Zeile 119: | ||
=Ergebnis= | =Ergebnis= | ||
*Der Fake Root .int ist signiert | *Der Fake Root .int ist signiert | ||
| − | |||
*Delegationen funktionieren wie zuvor | *Delegationen funktionieren wie zuvor | ||
*DNSSEC beginnt beim Resolver durch expliziten Trust-Anker | *DNSSEC beginnt beim Resolver durch expliziten Trust-Anker | ||
Aktuelle Version vom 18. März 2026, 07:11 Uhr
Schaubild
Forward Zonen
Reverse Zonen
Script
Die Idee
- Wir faken einen Top Level Domain Nameserver.
- Dieser hat zur Aufgabe zu wissen wer die Second Level Domains verwaltet.
- Wir delegieren diese Domains an die Teilnehmer.
- Durch das Einstellen des gefakten Top Level Domain Servers als Forwarder wird jeder Anfragende an den richtigen Nameserver geleitet.
- Die Zone .int wird zusätzlich mit DNSSEC signiert.
- Der Trust-Anker wird später auf validierenden Resolvern gesetzt.
Auf dem Rechner 192.168.6.88
Optionen
- cat /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
dnssec-validation no;
listen-on-v6 { none; };
allow-recursion { any; };
allow-query { any; };
allow-transfer { 127.0.0.1; };
};
Die Zonenfestlegung
- cat /etc/bind/named.conf.local
zone "int" {
type master;
forwarders {};
file "int.signed";
};
zone "88.10.in-addr.arpa" {
type master;
forwarders {};
file "88.10.in-addr.arpa";
};
Die Zonen selbst (unsigniert)
- cat /var/cache/bind/int
$TTL 300
@ IN SOA dnsgw.int. technik.kit.lab. (
2023022010 14400 3600 3600000 86400)
IN NS dnsgw
dnsgw IN A 192.168.6.88
$GENERATE 201-213 ns.it$ A 10.88.$.21
$GENERATE 201-213 it$ NS ns.it$
- cat /var/cache/bind/88.10.in-addr.arpa
$TTL 300
@ IN SOA dnsgw.int. technik.kit.lab. (
2023022010 14400 3600 3600000 86400)
IN NS dnsgw.int.
$GENERATE 201-213 $ NS ns.it$.int.
DNSSEC Schlüssel erzeugen
- Für die Zone int
- dnssec-keygen -a RSASHA256 -b 2048 -n ZONE int
- dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE int
DNSKEY in die Zonen einbinden
- int
- for k in Kint*.key ; do echo "\$INCLUDE /var/cache/bind/$k" >> /var/cache/bind/int; done
Zonen signieren
- dnssec-signzone -A -N INCREMENT -o int -t /var/cache/bind/int
- Erzeugt
/var/cache/bind/int.signed
Dienst neu starten
- systemctl restart bind9
Überprüfung
- dig @192.168.6.88 int DNSKEY +dnssec
- DNSKEY und RRSIG Einträge müssen sichtbar sein
Trust-Anker auf einem validierenden Resolver
- KSK ermitteln
- dig DNSKEY int @192.168.6.88 +short
- Nur der Key mit Kennung 257 3 13 wird verwendet
- Auf dem Resolver eintragen
- cat /etc/bind/named.conf.options
managed-keys {
int. initial-key 257 3 13 "BASE64-KSK-HIER-EINFÜGEN";
};
- systemctl restart bind9
Ergebnis
- Der Fake Root .int ist signiert
- Delegationen funktionieren wie zuvor
- DNSSEC beginnt beim Resolver durch expliziten Trust-Anker

