BIND/rndc: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| (83 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== | <noinclude> | ||
<!-- | |||
---- | |||
{{Navigation|<zurück>|<nachste>}} | |||
---- | |||
--> | |||
'''BIND/rndc''' - '''R'''emote '''N'''ame '''D'''aemon '''C'''ontrol | |||
</noinclude> | |||
== Beschreibung == | |||
; Werkzeug zur Verwaltung von [[BIND]] | |||
* [[Authentifizierung]] | |||
** gemeinsam genutzter TSIG-Schlüssel (HMAC) | |||
* [[TCP]]-Verbindung | |||
* [[TCP]]-Port 953 | |||
== Installation == | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
</syntaxhighlight> | |||
== Aufruf == | |||
<syntaxhighlight lang="bash" highlight="1"> | |||
rndc [Optionen] Befehl [Optionen] | |||
</syntaxhighlight> | |||
=== Befehle === | |||
{| class="wikitable sortable options gnu big" | |||
! Befehl | |||
! Parameter | |||
! Beschreibung | |||
|- | |||
| status | |||
| | |||
| Status des Servers, Versionsinformationen und die Zahl der geladenen Zonen | |||
|- | |||
| reload | |||
| | |||
| Konfiguration und Zonendateien neu laden, ohne den Prozess neu zu starten | |||
|- | |||
| reconfig | |||
| | |||
| Konfiguration neu einlesen, oder entfernte Zonen erkennen, ohne alle Zonendateien neu zu laden | |||
|- | |||
| reload | |||
|''<zonenname>'' | |||
| lädt 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 beispielsweise ''/var/cache/bind/named.stats'') | |||
|} | |||
=== Konfigurationsdatei === | |||
Vorgaben aus Konfigurationsdateien überschreiben | |||
; Vorgaben überschreiben | |||
{| class= "wikitable options big" | |||
! Option || Parameter || Beschreibung | |||
|- | |||
| -c || [[Datei]] || [[Konfigurationsdatei]] | |||
|- | |||
| -p || [[Port]] || [[Port]] | |||
|- | |||
| -s || [[Server]] || [[Server]] | |||
|- | |||
| -y || [[Keyname]] || [[key]] | |||
|} | |||
=== | === Weitere Details === | ||
* [[rndc(8)]] | |||
* [[named(8)]] | |||
=== Parameter === | |||
=== Umgebungsvariablen === | |||
=== Exit-Status === | |||
{| class="wikitable options col1center big" | |||
|- | |||
! Wert !! Beschreibung | |||
|- | |||
| 0 || Erfolg | |||
|- | |||
| >0 || Fehler | |||
|} | |||
=== Konfiguration in /etc/bind/named.conf | == Konfiguration == | ||
; 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 19: | Zeile 129: | ||
<syntaxhighlight lang="json" highlight="" line copy> | <syntaxhighlight lang="json" highlight="" line copy> | ||
controls { | controls { | ||
inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; }; | |||
inet ::1 allow { localhost; } keys { "rndc-key"; }; | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Zeile 30: | Zeile 140: | ||
<syntaxhighlight lang="json" highlight="" line copy> | <syntaxhighlight lang="json" highlight="" line copy> | ||
key "rndc-key" { | key "rndc-key" { | ||
algorithm hmac-sha256; | |||
secret "BASE64-KEY"; | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Zeile 53: | Zeile 163: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === /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. | ; 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. | * Die rndc-Konfiguration ermöglicht die Authentifizierung zwischen rndc und BIND. | ||
| Zeile 62: | Zeile 174: | ||
<syntaxhighlight lang="json" highlight="" line copy> | <syntaxhighlight lang="json" highlight="" line copy> | ||
key "rndc-key" { | key "rndc-key" { | ||
algorithm hmac-sha256; | |||
secret "BASE64-KEY"; | |||
}; | }; | ||
options { | options { | ||
default-server 127.0.0.1; | |||
default-key "rndc-key"; | |||
}; | }; | ||
server 127.0.0.1 { | server 127.0.0.1 { | ||
key "rndc-key"; | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Zeile 78: | Zeile 190: | ||
* ''key'' – definiert den gemeinsam genutzten Schlüssel. | * ''key'' – definiert den gemeinsam genutzten Schlüssel. | ||
* ''options'' – setzt globale Vorgaben wie ''default-server'' und ''default-key''. | * ''options'' – setzt globale Vorgaben wie ''default-server'' und ''default-key''. | ||
* ''server'' – ermöglicht serverbezogene Einstellungen, | * ''server'' – ermöglicht serverbezogene Einstellungen, beispielsweise abweichende Ports oder Schlüssel. | ||
; Hinweis | ; Hinweis | ||
| Zeile 85: | Zeile 197: | ||
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. | ||
=== | === 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> | |||
=== Debian === | |||
[[rndc]] wird 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 | |||
=== Dateien === | |||
{| class="wikitable options big" | {| class="wikitable options big" | ||
|- | |- | ||
! Datei !! Beschreibung | |||
|- | |- | ||
| | | || | ||
| | |||
|- | |- | ||
| | | || | ||
| | |||
| | |||
|} | |} | ||
<noinclude> | |||
<!-- | |||
---- | |||
{{Navigation|<zurück>|<nachste>}} | |||
---- | |||
--> | |||
== Anwendung == | |||
; Erneuten Domaintransfer | |||
Am [[BIND/Slave|Slave]] starten | |||
<syntaxhighlight lang="bash" highlight="1"> | |||
rndc retransfer <DOMAIN> | |||
</syntaxhighlight> | |||
<!-- output --> | |||
<syntaxhighlight lang="bash" highlight="" line> | |||
</syntaxhighlight> | |||
=== Problembehebung === | |||
; Übereinstimmung der Schlüsseldefinitionen | |||
* ''[[named]]''-Konfiguration | |||
* ''[[rndc]]''-Konfiguration | |||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
<div style="column-count:2"> | <div style="column-count:2"> | ||
<categorytree hideroot=on mode="pages"> | <categorytree hideroot=on mode="pages">BIND</categorytree> | ||
</div> | </div> | ||
---- | ---- | ||
| Zeile 162: | Zeile 256: | ||
<!-- | <!-- | ||
; Man-Page | ; Man-Page | ||
# | # [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | ||
; Info-Pages | ; Info-Pages | ||
| Zeile 171: | Zeile 265: | ||
==== Weblinks ==== | ==== Weblinks ==== | ||
{{DEFAULTSORT:BIND/rndc}} | |||
{{DEFAULTSORT: | {{DISPLAYTITLE:BIND/rndc}} | ||
{{DISPLAYTITLE: | |||
[[Kategorie:BIND]] | [[Kategorie:BIND]] | ||
</noinclude> | </noinclude> | ||
Aktuelle Version vom 19. Juli 2026, 21:52 Uhr
BIND/rndc - Remote Name Daemon Control
Beschreibung
- Werkzeug zur Verwaltung von BIND
- Authentifizierung
- gemeinsam genutzter TSIG-Schlüssel (HMAC)
- TCP-Verbindung
- TCP-Port 953
Installation
Aufruf
rndc [Optionen] Befehl [Optionen]
Befehle
| Befehl | Parameter | Beschreibung |
|---|---|---|
| status | Status des Servers, Versionsinformationen und die Zahl der geladenen Zonen | |
| reload | Konfiguration und Zonendateien neu laden, ohne den Prozess neu zu starten | |
| reconfig | Konfiguration neu einlesen, oder entfernte Zonen erkennen, ohne alle Zonendateien neu zu laden | |
| reload | <zonenname> | lädt 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 beispielsweise /var/cache/bind/named.stats) |
Konfigurationsdatei
Vorgaben aus Konfigurationsdateien überschreiben
- Vorgaben überschreiben
| Option | Parameter | Beschreibung |
|---|---|---|
| -c | Datei | Konfigurationsdatei |
| -p | Port | Port |
| -s | Server | Server |
| -y | Keyname | key |
Weitere Details
Parameter
Umgebungsvariablen
Exit-Status
| Wert | Beschreibung |
|---|---|
| 0 | Erfolg |
| >0 | Fehler |
Konfiguration
- 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";
/etc/bind/rndc.conf
- 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, beispielsweise 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.
Dienst neu starten
Nach Änderungen an den Schlüsseln oder der rndc-Konfiguration muss der Dienst bind9 neu gestartet werden.
sudo systemctl restart bind9
Debian
rndc wird 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
Dateien
| Datei | Beschreibung |
|---|---|
Anwendung
- Erneuten Domaintransfer
Am Slave starten
rndc retransfer <DOMAIN>
Problembehebung
- Übereinstimmung der Schlüsseldefinitionen
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks