12.4. Die Verwendung von rndc

BIND enthält das Utility rndc, mit dem Sie den named-Daemon über die Befehlszeile vom lokalen und von einem Remote Host verwalten können.

Um zu verhindern, dass nicht authorisierte Benutzer auf deren System BIND auf Ihrem Server kontrollieren, wird durch einen gemeinsam verwendeten Schlüssel gewährleistet, dass ausdrücklich nur bestimmte Hosts ein entsprechendes Zugriffsrecht haben. Damit rndc in allen named-Dateien auf einem lokalen Rechner Befehle ausführen kann, müssen die Schlüssel, die in /etc/named.conf und /etc/rndc.conf verwendet werden, übereinstimmen.

12.4.1. Configuring /etc/named.conf

Um die Verbindung von rndczu Ihrem named-Dienst zu ermöglichen, muss beim Start von named die controls-Anweisung in Ihrer /etc/named.conf-Datei vorhanden sein.

Das folgende Beispiel einer controls-Anweisung ermöglicht es Ihnen, rndc-Befehle vom lokalen Host auszuführen.

controls {
  inet 127.0.0.1 allow { localhost; } keys { <key-name>; };
};

Diese Anweisung weist named an, am standardmäßigen TCP-Port 953 nach Loopback-Adressen zu suchen und lässt rndc-Befehle zu, die vom lokalen Host ausgeführt werden, wenn der richtige Schlüssel angegeben wird. Der <key-name> bezieht sich auf die key-Direktive, die sich auch in der /etc/named.conf-Datei befindet. Im nächsten Beispiel wird eine key-Anweisung veranschaulicht.

key "<key-name>" {
  algorithm hmac-md5;
  secret "<key-value>";
};

In diesem Beispiel ist <key-value> ein HMAC-MD5-Schlüssel. Mit dem nachfolgenden Befehl können Sie Ihre eigenen HMAC-MD5-Schlüssel erstellen:

dnssec-keygen -a hmac-md5 -b <bit-length> -n HOST <key-file-name>

Es empfiehlt sich, einen Schlüssel mit einer Größe von mindestens 256 Bit zu erstellen. Der aktuelle Schlüssel sollte im <key-value>-Bereich unter <key-file-name> gespeichert sein.

AchtungAchtung
 

Da /etc/named.conf von jedem gelesen werden kann, ist es angeraten, die key-Anweisung in eine separate Datei auszulagern, welche nur von root gelesen werden kann, und eine include-Anweisung zu verwenden, um diese Datei einzubinden, wie im folgenden Beispiel:

include "/etc/rndc.key";

12.4.2. Konfigurieren von /etc/rndc.conf

Die key-Anweisung ist die wichtigste in der Datei /etc/rndc.conf.

key "<key-name>" {
  algorithm hmac-md5;
  secret "<key-value>";
};

<key-name> und <key-value> sollten exakt mit den Einstellungen in /etc/named.conf übereinstimmen.

Um den Schlüsseln, welche in /etc/named.conf auf dem Ziel-Server angegeben sind, zu entsprechen, fügen Sie folgende Zeilen zu /etc/rndc.conf hinzu.

options {
  default-server  localhost;
  default-key     "<key-name>";
};

Dieser Befehl setzt den globalen Default-Schlüssel. Der Befehl rndc kann allerdings auch verschiedene Schlüssel für verschiedene Server verwenden, wie im folgenden Beispiel gezeigt:

server localhost {
  key  "<key-name>";
};

AchtungAchtung
 

Stellen Sie sicher, dass jeweils nur ein root-Benutzer auf die Datei /etc/rndc.conf zugreifen kann.

12.4.3. Befehlszeilenoptionen

Ein rndc-Befehl sieht wie folgt aus:

rndc <options> <command> <command-options>

Wenn rndc auf einem korrekt konfigurierten lokalen Host ausgeführt wird, stehen Ihnen folgende Befehle zur Verfügung:

Gelegentlich werden Sie bestimmt auch die Standardeinstellungen in der /etc/rndc.conf-Datei übergehen wollen. Hierzu stehen Ihnen folgende Optionen zur Verfügung:

Zusätzliche Informationen zu diesen Optionen finden Sie auf der rndc-man-Seite