pmeerw's blog
24 Jan 2019
Finally, I decided to give DNSSEC a try, the technology should be somewhat mature by now...
So I'm using bind 9.11.5 on Debian buster to secure pmeerw.at. I loosely followed the Debian DNSSEC HOWTO. DNSViz has been useful for testing.
Create a directory /etc/bind/keys
Enable DNSSEC in /etc/bind/named.conf.options and set the key directory:
options {
// ...
dnssec-enable yes;
key-directory "/etc/bind/keys";
}
The bind9utils package has the dnssec-keygen tool, so run:
cd /etc/bind/keys dnssec-keygen -a RSASHA256 -b 2048 -3 pmeerw.at dnssec-keygen -a RSASHA256 -b 2048 -3 -fk pmeerw.atto obtain the following files:
-rw-r--r-- 1 bind bind 601 Jan 22 22:31 Kpmeerw.at.+008+14644.key -rw------- 1 bind bind 1776 Jan 22 22:31 Kpmeerw.at.+008+14644.private -rw-r--r-- 1 bind bind 602 Jan 22 22:32 Kpmeerw.at.+008+49161.key -rw------- 1 bind bind 1776 Jan 22 22:32 Kpmeerw.at.+008+49161.privateI have set ownership of
keys/ to bind:bind, so: chown -R bind:bind /etc/bind/keys/
The zone pmeerw.at is configured in /etc/bind/named.conf.local:
zone "pmeerw.at" {
type master;
file "/etc/bind/db.pmeerw.at";
auto-dnssec maintain;
inline-signing yes;
};
Restart the nameserver: service bind9 restart
Use dig @127.0.0.1 +dnssec pmeerw.at axfr and RRSIG, NSEC records should be displayed for the zone.
Zone transfers (AXFR) must be allowed, at least for localhost:
options {
// ...
allow-transfer {
127.0.0.1;
};
}
I'm using Joker; in case the authoritative nameserver is already configured correctly for DNSSEC, joker.com's web-based administration interface already has all the
required fields completed:
alg: 8, digest: 5C09567DA17552239455C597878F97CCABDDBF6E, digest type: 1 (or 2), keytag: 14644
In order to get these values, the dnssec-dsfromkey tool is helpful:
dnssec-dsfromkey /etc/bind/keys/Kpmeerw.at.+008+14644.key
pmeerw.at. IN DS 14644 8 1 5C09567DA17552239455C597878F97CCABDDBF6E pmeerw.at. IN DS 14644 8 2 E2085DD26A5BE04722BCE5DEC62CA739919CCE9B8743800610142B7AF4BB2080The listing shows the DS records that would be configured in the .at nameserver; it provides us with the keytag (14644), algorithm (8 for RSA/SHA256, see list), digest type (1 for SHA-1, 2 for SHA-256, see list) and the digest value.
I had to limit UDP packet sizes to 512 in
/etc/bind/named.conf.options, otherwise
IPv6 showed transmission problems and delays -- not fully investigated yet, some related info
options {
// ...
edns-udp-size 512;
max-udp-size 512;
}
DNSViz results for pmeerw.at:
See also DNSSEC-analyzer results.
posted at: 19:31 | path: /configuration | permanent link