Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:bind-dnssec

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:bind-dnssec [2014/02/14 19:06] – angelegt ingo_wichmannlpi2:bind-dnssec [2024/08/09 15:18] (aktuell) – ingo_wichmann
Zeile 1: Zeile 1:
-Aktuelle root-keys herunterladen: +====== DNSSEC RRs: DNSKEY, DS, RRSIG ====== 
-  dig . DNSKEY | grep -Ev '^($|;)' > root.keys+DNSKEYs für .de Zone anzeigen: 
 +  dig de. DNSKEY +nocomments | tee de.dnskey
  
-Nameserver abfragen: +DS aus DNSKEY erstellen: 
-  dig +sigchase +trusted-key=./root.keys www.isc.org A @127.0.0.1+  dnssec-dsfromkey -f de.dnskey de
  
 +Mit veröffentlichtem DS vergleichen:
 +  dig de. DS +short
 +
 +{{:lpi2:ds-dnskey.png?400|}}
 +
 +Ganze Kette für www.linuxhotel.de anzeigen:
 +  dig www.linuxhotel.de +trace +dnssec
 +
 +====== validiert mein Resolver? ======
 +  dig org. SOA +dnssec
 +-> flags: ad
 +
 +====== Eigene Zone signieren ======
 +===== Voraussetzung =====
 +  * öffentliche (unsignierte) Zone erstellt, wie in [[bind]] beschrieben
 +
 +===== automatisch signieren mit dnssec-policy default =====
 +==== Zone signieren ====
 +<file txt /etc/bind/named.conf.local>
 +zone "example.com" {
 +  type primary;
 +  file "example.com";
 +  dnssec-policy default;
 +  inline-signing yes;
 +};
 +</file>
 +
 +Konfiguration prüfen und BIND 9 neu laden:
 +  named-checkconf -z
 +  rndc reconfig
 +
 +=== überprüfen ===
 +  journalctl -fu named.service
 +-> zeigt ''DNSKEY example.com/ECDSAP256SHA256/${CSK-ID} (CSK) is now active'', wobei ${CSK-ID} die ID des neuen Keys ist.
 +  cd /var/cache/bind
 +  ls
 +-> zeigt die Key-Dateien
 +  rndc dnssec -status example.com
 +-> dnskey: rumoured
 +  named-checkzone -D -f raw -j example.com ./example.com.signed
 +-> zeigt die signierte Zone
 +  dig @localhost example.com SOA +dnssec +mu
 +-> muss RRSIG enthalten
 +
 +==== DS hinterlegen ====
 +
 +  named-checkzone -D -f raw -j example.com ./example.com.signed | tee ~/example.com.signed.export
 +  dnssec-dsfromkey -f ~/example.com.signed.export example.com | tee ~/ds.example.com
 +oder
 +  dnssec-dsfromkey Kexample.com.+008+${CSK-ID}.key | tee ~/ds.example.com
 +-> Ausgabe in der Zone des übergeordneten Servers einfügen
 +
 +=== prüfen ===
 +  dig @9.9.9.9 www.example.com +dnssec
 +
 +===== von Hand signieren =====
 +Debian:
 +  cd /var/cache/bind
 +  mkdir keys
 +  chown bind keys
 +
 +key-signing key (KSK) erzeugen: (grösserer Schlüssel und KSK-Flag) ((Kann auf einer virtuellen Maschine recht lange dauern. Stichwort: Entropie. Tip: [[http://www.issihosts.com/haveged/|haveged]] )) 
 +
 +  dnssec-keygen -a RSASHA256 -b 2560 -n ZONE -K keys/ -f KSK example.com
 +  ls keys/Kexample.com.*
 +
 +-> Schlüssel ID-Nummer von KSK notieren (5-stellige Nummer)
 +
 +zone-signing key erzeugen:
 +  dnssec-keygen -a RSASHA256 -b 2048 -n ZONE -K keys/ example.com
 +  ls keys/Kexample.com.*
 +  less keys/Kexample.com.*.key
 +
 +-> Schlüssel ID-Nummer von ZSK notieren (5-stellige Nummer)
 +
 +Rechte auf den Schlüsseldateien anpassen:
 +  chown bind keys/*
 +
 +Öffentliche Schlüssel zu Zone hinzufügen:
 +  cat keys/Kexample.com.+008+*.key >> master/example.com
 +
 +Signierte Zonendatei erzeugen: (30 Tage gültig)
 +  dnssec-signzone -o example.com -k keys/Kexample.com.+008+${KSK-ID}.private master/example.com keys/Kexample.com.+008+${ZSK-ID}.private
 +  chown bind:bind master/example.com.signed
 +  less master/example.com.signed
 +
 +Signierte Zonendatei einbinden:
 +<file txt /etc/bind/named.conf.local>
 +zone "example.com" {
 +…
 +  file "master/example.com.signed";
 +…
 +};
 +</file>
 +
 +Konfiguration prüfen und BIND 9 neu laden:
 +  named-checkconf -z
 +  rndc reload
 +
 +Testen:
 +  dig @localhost example.com SOA +dnssec +mu
 +-> muss RRSIG enthalten
 +
 +==== DS-Record hinterlegen ====
 +
 +DS-Record erstellen:
 +  dnssec-dsfromkey keys/Kexample.com.+008+${KSK-ID}.key
 +  dnssec-dsfromkey keys/Kexample.com.+008+${KSK-ID}.key > ~/ds-example.com
 +
 +Eintrag bei Registry bzw. übergeordneter Domain hinterlegen
 +
 +Testen:
 +  dig @1.1.1.1 soa example.com +dnssec +mu
 +-> ad-Flag muss gesetzt sein
 +
 +===== automatisch ZSK signieren mit auto-dnssec maintain =====
 +Debian:
 +  cd /var/cache/bind
 +
 +Schritte wie bei [[#von Hand signieren]], aber signierte Zonendatei nicht mehr (selbst) erzeugen, sondern ab da folgende Schritte:
 +
 +Zonendatei von bind signieren lassen:
 +<file txt /etc/bind/named.conf.local>
 +zone "example.com" {
 +…
 +  file "master/example.com";
 +  auto-dnssec maintain;
 +  inline-signing yes;
 +…
 +};
 +</file>
 +
 +Konfiguration prüfen und BIND 9 neu laden:
 +  named-checkconf -z
 +  rndc reconfig
 +
 +Zone (erstmalig) signieren:
 +  rndc sign example.com
 +
 +Testen:
 +  dig @localhost example.com SOA +dnssec +mu
 +-> muss RRSIG enthalten
 +
 +
 +  rndc sync linuxhotel.de
 +  named-compilezone -f RAW -o - example.com master/example.com.signed | less
 +
 +===== automatisch signieren mit dnssec-policy, ZSK und KSK =====
 +==== Voraussetzung ====
 +  * öffentliche (unsignierte) Zone vorhanden
 +
 +==== Zone signieren ====
 +<file txt /etc/bind/named.conf.options>
 +options {
 +…
 +};
 +dnssec-policy "kskzsk" {
 +  keys {
 +    ksk lifetime unlimited algorithm ecdsa256;
 +    zsk lifetime P90D algorithm ecdsa256;
 +  };
 +};
 +</file>
 +
 +<file txt /etc/bind/named.conf.local>
 +zone "example.com" {
 +  type primary;
 +  file "primary/example.com";
 +  dnssec-policy "kskzsk";
 +  update-policy local; 
 +  inline-signing yes;
 +}; 
 +</file>
 +
 +Konfiguration prüfen und BIND 9 neu laden:
 +  named-checkconf -z
 +  rndc reconfig
 +
 +=== überprüfen ===
 +  journalctl -fu named.service
 +-> zeigt ''DNSKEY example.com/ECDSAP256SHA256/${KSK-ID} (KSK) is now active'', wobei ${KSK-ID} die ID des neuen KSK ist.
 +  ls /var/cache/bind
 +-> zeigt die Key-Dateien
 +  named-checkzone -D -f raw -j example.com example.com.signed
 +-> zeigt die signierte Zone
 +  dig @localhost example.com SOA +dnssec +mu
 +-> muss RRSIG enthalten
 +
 +==== DS hinterlegen ====
 +
 +  dnssec-dsfromkey Kexample.com.+008+${KSK-ID}.key | tee ~/ds.example.com
 +-> Ausgabe in der Zone den übergeordneten Servers einfügen
 +
 +====== Doku und Links ======
 +  * https://bind9.readthedocs.io/en/latest/dnssec-guide.html
 +  * https://internet.nl/
 +  * file:///usr/share/doc/bind9-doc/arm/Bv9ARM.ch04.html#DNSSEC
  
lpi2/bind-dnssec.1392404773.txt.gz · Zuletzt geändert: 2014/02/14 19:06 von ingo_wichmann