====== dig ======
Aktuelle root-keys herunterladen:
dig . DNSKEY | egrep -v '^($|;)' > root.keys
Nameserver abfragen:
dig +sigchase +trusted-key=./root.keys www.isc.org A @127.0.0.1
====== Eigenen Resolver testen ======
dig org. SOA +dnssec
-> flags: ad
dig test.dnssec-or-not.net TXT @localhost
-> "Yes, you are using DNSSEC"
====== Eigene Zone signieren ======
===== 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 ZSK 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:
zone "example.com" {
…
file "master/example.com.signed";
…
};
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 =====
{{:lpi2:ds-dnskey.png?400|}}
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
===== bind automatisch ZSK signieren lassen =====
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:
zone "example.com" {
…
file "master/example.com";
auto-dnssec maintain;
inline-signing yes;
…
};
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
====== Doku und Links ======
* http://dnssectest.sidnlabs.nl/
* http://test.dnssec-or-not.org/
* file:///usr/share/doc/bind9-doc/arm/Bv9ARM.ch04.html#DNSSEC