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

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:bind-dnssec [2014/06/03 18:55] – [dig] ingo_wichmannlpi2:bind-dnssec [2024/08/09 15:18] (aktuell) – ingo_wichmann
Zeile 1: Zeile 1:
-====== dig ====== +====== DNSSEC RRs: DNSKEY, DS, RRSIG ====== 
-Aktuelle root-keys herunterladen: +DNSKEYs für .de Zone anzeigen: 
-  dig . DNSKEY | egrep -v '^($|;)' > root.keys+  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
  
-====== Eigenen Resolver testen ======+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   dig org. SOA +dnssec
 -> flags: ad -> flags: ad
- 
-  dig test.dnssec-or-not.net TXT @localhost 
--> "Yes, you are using DNSSEC" 
  
 ====== Eigene Zone signieren ====== ====== Eigene Zone signieren ======
-  cd /var/lib/named+===== 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: zone-signing key erzeugen:
-((Kann auf einer virtuellen Maschine recht lange dauern. Stichwort: Entropie. Tip: [[http://www.issihosts.com/haveged/|haveged]])) +  dnssec-keygen -a RSASHA256 -b 2048 -n ZONE -K keys/ example.com 
 +  ls keys/Kexample.com.* 
 +  less keys/Kexample.com.*.key
  
-  dnssec-keygen -a RSASHA256 -b 1024 -n ZONE example.com +-> Schlüssel ID-Nummer von ZSK notieren (5-stellige Nummer)
-  ls Kexample.com.* +
-  less Kexample.com.*.key+
  
-key-signing key erzeugen: +Rechte auf den Schlüsseldateien anpassen: 
-  dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE example.com +  chown bind keys/*
-  ls Kexample.com.*+
  
-Öffentliche Schlüssen zu Zone hinzufügen: +Öffentliche Schlüssel zu Zone hinzufügen: 
-  cat Kexample.com.+008+*.key >> example.com+  cat keys/Kexample.com.+008+*.key >> master/example.com
  
 Signierte Zonendatei erzeugen: (30 Tage gültig) Signierte Zonendatei erzeugen: (30 Tage gültig)
-  dnssec-signzone -o example.com -k Kexample.com.+008+52216.private example.com Kexample.com.+008+12678.private +  dnssec-signzone -o example.com -k keys/Kexample.com.+008+${KSK-ID}.private master/example.com keys/Kexample.com.+008+${ZSK-ID}.private 
-  less example.com.signed+  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
  
-Todo:+==== DS hinterlegen ====
  
-  * Diesen Server als hidden primary konfigurieren +  dnssec-dsfromkey Kexample.com.+008+${KSK-ID}.key | tee ~/ds.example.com 
-  * wöchentlichen cron-job zum Signieren anlegen +-> Ausgabe in der Zone den übergeordneten Servers einfügen
-  * Bind 9.9 kann seine Zonen selbst signieren.+
  
 ====== Doku und Links ====== ====== Doku und Links ======
-  * http://dnssectest.sidnlabs.nl/ +  * https://bind9.readthedocs.io/en/latest/dnssec-guide.html 
-  * http://test.dnssec-or-not.org/+  * https://internet.nl/
   * file:///usr/share/doc/bind9-doc/arm/Bv9ARM.ch04.html#DNSSEC   * file:///usr/share/doc/bind9-doc/arm/Bv9ARM.ch04.html#DNSSEC
  
lpi2/bind-dnssec.1401821752.txt.gz · Zuletzt geändert: 2014/06/03 18:55 von ingo_wichmann