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 ~]#