Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:bind-dnssec

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:bind-dnssec [2016/03/08 07:37]
ingo_wichmann
lpi2: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 ======
 +===== 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 ===== ===== von Hand signieren =====
 Debian: Debian:
-  cd /var/lib/named+  cd /var/cache/bind 
 +  mkdir keys 
 +  chown bind keys
  
-Centos: +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]] )) 
-  cd /var/named+
  
-  ​mkdir keys +  ​dnssec-keygen -a RSASHA256 -b 2560 -n ZONE -K keys/ -f KSK example.com 
-  ​chown named keys+  ​ls keys/​Kexample.com.*
  
-zone-signing key erzeugen: +-> Schlüssel ID-Nummer von KSK notieren ​(5-stellige Nummer)
-((Kann auf einer virtuellen Maschine recht lange dauern. Stichwort: Entropie. Tip: [[http://​www.issihosts.com/​haveged/​|haveged]])+
  
-  ​dnssec-keygen -a RSASHA512 ​-b 1536 -n ZONE example.com ​-K keys+zone-signing key erzeugen: 
 +  ​dnssec-keygen -a RSASHA256 ​-b 2048 -n ZONE -K keys/ example.com
   ls keys/​Kexample.com.*   ls keys/​Kexample.com.*
   less keys/​Kexample.com.*.key   less keys/​Kexample.com.*.key
  
-key-signing key erzeugen: +-> Schlüssel ID-Nummer von ZSK notieren (5-stellige Nummer) 
-  dnssec-keygen ​-a RSASHA256 -b 4096 -f KSK -n ZONE example.com -K keys + 
-  ​ls keys/Kexample.com.*+Rechte auf den Schlüsseldateien anpassen: 
 +  ​chown bind keys/*
  
 Öffentliche Schlüssel zu Zone hinzufügen:​ Öffentliche Schlüssel zu Zone hinzufügen:​
-  cat keys/​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 keys/​Kexample.com.+008+52216.private example.com keys/​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
  
-Todo:+Signierte Zonendatei einbinden: 
 +<file txt /​etc/​bind/​named.conf.local>​ 
 +zone "​example.com"​ { 
 +… 
 +  file "​master/​example.com.signed";​ 
 +… 
 +}; 
 +</​file>​
  
-  * Diesen Server als hidden primary konfigurieren +Konfiguration prüfen und BIND 9 neu laden: 
-  ​* wöchentlichen cron-job zum Signieren anlegen+  ​named-checkconf -z 
 +  rndc reload
  
-===== bind automatisch ZSK signieren ​lassen ​=====+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: Debian:
-  cd /var/lib/named+  cd /var/cache/bind
  
-Centos: ​(( möglicherweise kann man das  +Schritte wie bei [[#von Hand signieren]],​ aber signierte Zonendatei nicht mehr (selbsterzeugen, sondern ab da folgende Schritte:
-  setenforce Permissive +
-mit  +
-  restorecon -rv /var/named  +
-vermeiden. Noch nicht gestestet ​)+
-  cd /​var/​named +
-  setenforce Permissive+
  
-  mkdir keys +Zonendatei von bind signieren lassen: 
-  ​chown ​named keys master+<file txt /etc/bind/named.conf.local>​ 
 +zone "​example.com"​ { 
 +… 
 +  file "master/​example.com";​ 
 +  auto-dnssec maintain; 
 +  inline-signing yes; 
 +… 
 +}; 
 +</​file>​
  
-zone-signing key erzeugen: ((Kann auf einer virtuellen Maschine recht lange dauern. Stichwort: Entropie. Tip: [[http://​www.issihosts.com/​haveged/​|haveged]])) ​+Konfiguration prüfen und BIND 9 neu laden: 
 +  named-checkconf -z 
 +  rndc reconfig
  
-  dnssec-keygen -a RSASHA512 -b 1536 -n ZONE example.com -K keys +Zone (erstmalig) signieren: 
-  ​ls keys/​Kexample.com.* +  ​rndc sign example.com
-  less keys/​Kexample.com.*.key+
  
-key-signing key erzeugen+Testen
-  dnssec-keygen -a RSASHA256 ​-b 4096 -f KSK -n ZONE example.com -keys +  ​dig @localhost example.com SOA +dnssec ​+mu 
-  ls keys/Kexample.com.*+-> 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
  
-Zone signieren:​ +==== DS hinterlegen ====
-  rndc sign+
  
-  ​dig dnskey @127.0.0.1 test +short +  ​dnssec-dsfromkey Kexample.com.+008+${KSK-ID}.key | tee ~/ds.example.com 
-  dig rrsig @127.0.0.1 test +short+-> Ausgabe in der Zone den übergeordneten Servers einfügen
  
 ====== 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.1457422640.txt.gz · Zuletzt geändert: 2016/03/08 07:37 von ingo_wichmann