BIND9/rndc

Aus Foxwiki

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 Zugriff zum named-Daemon erlangen, verwendet BIND eine Authentifizierungsmethode, auf einem gemeinsamen geheimen Schlüssel basierend, um Hostsystemen den Zugriff zu gewähren. Das heisst, das ein übereinstimmender Schlüssel in /etc/named.conf und der rndc Konfigurationsdatei /etc/rndc.conf existieren muss.

Konfigurieren von /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 benutzt <key-value> einen HMAC-MD5-Algorithmus. Mit dem nachfolgenden Befehl können Sie Ihre eigenen Schlüssel unter Verwendung eines HMAC-MD5-Algorithmus 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 Schlüssel, der im <key-value>-Bereich gespeichert werden sollte, kann in der Datei <key-file-name>, welche von diesem Befehl erzeugt wurde, gefunden werden.

Warnung
Da /etc/named.conf von jedem gelesen werden kann, ist es angeraten, das key-Statement in eine separate Datei auszulagern, welche nur von root gelesen werden kann und ein include-Statement zu verwenden, um diese Datei einzubinden. Zum Beispiel:
include "/etc/rndc.key";

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>";
};

Diese Anweisung setzt den globalen Default-Schlüssel. Dierndc Konfigurationsdatei kann allerdings auch verschiedene Schlüssel für verschiedene Server verwenden, wie im folgenden Beispiel gezeigt:

server localhost {
  key  "<key-name>";
};
Achtung
Stellen Sie sicher, dass jeweils nur ein root-Benutzer auf die Datei /etc/rndc.conf zugreifen kann.

Für weitere Informationen zur Datei /etc/rndc.conf, siehe die rndc.conf man-Seiten.

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:

  • halt — Hält den named-Service sofort an.
  • querylog — Protokolliert alle Abfragen, die von Clients auf diesem Name-Server durchgeführt wurden.
  • refresh — Aktualisiert die Datenbank des Nameservers.
  • reload — Weist den Name-Server an, die Zone-Dateien neu zu laden, aber alle vorher verarbeiteten Antworten zu behalten. Dadurch können Sie Änderungen in den Zone-Dateien durchführen, ohne dass die gespeicherten Auflösungen von Namen verloren gehen.
  • Wenn sich Ihre Änderungen nur auf eine bestimmte Zone auswirken, können Sie lediglich diese Zone neu laden. Geben Sie hierzu nach dem reload-Befehl den Namen der Zone ein.
  • stats — Schreibt die aktuellen named-Statistiken in die Datei /var/named/named.stats.
  • stop — Stoppt den Server vorsichtig, und speichert dabei alle dynamischen Updates und die vorhandenen Incremental Zone Transfers (IXFR) Daten, vor dem Beenden.

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

  • -c <configuration-file> — Gibt einen alternativen Speicherort der Konfigurationsdatei an.
  • -p <port-number> — Legt für die rndc-Verbindung eine andere als die standardmäßige Portnummer 953 fest.
  • -s <server> — Ermöglicht es Ihnen, einen anderen als den default-server in /etc/rndc.conf anzugeben.
  • -y <key-name> — Ermöglicht es Ihnen, einen anderen als den default-key in der /etc/rndc.conf-Datei einzustellen.

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