|
|
| 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 == |