Pseudo second level domain von Basics zu DNSEC: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (6 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= | =DNSSEC Schlüssel erzeugen= | ||
;Forward Zone | ;Forward Zone | ||
| + | *cd /var/cache/bind | ||
*dnssec-keygen -a ECDSAP256SHA256 -n ZONE it2XX.int | *dnssec-keygen -a ECDSAP256SHA256 -n ZONE it2XX.int | ||
*dnssec-keygen -a ECDSAP256SHA256 -f KSK -n ZONE it2XX.int | *dnssec-keygen -a ECDSAP256SHA256 -f KSK -n ZONE it2XX.int | ||
| + | |||
=DNSKEY einbinden= | =DNSKEY einbinden= | ||
;Forward | ;Forward | ||
| Zeile 61: | Zeile 60: | ||
=Handling und Logging= | =Handling und Logging= | ||
| − | *systemctl restart | + | *systemctl restart named |
| − | *journalctl -fu | + | *journalctl -fu named |
*journalctl -u bind9 -g it2XX.int | *journalctl -u bind9 -g it2XX.int | ||
| + | |||
=Validierungstest= | =Validierungstest= | ||
| − | + | ==Eigene Domain anfragen (autoritativ)== | |
| − | *dig www.it2XX.int +dnssec | + | *dig @127.0.0.1 www.it2XX.int +dnssec |
| − | ;Antwort | + | ;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= | =Status= | ||
*systemctl status named | *systemctl status named | ||
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