Zum Inhalt springen

BIND/rndc

Aus Foxwiki

Die Verwendung von rndc

BIND stellt mit rndc (Remote Name Daemon Control) ein Werkzeug zur Verwaltung des named-Daemons über eine authentifizierte TCP-Verbindung bereit.

  • Kommunikation erfolgt standardmäßig über TCP-Port 953.
  • Die Authentifizierung basiert auf einem gemeinsam genutzten TSIG-Schlüssel (HMAC).
  • Schlüsseldefinitionen in der named-Konfiguration und in der rndc-Konfiguration müssen übereinstimmen.
  • Die Beispiele verwenden /etc/named.conf und /etc/rndc.key; unter Debian liegen die entsprechenden Dateien typischerweise unter /etc/bind/ (z. B. /etc/bind/named.conf, /etc/bind/rndc.key).

Konfiguration in /etc/named.conf

Für die Nutzung von rndc muss eine controls-Direktive in der named-Konfiguration vorhanden sein.

Beispiel
controls-Direktive (IPv4 und IPv6, lokal)
controls {
  inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; };
  inet ::1       allow { localhost; } keys { "rndc-key"; };
};

Diese Anweisung veranlasst named, auf 127.0.0.1:953 und ::1:953 Verbindungen zu akzeptieren und nur Anfragen zu erlauben, die mit dem Schlüssel "rndc-key" signiert sind.

Beispiel
key-Definition
key "rndc-key" {
  algorithm hmac-sha256;
  secret "BASE64-KEY";
};
  • algorithm hmac-sha256; – empfiehlt sich als aktueller Standard für TSIG-Schlüssel.
Schlüsselgenerierung mit rndc-confgen

In typischen Installationen wird der Schlüssel automatisch mit rndc-confgen erzeugt:

rndc-confgen -a

Dieser Befehl erzeugt eine Datei /etc/rndc.key (unter Debian in der Regel /etc/bind/rndc.key) mit einer passenden key-Definition und setzt dabei restriktive Dateirechte (z. B. Modus 0600).

Alternativ kann ein TSIG-Schlüssel explizit mit dnssec-keygen erzeugt werden:

dnssec-keygen -a hmac-sha256 -b 256 -n HOST rndc-key

Der generierte Schlüssel befindet sich in der zugehörigen .key-Datei (z. B. Krndc-key.+161+12345.key) und wird in das Feld secret übernommen.

Warnung
Klartext-Schlüssel sollten nicht direkt in einer global lesbaren Konfigurationsdatei stehen. Schlüsseldefinitionen werden in eine separate, nur für root lesbare Datei ausgelagert und per include eingebunden, z. B.:
include "/etc/rndc.key";
Unter Debian wird die Datei typischerweise als /etc/bind/rndc.key abgelegt und entsprechend eingebunden.

Konfiguration in /etc/rndc.conf

Die Datei /etc/rndc.conf beschreibt, mit welchen Schlüsseln und gegen welche Server rndc arbeitet. Auf vielen Systemen genügt die automatisch erzeugte Datei /etc/rndc.key; eine explizite rndc.conf ist dann optional.

Minimalbeispiel
key "rndc-key" {
  algorithm hmac-sha256;
  secret "BASE64-KEY";
};

options {
  default-server 127.0.0.1;
  default-key "rndc-key";
};

server 127.0.0.1 {
  key "rndc-key";
};
  • key – definiert den gemeinsam genutzten Schlüssel.
  • options – setzt globale Vorgaben wie default-server und default-key.
  • server – ermöglicht serverbezogene Einstellungen, z. B. abweichende Ports oder Schlüssel.
Achtung
/etc/rndc.conf und die verwendeten Schlüsseldateien (z. B. /etc/rndc.key oder /etc/bind/rndc.key) sollten nur für root lesbar sein (Modus 0600), um unbefugten Zugriff auf Geheimschlüssel zu verhindern.

Für Detailinformationen zu allen Direktiven steht die Manpage rndc.conf(5) zur Verfügung.

Befehlszeilenoptionen

Die allgemeine Aufrufsyntax von rndc lautet:

rndc [Optionen] command [command-options]


Gegebenenfalls ist es notwendig, Vorgaben aus der Konfigurationsdatei zu überschreiben:

  • -c DATEI – verwendet eine alternative Konfigurationsdatei.
  • -p PORT – verwendet einen anderen als den Standardport 953 für die Verbindung zu named.
  • -s SERVER – adressiert einen anderen Zielserver als den in options definierten default-server.
  • -y KEYNAME – verwendet einen anderen als den in options konfigurierten default-key.

Weitere Details zu Befehlen und Optionen sind in den Manpages rndc(8) und named(8) beschrieben.


Anhang

Siehe auch



Dokumentation

Links

Projekt

Weblinks