Zum Inhalt springen

BIND/rndc: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 85: Zeile 85:
</noinclude>
</noinclude>
= TMP =
= TMP =
== 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
<syntaxhighlight lang="json" highlight="" line copy>
controls {
  inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; };
  inet ::1      allow { localhost; } keys { "rndc-key"; };
};
</syntaxhighlight>
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
<syntaxhighlight lang="json" highlight="" line copy>
key "rndc-key" {
  algorithm hmac-sha256;
  secret "BASE64-KEY";
};
</syntaxhighlight>
* ''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:
<syntaxhighlight lang="bash" highlight="1" line copy>rndc-confgen -a</syntaxhighlight>
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.:
<syntaxhighlight lang="json" highlight="" line copy>
include "/etc/bind/rndc.key";
</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 rndc-Konfiguration ermöglicht die Authentifizierung zwischen rndc und BIND.
; Minimalbeispiel
<syntaxhighlight lang="json" highlight="" line copy>
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";
};
</syntaxhighlight>
* ''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:
<syntaxhighlight lang="bash" highlight="1" line copy>rndc [Optionen] command [command-options]</syntaxhighlight>
Häufig verwendete Befehle bei korrekt konfiguriertem lokalen Host:
{| class="wikitable options big"
! Befehl
!Parameter
! 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.
<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 ==

Version vom 31. Januar 2026, 15:44 Uhr

BIND/rndc - Beschreibung

Beschreibung

Installation

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Man-Page

Links

Projekt

Weblinks


TMP

Anhang

Siehe auch



Dokumentation

Links

Projekt

Weblinks