DNSSECReport.com
Free DNS Reports, Key Monitoring, Software and Alerts
A new DNSSEC component that must be purchased, upgraded, or outsourced is the DNSSEC Recursive Validator. This is an instance of Bind, Unbound, or equivalent software that is capable of validating public keys with DNS servers that have signed the zone with a corresponding private key. Existing recursive validators may be upgraded, but first the OS must be upgraded with the latest security patches, hardened using FIPS PUB 800-81R1, and finally reconfigured to validate public/private keys.
DNSSEC will be deployed in the USA during 2009 and will become a standard means for establishing trust among organizations. There will be a handful of DNS servers for each large government agency or corporation that will be specifically configured to validate the DNSSEC keys and cache the DNS results. These servers will need to capture the successful and unsuccessful key validations and assist system administrators with the diagnosis of failed keys and halted email and web traffic as a result.
During these times of organization panic, it will be helpful to have configured your Recursive Validators with the proper settings to minimize potential problems and speed the diagnosis of trouble. Below is a set of configuration settings for Bind 9.6.x that attempts to meet these goals.
Step #1 - Enable recursive validation
Use the following in named.conf to enable recursive validation in bind:
options {
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
allow-query { any; };
allow-recursion { any; };
...
}
trusted-keys {
$include /etc/bind/dnssecreport-daily.txt ; scrubbed/tested keys
}
logging {
channel dnssec_log {
file "dnssec.log" size 100m;
print-time yes;
print-category yes;
print-severity yes;
};
channel keycheck_file {
file "validation.log" versions 5;
severity debug 3;
print-category yes;
print-severity yes;
print-time yes;
};
category dnssec {dnssec_log; };
category security {dnssec_log; };
category default {default_syslog; keycheck_file; };
category general {default_syslog; keycheck_file; };
category update {default_syslog; keycheck_file; };
};
cd /etc/bind
wget http://www.dnssecreport.com/DNSSECReport/dnssecreport-daily.txt
/usr/sbin/named restart
dig +dnssec A www.dotgov.gov @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1424
grep 'validation failed' dnssec.log > myfailedvalidations.txt
grep success dnssec.log > mysuccessfulvalidations.txt
The addition of the NSEC3RSASHA1 algorithm for key generation
added additional security to the signing of zone files. This
security changes the results computed for NXDOMAIN for the signed
zone file to hash the child domain names. This hashing eliminates
the ability for a zone crawler, or spider, to identify all the child zones
programatically and launch and attack.
In Bind 9.6.0 and later releases, two new parameters are passed to
the dnssec-signzone command to hash the child names during the
signzone process:
-H (int) -3 (Hex[4])
dnssec-signzone -H 15 -3 aabb -k Kdomain.net.+007+56487 \
-o domain.net -e +7776000 domain.net Kdomain.net.+007+62648
To move from an unsigned zone to a DNSSEC signed zone, the
following changes are necessary to the named.conf (or $include files).
The signed zone, 'domain.net.signed', will be the new zone file that
should be present in named.conf. The prior file should be edited offline
and used as input to the DNSSEC zone signing process.
zone "domain.net" {
type master;
file "domain.net.signed";
};
options {
...
...
dnssec-enable yes;
};
options {
...
...
dnssec-enable yes;
};
$include Kfed.gov.+007+55791.key ; Active Key Signing Key
$include Kfed.gov.+007+08345.key ; Active Zone Signing Key
$include Kfed.gov.+007+44198.key ; Prepublished Zone Signing Key
There appears to be a large number of firewalls that are
not configured to handle the large DNS message sizes necessary
for DNSSEC. ALL reports on DNSSECReport.com have been updated
to test the firewalls in front of each name server to see
if there are dropped packets due to size.
Test patterns:
dig domain.gov DNSKEY @authoritative-nameserver