Das Dienstprogramm rndc ist ein Befehlszeilentool zum Verwalten des benannten Dienstes, sowohl lokal als auch von einem Remotecomputer aus. Um unbefugten Zugriff auf den Dienst zu verhindern, muss rndc so konfiguriert werden, dass es auf dem ausgewählten Port (standardmäßig Port 953) lauscht, und sowohl vom Dienst als auch vom Dienstprogramm rndc muss ein identischer Schlüssel verwendet werden. Der rndc-Schlüssel wird mit dem folgenden Befehl generiert:
# rndc-confgen -a wrote key file "/etc/rndc.key"
Dieser Befehl erstellt die /etc/rndc.key Datei, die den Schlüssel enthält.
# cat /etc/rndc.key key "rndc-key" { algorithm hmac-md5; secret "k7WFNCP01e1NwIgaIhvtQQ=="; };
Um named für die Verwendung des Schlüssels zu konfigurieren, fügen Sie die folgenden Einträge in /etc/named.conf ein :
# vi /etc/named.conf< include “/etc/rndc.key”; controls { inet 127.0.0.1 allow { localhost; } keys { “rndckey”; } };
Die Include-Anweisung ermöglicht das Einschließen von Dateien, sodass potenziell vertrauliche Daten in einer separaten Datei mit eingeschränkten Berechtigungen abgelegt werden können. Um sicherzustellen, dass nur root die Datei lesen kann, geben Sie Folgendes ein:
# chmod o-rwx /etc/rndc.key
Die controls-Anweisung definiert Zugriffsinformationen und die verschiedenen Sicherheitsanforderungen, die für die Verwendung des rndc-Befehls erforderlich sind.
- inet :Das Beispiel erlaubt Ihnen, rndc von einer Konsole auf dem localhost (127.0.0.1) aus zu steuern.
- Schlüssel :Schlüssel werden verwendet, um verschiedene Aktionen zu authentifizieren und sind die primäre Zugriffskontrollmethode für die Fernverwaltung. Das Beispiel spezifiziert die Verwendung von rndckey, das in der Include-Datei /etc/rndc.key definiert ist.
rndc-Befehlsbeispiele
Geben Sie rndc ein, um die Verwendung des Dienstprogramms und eine Liste der verfügbaren Befehle anzuzeigen:
# rndc Usage: rndc [-b address] [-c config] [-s server] [-p port] [-k key-file ] [-y key] [-V] command command is one of the following: reload Reload configuration file and zones. reload zone [class [view]] Reload a single zone. refresh zone [class [view]] Schedule immediate maintenance for a zone. retransfer zone [class [view]] Retransfer a single zone without checking the serial number. freeze Suspend updates to all dynamic zones. freeze zone [class [view]] Suspend updates to a dynamic zone. thaw Enable updates to all dynamic zones and reload them. thaw zone [class [view]] Enable updates to a frozen dynamic zone and reload it. sync [-clean] Dump changes to all dynamic zones to disk, and optionally ....
Das Folgende ist ein Beispiel für einige der rndc-Befehle:
1. Verwenden Sie den Befehl rndc status, um den aktuellen Status des benannten Dienstes zu überprüfen:
# rndc status number of zones: 3 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/1000 tcp clients: 0/100 server is up and running
Verwenden Sie den Befehl rndc reload, um sowohl die Konfigurationsdatei als auch die Zonen neu zu laden:
# rndc reload server reload successful