Und so gehts:
System: ein Opensue 13.1, das ist aber völlig Wurscht, wichtiger ist es in diesem Beispiel, einen halbwegs aktuellen bind zu haben.
Ich hab’ das erst im Heimnetz probiert mit BIND 9.8.4‑rpz2+rl005.12-P1 (Debian wheezy) — das ist aber ziemlich alt. Dann auf Arbeit mit BIND 9.10.1‑P1 — und zuletzt eben auf der Suse umgesetzt (BIND 9.9.4‑rpz2.13269.14-P2 (Extended Support Version))
Das ist nichts für Erika Musterfrau, zumindest mit den Begriffen sollte man vertraut sein, ebenso mit einem normalen bind-Setup (also ohne DNSSEC)
Das ist hier sehr kurz geschrieben, manche Schritte mögen fehlen. Wer aufmerksam liest, kann die selber ergänzen.
Ein Verzeichnis für die Keys anlegen:
allinclusive:/var/lib/named/etc # mkdir dnssec-keys
ZSK erzeugen:
allinclusive:/var/lib/named/etc/dnssec-keys # dnssec-keygen -a RSASHA512 -b 4096 sokoll.com. Generating key pair................................++ ..................................................++ Ksokoll.com.+010+30918 allinclusive:/var/lib/named/etc/dnssec-keys # ls -l Ksokoll.com.+010+30918.* -rw-r--r-- 1 named named 950 Mar 23 20:41 Ksokoll.com.+010+30918.key -rw------- 1 named named 3317 Mar 23 20:41 Ksokoll.com.+010+30918.private allinclusive:/var/lib/named/etc/dnssec-keys #
KSK erzeugen:
allinclusive:/var/lib/named/etc/dnssec-keys # dnssec-keygen -a RSASHA512 -b 4096 -f KSK sokoll.com. Generating key pair..................................................................................................................................................................................................++ ......................................................................................................++ Ksokoll.com.+010+49955 allinclusive:/var/lib/named/etc/dnssec-keys # ls -l Ksokoll.com* -rw-r--r-- 1 named named 950 Mar 23 20:41 Ksokoll.com.+010+30918.key -rw------- 1 named named 3317 Mar 23 20:41 Ksokoll.com.+010+30918.private -rw-r--r-- 1 named named 951 Mar 23 20:41 Ksokoll.com.+010+49955.key -rw------- 1 named named 3317 Mar 23 20:41 Ksokoll.com.+010+49955.private allinclusive:/var/lib/named/etc/dnssec-keys #
named-config bearbeiten:
allinclusive:/etc # vi named9.conf zone "sokoll.com" { type master; auto-dnssec maintain; key-directory "/etc/dnssec-keys"; inline-signing yes; file "master/sokoll.com";
Suse-spezifisch: Beim Starten des named wird die named.conf aus /etc nach /var/lib/named/etc kopiert, deshalb hier ein systemctl restart named.service machen!
Dem Nutzer named (unter dessen Kennung der bind läuft, Leserechte auf die Keys geben:
allinclusive:/var/lib/named/etc/dnssec-keys # chown named * allinclusive:/var/lib/named/etc/dnssec-keys #
Zone signieren:
allinclusive:/var/lib/named/etc/dnssec-keys # rndc sign sokoll.com rndc: 'sign' failed: unexpected end of input allinclusive:/var/lib/named/etc/dnssec-keys #
Die Fehlermeldung scheint ein Bug zu sein, cf. https://bugzilla.redhat.com/show_bug.cgi?id=1114953
Zone testen:
~$ dig +dnssec sokoll.com ns.sokoll.com | grep ^ns ns.sokoll.com. 23959 IN A 195.110.60.28 ns.sokoll.com. 86337 IN RRSIG A 10 3 86400 20150422190822 20150323185355 49955 sokoll.com. F2/UZIhGiWxEZZ1Aa22mS30K1L/rz0qd8GlBppzt6Rz8OGzr+H3TPypr fDJqjrFFoMQzwSdvAyEb0E5MhCVeXFH5olKFabdlucXaXfu5CYIkcx5y KDDoaTGvyHee2RfjA/taSPpCV1a3ylVvYo3qoeY3Pd3sOf2U72dFYlp/ kznsZVFwJkee/xQF0Apk3Q+A9oeBcV7AW4VnrehRaWq7UcnkPW96gD3n UBnVSh8RnUsKs3lOqPtnqszD06Hzy+Mzq3PCR6bLTql3LPasQJ96XLnv WGUefFxOXqPk2t+pvFM0z95x31gPRckYr7YVehs9CUDidqUsswGFwz5K 1yREqPkyjVJULIMrPfx1B2FQrQ7ZvpN1t2yzQuuyynZAXasuA++OLviP 7wxOcZUIIzll9GkiV3CkjNzb7zTPxBmq+HtppcFjh/X8QhJ9EwAypFfj yp8kRZ4xDvBk6Fly8ATx9TpikYfis/+xmZwt4GCi6f7z9vvDkOnjVsD0 0ND9Ty9tJtDC18oWrq62T4UsSfxfm64XDsfKvsLUQ7VFH189E3X9NtKy ki1gGxAYqD7xXDbN9bQ9EIZf5fuqU20y0cie1rHCa6vx41gQ8pfnF7sp 0GPE4efwDqefd80JBCgNR+psRBzrdNUrTSplNBFR9xBlPernnG5F4bKA qqs/TdGNztQ= ~$
Voila, wir haben einen RRSIG-RR!
NSEC3 einschalten, um Zone-Walking zu verhindern
allinclusive:/var/lib/named/etc/dnssec-keys # rndc signing -nsec3param 1 0 10 13F92714 sokoll.com request queued allinclusive:/var/lib/named/etc/dnssec-keys #
Testen von außerhalb:
rainer@dockstar:~$ ldns-walk sokoll.com. @ns.sokoll.com sokoll.com. Zone does not seem to be DNSSEC secured,or it uses NSEC3. rainer@dockstar:~$
DS-RR erzeugen, der dann in die com-Zone gehört:
allinclusive:/var/lib/named/etc/dnssec-keys # dnssec-dsfromkey -2 Ksokoll.com.+010+30918 sokoll.com. IN DS 30918 10 2 BAE5EE42D7729BB486B30C5658DC7322BAFDA9001F29B3328186D89471EE4918 allinclusive:/var/lib/named/etc/dnssec-keys #
Der Record muß in die Zone eingefügt werden!
Serial erhöhen, Änderungen bekanntmachen
allinclusive:/var/lib/named/etc/dnssec-keys # rndc reload sokoll.com zone reload queued allinclusive:/var/lib/named/etc/dnssec-keys #
Auf http://dnssec-debugger.verisignlabs.com/sokoll.com gehen und freuen 🙂