Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
lpi2:bind-dnssec [2014/02/19 17:46] ingo_wichmann [Eigene Zone signieren] |
lpi2:bind-dnssec [2019/12/17 23:41] ingo_wichmann [von Hand signieren] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== dig ====== | ====== dig ====== | ||
Aktuelle root-keys herunterladen: | Aktuelle root-keys herunterladen: | ||
- | dig . DNSKEY | grep -Ev '^($|;)' > root.keys | + | dig . DNSKEY | egrep -v '^($|;)' > root.keys |
Nameserver abfragen: | Nameserver abfragen: | ||
Zeile 13: | Zeile 13: | ||
-> "Yes, you are using DNSSEC" | -> "Yes, you are using DNSSEC" | ||
+ | ====== Eigene Zone signieren ====== | ||
+ | ===== von Hand signieren ===== | ||
+ | Debian: | ||
+ | cd /var/cache/bind | ||
+ | mkdir keys | ||
+ | chown bind keys | ||
+ | Centos: | ||
+ | cd /var/named | ||
+ | mkdir keys | ||
+ | chown named 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]] )) | ||
- | ===== Lösung mit key-signing key ===== | + | dnssec-keygen -a RSASHA256 -b 2560 -n ZONE -K keys/ -f KSK example.com |
- | cd /var/lib/named | + | ls keys/Kexample.com.* |
+ | |||
+ | -> Schlüssel ID-Nummer von KSK ZSK notieren (5-stellige Nummer) | ||
zone-signing key erzeugen: | zone-signing key erzeugen: | ||
- | dnssec-keygen -a RSASHA256 -b 1024 -n ZONE example.com | + | dnssec-keygen -a RSASHA256 -b 2048 -n ZONE -K keys/ example.com |
- | ls Kexample.com.* | + | ls keys/Kexample.com.* |
- | less Kexample.com.*.key | + | 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 | ||
+ | |||
+ | less master/example.com.signed | ||
+ | |||
+ | <file txt /etc/bind/named.conf.local> | ||
+ | zone "example.com" { | ||
+ | … | ||
+ | file "master/example.com.signed"; | ||
+ | … | ||
+ | }; | ||
+ | </file> | ||
+ | |||
+ | Todo: | ||
+ | |||
+ | * Diesen Server als hidden primary konfigurieren | ||
+ | * wöchentlichen cron-job zum Signieren anlegen | ||
+ | |||
+ | ===== bind automatisch ZSK signieren lassen ===== | ||
+ | Debian: | ||
+ | cd /var/lib/named | ||
+ | |||
+ | Centos: (( möglicherweise kann man das | ||
+ | setenforce Permissive | ||
+ | mit | ||
+ | restorecon -rv /var/named | ||
+ | vermeiden. Noch nicht gestestet )) | ||
+ | cd /var/named | ||
+ | setenforce Permissive | ||
+ | |||
+ | mkdir keys | ||
+ | chown named keys master | ||
+ | |||
+ | zone-signing key erzeugen: ((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 | ||
+ | ls keys/Kexample.com.* | ||
+ | less keys/Kexample.com.*.key | ||
key-signing key erzeugen: | key-signing key erzeugen: | ||
- | dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE example.com | + | dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE example.com -K keys |
- | ls Kexample.com.* | + | ls keys/Kexample.com.* |
+ | |||
+ | Zone signieren: | ||
+ | rndc sign | ||
- | Öffentliche Schlüssen zu Zone hinzufügen: | + | dig dnskey @127.0.0.1 test +short |
- | cat Kexample.com.+008+*.key >> example.com | + | dig rrsig @127.0.0.1 test +short |
- | Signierte Zonendatei erzeugen: | + | ===== inline-signing ===== |
- | dnssec-signzone -o example.com -k Kexample.com.+008+52216.private example.com Kexample.com.+008+12678.private | + | |
- | less example.com.signed | + | |
- | //Bind 9.9 kann seine Zonen selbst signieren.// | + | <file txt /etc/bind/named.conf.local> |
+ | zone "linuxhotel.de" { | ||
+ | type master; | ||
+ | file "master/linuxhotel.de"; | ||
+ | key-directory "keys"; | ||
+ | inline-signing yes; | ||
+ | auto-dnssec maintain; | ||
+ | } | ||
+ | </file> | ||
+ | rndc reconfig | ||
+ | rndc sign linuxhotel.de | ||
+ | ls -Rlrt /var/cache/bind | ||
+ | rndc sync linuxhotel.de | ||
+ | named-compilezone -f RAW -o - linuxhotel.de linuxhotel.de.signed | less | ||
+ | | ||
====== Doku und Links ====== | ====== Doku und Links ====== | ||
* http://dnssectest.sidnlabs.nl/ | * http://dnssectest.sidnlabs.nl/ | ||
* http://test.dnssec-or-not.org/ | * http://test.dnssec-or-not.org/ | ||
- | * file://usr/share/doc/bind9-doc/arm/Bv9ARM.ch04.html#DNSSEC | + | * file:///usr/share/doc/bind9-doc/arm/Bv9ARM.ch04.html#DNSSEC |