Pseudo second level domain von Basics zu DNSEC: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
==Trust Anker einfügen== | ==Trust Anker einfügen== | ||
*cd /etc/bind/ | *cd /etc/bind/ | ||
| − | *wget http://192.168. | + | *wget http://192.168.HS.88/trust-anchors.conf |
*echo 'include "/etc/bind/trust-anchors.conf";' >> named.conf | *echo 'include "/etc/bind/trust-anchors.conf";' >> named.conf | ||
| + | |||
==/etc/bind/named.conf.options== | ==/etc/bind/named.conf.options== | ||
===Berechtigungen und Einschränkungen=== | ===Berechtigungen und Einschränkungen=== | ||
| − | + | options { | |
| − | options { | + | directory "/var/cache/bind"; |
| − | + | forwarders { <DNSGW>; }; | |
| − | + | allow-query { 0.0.0.0/0; }; | |
| − | + | allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 172.20.2XX.0; 127.0.0.1; }; | |
| − | + | allow-transfer {127.0.0.1; }; | |
| − | + | <span style="color:red">'''dnssec-validation yes;'''</span> | |
| − | + | empty-zones-enable no; | |
| − | + | listen-on-v6 { none; }; | |
| − | + | listen-on { any; }; | |
| − | + | }; | |
| − | }; | + | |
==/etc/bind/named.conf.local== | ==/etc/bind/named.conf.local== | ||
| + | zone "it2XX.int" { | ||
| + | type master; | ||
| + | <span style="color:red">'''file "it2XX.int.signed";'''</span> | ||
| + | }; | ||
| + | zone "2XX.88.10.in-addr.arpa" { | ||
| + | type master; | ||
| + | file "2XX.88.10.in-addr.arpa"; | ||
| + | }; | ||
| + | |||
| + | =DNSSEC Schlüssel erzeugen= | ||
| + | ;Forward Zone | ||
| + | *cd /var/cache/bind | ||
| + | *dnssec-keygen -a ECDSAP256SHA256 -n ZONE it2XX.int | ||
| + | *dnssec-keygen -a ECDSAP256SHA256 -f KSK -n ZONE it2XX.int | ||
| + | |||
| + | =DNSKEY einbinden= | ||
| + | ;Forward | ||
| + | *for k in Kit2XX.int.+*.key ; do echo "\$INCLUDE $k" >> /var/cache/bind/it2XX.int; done | ||
| + | =Zonen signieren= | ||
| + | *dnssec-signzone -A -N INCREMENT -o it2XX.int -t /var/cache/bind/it2XX.int | ||
| + | ;Erzeugt | ||
<pre> | <pre> | ||
| − | + | /var/cache/bind/it2XX.int.signed | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</pre> | </pre> | ||
| + | *systemctl restart named | ||
| + | =DS Record für Fake Root erzeugen= | ||
| + | ;DS aus signierter Zone erzeugen | ||
| + | *dnssec-dsfromkey -f /var/cache/bind/it2XX.int.signed it2XX.int | ||
| + | ;DS Eintrag an Fake Root weitergeben | ||
| + | ;Im Fake Root in Zone int einfügen | ||
| + | ;Beispiel: | ||
| + | ;it2XX IN NS ns.it2XX.int. | ||
| + | ;ns.it2XX.int. IN A 10.88.2XX.21 | ||
| + | ;it2XX.int. IN DS 12345 13 2 ABCDEF123456.... | ||
| + | ;Danach Fake Root neu signieren | ||
| + | *cd /var/cache/bind | ||
| + | *dnssec-signzone -A -N INCREMENT -o int int | ||
| + | *rndc reload | ||
| + | '''Nur einmalig bei der Ersteinrichtung oder nach KSK-Wechsel notwendig über den dnssec-dsfromkey-Befehl.''' | ||
| + | |||
| + | =Handling und Logging= | ||
| + | *systemctl restart named | ||
| + | *journalctl -fu named | ||
| + | *journalctl -u bind9 -g it2XX.int | ||
| + | |||
| + | =Validierungstest= | ||
| + | ==Eigene Domain anfragen (autoritativ)== | ||
| + | *dig @127.0.0.1 www.it2XX.int +dnssec | ||
| + | ;AA (Authoritative Answer) | ||
| + | Der befragte Server ist selbst autoritativ für diese Zone | ||
| + | Er hat die Antwort direkt aus seiner eigenen Zonendatei | ||
| + | ==Fremde Domain anfragen (validierend über Forwarder)== | ||
| + | *dig @127.0.0.1 www.it2YY.int +dnssec | ||
| + | ;YY = Nummer eines anderen Teilnehmers | ||
| + | ;AD (Authenticated Data) | ||
| + | Die Antwort wurde kryptografisch validiert (DNSSEC) | ||
| + | Der Resolver hat die Signaturen geprüft und für gültig befunden | ||
| + | |||
| + | =Status= | ||
| + | *systemctl status named | ||
| + | =Logs= | ||
| + | ;Aktualisierte Log von named | ||
| + | *journalctl -fu named | ||
| + | ;Die letzten 20 Log Zeilen vom named | ||
| + | *journalctl -n 20 -u named | ||
| + | ;Aktualisierte Log von named plus grepen nach it2XX | ||
| + | *journalctl -fu named -g it2XX | ||
| + | =Sind die Ports geöffnet= | ||
| + | *ss -lntpu | grep named | ||
| + | =Tests= | ||
| + | *[[host]] | ||
| + | *[[dig]] | ||
| + | *[[nslookup]] | ||
Aktuelle Version vom 3. Juni 2026, 07:52 Uhr
Trust Anker einfügen
- cd /etc/bind/
- wget http://192.168.HS.88/trust-anchors.conf
- echo 'include "/etc/bind/trust-anchors.conf";' >> named.conf
/etc/bind/named.conf.options
Berechtigungen und Einschränkungen
options {
directory "/var/cache/bind";
forwarders { <DNSGW>; };
allow-query { 0.0.0.0/0; };
allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 172.20.2XX.0; 127.0.0.1; };
allow-transfer {127.0.0.1; };
dnssec-validation yes;
empty-zones-enable no;
listen-on-v6 { none; };
listen-on { any; };
};
/etc/bind/named.conf.local
zone "it2XX.int" {
type master;
file "it2XX.int.signed";
};
zone "2XX.88.10.in-addr.arpa" {
type master;
file "2XX.88.10.in-addr.arpa";
};
DNSSEC Schlüssel erzeugen
- Forward Zone
- cd /var/cache/bind
- dnssec-keygen -a ECDSAP256SHA256 -n ZONE it2XX.int
- dnssec-keygen -a ECDSAP256SHA256 -f KSK -n ZONE it2XX.int
DNSKEY einbinden
- Forward
- for k in Kit2XX.int.+*.key ; do echo "\$INCLUDE $k" >> /var/cache/bind/it2XX.int; done
Zonen signieren
- dnssec-signzone -A -N INCREMENT -o it2XX.int -t /var/cache/bind/it2XX.int
- Erzeugt
/var/cache/bind/it2XX.int.signed
- systemctl restart named
DS Record für Fake Root erzeugen
- DS aus signierter Zone erzeugen
- dnssec-dsfromkey -f /var/cache/bind/it2XX.int.signed it2XX.int
- DS Eintrag an Fake Root weitergeben
- Im Fake Root in Zone int einfügen
- Beispiel
- it2XX IN NS ns.it2XX.int.
- ns.it2XX.int. IN A 10.88.2XX.21
- it2XX.int. IN DS 12345 13 2 ABCDEF123456....
- Danach Fake Root neu signieren
- cd /var/cache/bind
- dnssec-signzone -A -N INCREMENT -o int int
- rndc reload
Nur einmalig bei der Ersteinrichtung oder nach KSK-Wechsel notwendig über den dnssec-dsfromkey-Befehl.
Handling und Logging
- systemctl restart named
- journalctl -fu named
- journalctl -u bind9 -g it2XX.int
Validierungstest
Eigene Domain anfragen (autoritativ)
- dig @127.0.0.1 www.it2XX.int +dnssec
- AA (Authoritative Answer)
Der befragte Server ist selbst autoritativ für diese Zone Er hat die Antwort direkt aus seiner eigenen Zonendatei
Fremde Domain anfragen (validierend über Forwarder)
- dig @127.0.0.1 www.it2YY.int +dnssec
- YY = Nummer eines anderen Teilnehmers
- AD (Authenticated Data)
Die Antwort wurde kryptografisch validiert (DNSSEC) Der Resolver hat die Signaturen geprüft und für gültig befunden
Status
- systemctl status named
Logs
- Aktualisierte Log von named
- journalctl -fu named
- Die letzten 20 Log Zeilen vom named
- journalctl -n 20 -u named
- Aktualisierte Log von named plus grepen nach it2XX
- journalctl -fu named -g it2XX
Sind die Ports geöffnet
- ss -lntpu | grep named