Configuring DNSSEC On BIND9 (9.7.3) On Debian Squeeze/Ubuntu 11.10
|
Submitted by falko (Contact Author) (Forums) on Sun, 2012-04-15 19:32. :: BIND | Debian | Ubuntu | DNS | Security
Configuring DNSSEC On BIND9 (9.7.3) On Debian Squeeze/Ubuntu 11.10Version 1.0 This guide explains how you can configure DNSSEC on BIND9 (version 9.7.3 that comes with Debian Squeeze/Ubuntu 11.10) on Debian Squeeze and Ubuntu 11.10. It covers how to enable DNSSEC on authoritative nameservers (master and slave) and on resolving nameservers, creation of keys (KSKs and ZSKs), signing of zones, key rolling with rollerd, zone file checking with donuts, creation of trust anchors, using DLV (DNSSEC look-aside validation), and getting your DS records into the parent's zone. I do not issue any guarantee that this will work for you!
1 Preliminary NoteI'm using three Debian Squeeze servers here:
I'm assuming that BIND is already installed and working on all three servers. I'm using the zone example.org throughout this tutorial to demonstrate the DNSSEC setup. That zone is already set up and working (through "normal" DNS) on the master (server1) and slave (server2). server1 (master): The BIND configuration directory is /etc/bind on Debian Squeeze/Ubuntu 11.10. That directory looks as follows: cd /etc/bind/ root@server1:/etc/bind# ls -l As you see, my example.org zone file is named pri.example.org. Yours might be named differently, so you have to adjust the zone name in the commands from this tutorial. My example.org zone looks as follows (nothing special, a normal BIND zone): cat pri.example.org
My named.conf.local looks as follows: cat named.conf.local
server2 (slave): I've configured the slave to store its slave zone file (called sec.example.org) in the /etc/bind/slave directory, as you can see in the /etc/bind/named.conf.local file: cat /etc/bind/named.conf.local
The slave is notified of zone file changes on the master so that it can retrieve a new zone file. As you see, nothing special here - a normal BIND setup.
2 Enabling DNSSEC On The Master (server1)server1 (master): I will use the dnssec-tools package in this tutorial as it comes with some handy tools such as zonesigner and rollerd that make DNSSEC management a lot easier. We can install it (and some other recommended packages) as follows: apt-get install dnssec-tools libnet-dns-sec-perl libmailtools-perl libcrypt-openssl-random-perl Now go to the /etc/bind directory: cd /etc/bind Open named.conf.options... vi named.conf.options ... and add dnssec-enable yes;, dnssec-validation yes;, and dnssec-lookaside auto; to the options section:
The bindkeys-file line is needed only if your bind.keys file is in a location other than /etc/bind/bind.keys - if it's /etc/bind/bind.keys, it's loaded by default. dnssec-lookaside auto; makes that named reads the DLV key from bind.keys the first time it executes. This is the dlv.isc.org key. Normally, there should be a fully signed path from the root zone (.) down to your own zone, which means that your parent zones (e.g. .org for example.org) must be signed as well. Unfortunately, not all TLDs have been signed yet. If any of your parents aren't signed, the chain is broken, and you cannot use the root zone's key as a trusted anchor in your BIND configuration. That's why DNSSEC look-aside validation (DLV) was invented. In short, DLV serves as an alternative repository for trusted keys where you can submit your zone keys if there's no fully signed path to your zone. The most prominent DLV repository is dlv.isc.org (ISC is the company that makes BIND). Both the root zone key and the dlv.isc.org key are included in /etc/bind/bind.keys (if not, please update BIND... apt-get install bind9 ... and check again). You can find out more about DNSSEC look-aside validation (DLV) on https://www.isc.org/solutions/dlv and https://dlv.isc.org/about/background. If you want to submit your keys to the dlv.isc.org repository, you can register on https://dlv.isc.org/. You can find a list of signed TLDs on http://stats.research.icann.org/dns/tld_report/ and http://www.tldwithdnssec.se/. If your TLD is signed, the preferred method is to submit your keys to your registry so that they can create a DS record for your zone. You don't need a DLV record then. In BIND 9.8 and 9.9, the root zone key from bind.keys can be loaded with dnssec-validation auto; - unfortunately, in BIND 9.7 (which we use) there's no auto option for dnssec-validation (that's why we use dnssec-validation yes;) which means the root zone key isn't loaded (see https://www.isc.org/bind-keys). To overcome this issue, we can either add the root zone key from bind.keys... cat bind.keys
to named.conf.options, or we simply include bind.keys in named.conf.options (I prefer the latter method): vi named.conf.options
Restart BIND afterwards: /etc/init.d/bind9 restart
|




Recent comments
19 hours 14 min ago
19 hours 20 min ago
1 day 18 min ago
1 day 6 hours ago
1 day 7 hours ago
1 day 9 hours ago
1 day 13 hours ago
1 day 20 hours ago
1 day 23 hours ago
2 days 1 hour ago