BIND/rndc: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== 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. | BIND stellt mit ''rndc'' (Remote Name Daemon Control) ein Werkzeug zur Verwaltung des ''named''-Daemons über eine authentifizierte TCP-Verbindung bereit. | ||
| Zeile 6: | Zeile 6: | ||
* Schlüsseldefinitionen in der ''named''-Konfiguration und in der ''rndc''-Konfiguration müssen übereinstimmen. | * Schlüsseldefinitionen in der ''named''-Konfiguration und in der ''rndc''-Konfiguration müssen übereinstimmen. | ||
=== Standardverhalten === | |||
* Unter Debian wird ''rndc'' in der Regel ohne eigene ''/etc/bind/rndc.conf'' betrieben | |||
* Stattdessen verwendet rndc standardmäßig die automatisch erzeugte Schlüsseldatei /etc/bind/rndc.key | |||
* Diese Datei wird ebenfalls mit ''rndc-confgen -a'' erstellt | |||
* Als Ziel wird automatisch der lokale named auf '''127.0.0.1''', Port '''953''' angenommen | |||
=== Konfiguration in /etc/bind/named.conf === | |||
Für die Nutzung von ''rndc'' muss eine ''controls''-Direktive in der ''named''-Konfiguration vorhanden sein. | Für die Nutzung von ''rndc'' muss eine ''controls''-Direktive in der ''named''-Konfiguration vorhanden sein. | ||
| Zeile 37: | Zeile 43: | ||
Dieser Befehl erzeugt eine Datei ''/etc/bind/rndc.key'' mit einer passenden ''key''-Definition und setzt dabei restriktive Dateirechte (z. B. Modus 0600). | Dieser Befehl erzeugt eine Datei ''/etc/bind/rndc.key'' mit einer passenden ''key''-Definition und setzt dabei restriktive Dateirechte (z. B. Modus 0600). | ||
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. | 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. | ||
; | ; Hinweis | ||
: 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.: | : 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.: | ||
| Zeile 51: | Zeile 53: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Konfiguration in /etc/bind/rndc.conf === | |||
Die Datei ''/etc/bind/rndc.conf'' beschreibt, mit welchen Schlüsseln und gegen welche Server ''rndc'' arbeitet. Auf vielen Systemen genügt die automatisch erzeugte Datei ''/etc/bind/rndc.key''; eine explizite ''rndc.conf'' ist dann optional. | Die Datei ''/etc/bind/rndc.conf'' beschreibt, mit welchen Schlüsseln und gegen welche Server ''rndc'' arbeitet. Auf vielen Systemen genügt die automatisch erzeugte Datei ''/etc/bind/rndc.key''; eine explizite ''rndc.conf'' ist dann optional. | ||
* Die rndc-Konfiguration ermöglicht die Authentifizierung zwischen rndc und BIND. | |||
; Minimalbeispiel | ; Minimalbeispiel | ||
| Zeile 75: | Zeile 80: | ||
* ''server'' – ermöglicht serverbezogene Einstellungen, z. B. abweichende Ports oder Schlüssel. | * ''server'' – ermöglicht serverbezogene Einstellungen, z. B. abweichende Ports oder Schlüssel. | ||
; | ; Hinweis | ||
: ''/etc/bind/rndc.conf'' und die verwendeten Schlüsseldateien (z. B. ''/etc/bind/rndc.key'') sollten nur für ''root'' lesbar sein (Modus 0600), um unbefugten Zugriff auf Geheimschlüssel zu verhindern. | : ''/etc/bind/rndc.conf'' und die verwendeten Schlüsseldateien (z. B. ''/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. | Für Detailinformationen zu allen Direktiven steht die Manpage ''rndc.conf(5)'' zur Verfügung. | ||
=== Befehlszeilenoptionen === | |||
Die allgemeine Aufrufsyntax von ''rndc'' lautet: | Die allgemeine Aufrufsyntax von ''rndc'' lautet: | ||
| Zeile 145: | Zeile 150: | ||
Weitere Details zu Befehlen und Optionen sind in den Manpages ''rndc(8)'' und ''named(8)'' beschrieben. | Weitere Details zu Befehlen und Optionen sind in den Manpages ''rndc(8)'' und ''named(8)'' beschrieben. | ||
<noinclude> | <noinclude> | ||
=== Dienst neu starten === | |||
Nach Änderungen an den Schlüsseln oder der ''rndc''-Konfiguration muss der Dienst bind9 neu gestartet werden. | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
sudo systemctl restart bind9 | |||
</syntaxhighlight> | |||
== Anhang == | == Anhang == | ||
Aktuelle Version vom 8. Dezember 2025, 15:45 Uhr
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.
Standardverhalten
- Unter Debian wird rndc in der Regel ohne eigene /etc/bind/rndc.conf betrieben
- Stattdessen verwendet rndc standardmäßig die automatisch erzeugte Schlüsseldatei /etc/bind/rndc.key
- Diese Datei wird ebenfalls mit rndc-confgen -a erstellt
- Als Ziel wird automatisch der lokale named auf 127.0.0.1, Port 953 angenommen
Konfiguration in /etc/bind/named.conf
Für die Nutzung von rndc muss eine controls-Direktive in der named-Konfiguration vorhanden sein.
- controls-Direktive
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.
- 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/bind/rndc.key mit einer passenden key-Definition und setzt dabei restriktive Dateirechte (z. B. Modus 0600).
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.
- Hinweis
- 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/bind/rndc.key";
Konfiguration in /etc/bind/rndc.conf
Die Datei /etc/bind/rndc.conf beschreibt, mit welchen Schlüsseln und gegen welche Server rndc arbeitet. Auf vielen Systemen genügt die automatisch erzeugte Datei /etc/bind/rndc.key; eine explizite rndc.conf ist dann optional.
- Die rndc-Konfiguration ermöglicht die Authentifizierung zwischen rndc und BIND.
- 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.
- Hinweis
- /etc/bind/rndc.conf und die verwendeten Schlüsseldateien (z. B. /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]
Häufig verwendete Befehle bei korrekt konfiguriertem lokalen Host:
| Befehl | Beschreibung |
|---|---|
| status | zeigt Status des Servers, Versionsinformationen und die Zahl der geladenen Zonen. |
| reload | lädt Konfiguration und Zonendateien neu, ohne den Prozess neu zu starten. |
| reconfig | liest nur die Konfiguration neu und erkennt neue oder entfernte Zonen, ohne alle Zonendateien neu zu laden. |
| reload <zonenname> | lädt nur die angegebene Zone neu. |
| refresh <zonenname> | startet einen sofortigen SOA-Refresh für eine Slave-Zone. |
| freeze <zonenname> | friert eine dynamische Zone ein. Journaldaten werden in die Zonendatei geschrieben, weitere Updates werden blockiert. |
| thaw <zonenname> | hebt freeze auf und erlaubt wieder dynamische Updates. |
| sync <zonenname> | schreibt Journaldaten in die Zonendatei. Mit -clean wird das Journal anschließend gelöscht. |
| flush | leert den gesamten Resolver-Cache. |
| flushname <name> | entfernt nur Einträge für einen bestimmten Namen aus dem Cache. |
| flushtree <name> | entfernt alle Einträge unterhalb eines Namensbaums aus dem Cache. |
| halt | beendet den named-Dienst sofort, ohne dynamische Zonendaten zuerst zu sichern. |
| stop | stoppt named kontrolliert und speichert zuvor dynamische Updates und IXFR-Informationen. |
| querylog | schaltet die ausführliche Protokollierung von Anfragen ein oder aus. |
| stats | schreibt Statistikdaten in die von statistics-file konfigurierte Datei (unter Debian typischerweise z. B. /var/cache/bind/named.stats). |
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.
Dienst neu starten
Nach Änderungen an den Schlüsseln oder der rndc-Konfiguration muss der Dienst bind9 neu gestartet werden.
sudo systemctl restart bind9
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks