Dit is de gearchiveerde site van het DNSSEC Kennisplatform (2012-2018).
Actuele informatie over DNSSEC vind je op https://sidn.nl/dnssec/.

rndc

rndc is onderdeel van de BIND suite en biedt een command line interface naar de named daemon. Voor de communicatie tussen deze twee partijen wordt een gedeelde geheime sleutel gebruikt, vergelijkbaar met de manier waarop TSIG de zone transfers tussen masters en slaves beveiligd. Het hmac-sha256 algoritme wordt niet ondersteund, dus houden we het bij hmac-md5:

cd /etc/bind/
dnssec-keygen -T KEY -a hmac-md5 -b 512 -r /dev/urandom -n HOST control

We plaatsen de sleutel uit de file /etc/bind/Kcontrol.+157+12345.private in het /etc/rndc.key bestand (met permissies 640 root:named):

key control_key {
  algorithm hmac-md5;
  secret "************";
  };

Dat is een apart sleutelbestand dat we vervolgens door named laten inlezen in het configuratiebestand /etc/named.conf:

include "/etc/rndc.key";
controls {
  inet 127.0.0.1 allow { localhost; } keys { control_key; };
  };

Zijn de eigenaar en de permissies van deze twee files hetzelfde, dan zou je er voor kunnen kiezen om de geheime sleutel direct in het bestand /etc/named.conf op te nemen. Daarmee ben je ook af van de melding 'WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf)'. Deze laat alleen weten dat er twee configuratiebestanden gevonden zijn, die — inderdaad — allebei gebruikt worden.

Diezelfde geheime sleutel nemen we daarna ook op in het rndc configuratiebestand /etc/rndc.conf (met permissies 640 root:named):

key "control_key" {
  algorithm hmac-md5;
  secret "************";
  };
options {
  default-server localhost;
  //default-key "control_key";
  };
server localhost {
  key "control_key";
  };

Na een herstart van named kunnen we het rndc commando testen door bijvoorbeeld een domein opnieuw te laden:

[root ~]# service named restart
Stopping named:                                                   [ OK ]
Starting named:                                                   [ OK ]
[root ~]# rndc reload example.nl IN external
zone reload up-to-date
[root ~]#