DNS-REST-BIND Installations-Guide (Linux)
Einführung
Die Anwendung DNS REST BIND bildet eine Brücke zwischen AutoDNS und einem BIND-Nameserver, so dass die Zonen in AutoDNS verwaltet werden können. Die dafür notwendigen Aktionen in AutoDNS werden mit Hilfe von DNS REST BIND an den BIND-Server weitergegeben. Dazu wird das auf HTTP basierende REST-Protokoll verwendet. Um eine sichere Verbindung zu gewährleisten, empfehlen wir, den Server im SSL-Modus zu starten. Es können entweder eigene Zertifikate eingebunden werden oder das bereits in der Anwendung vorhandene Zertifikat verwendet werden.
Die Verarbeitung der AutoDNS-Aktionen erfolgt in zwei Schritten:
- Die Auftragsdaten werden geprüft und in einer Warteschlange gespeichert. Die BIND-Zonendaten werden generiert und gespeichert.
- Alle offenen Aufträge werden abgearbeitet und die AutoDNS-Konfigurationsdatei wird neu geschrieben. Danach wird der BIND-Server neu gestartet. Dieser Schritt ist asynchron, aber das Intervall kann angepasst werden.
Systemanforderungen
Die Applikation benötigt für den Betrieb die nötigen PowerDNS Binärdateien (pdns_control), sowie eine Java-Virtual-Maschine (JDK). Eine weitere Abhängigkeit besteht zum javad-utils-Packet, das mitgeliefert wird. Es bestehen keine besonderen Anforderungen an die Hardware, jedoch empfehlen wir ein x86-System mit mindestens 512MB-Speicher.
Empfehlung
Wir verwenden das OpenJDK Amazon Corretto-8 zur Entwicklung unserer Software, daher empfehlen wir die Verwendung von Amazon Corretto-8. Amazon Corretto ist eine freie, plattformübergreifende und produktionsbereite Distribution des Open Java Development Kit (OpenJDK). Corretto bietet langfristigen Support, der Leistungsverbesserungen und Sicherheitskorrekturen umfasst. Es kann mit dem folgenden Befehl einfach installiert werden:
- Das Repository importieren
rpm --import yum.corretto.aws/corretto.key curl -L -o /etc/yum.repos.d/corretto.repo yum.corretto.aws/corretto.repo - Das JDK installieren
yum install java-1.8.0-amazon-corretto-devel
Wenn eine Firewall aktiv ist, muss sichergestellt werden, dass Port 9090 aktiviert ist.
Erste Installation
Installation mit Hilfe des Paketmanagers yum
DNS-REST-BIND wurde für den Einsatz mit RPM-basierten Systemen entwickelt und ist als RPM-Paket erhältlich. Sobald unsere Repositories verfügbar sind, kann DNS-REST-BIND einfach mit folgendem Befehl installiert werden:
yum install dns-rest-bind.rpm
Der Paketmanager löst die benötigen Abhängigkeiten auf und ermöglicht das Installieren der fehlenden Programme.
Konfiguration
Vordefinierte Variablen
| Variable | Beschreibung | Standardmäßiger Pfad |
|---|---|---|
CONFIGDIR | Pfad für Konfigurationsdateien. | /etc/javad/dns-rest-bind |
HOME | Homeverzeichnis des Dienstes. | /var/lib/javad/dns-rest-bind |
APPDIR | Verzeichnis für die Programmdateien. | /usr/share/java/dns-rest-bind |
Konfiguration der Passwörter
Der Server verwendet http-BASIC-Auth zum Autorisieren der Benutzer. Die Benutzer und die dazugehörigen Passwörter können in der Datei passwd im Konfigurationsverzeichnis definiert werden.
Die Datei verwendet folgendes Format:
Benutzer: Passwort,rest-user“
Beispiel: benutzer.eins: pwgeheim,rest-user
rest-user kann nicht verändert werden und muss dem Passwort folgen – es definiert die Benutzergruppe, die im Server festgelegt ist.
Konfiguration des Loggings
Bei der Installation wird innerhalb des Konfigurationsverzeichnisses die Datei log4j.xml hinterlegt.
Die Datei definiert das Log-Verhalten, das auf dem Log4j-Logger basiert. Es schreibt die Logdateien auf /var/log/javad/dns-rest-bind.info.log. Das Logging ist so eingestellt, dass maximal 1GB Festplattenplatz belegt werden kann, d .h. 10 Dateien mit jeweils 100 MB.
Wenn das Logging z.B. über syslog erfolgen soll, verweisen wir auf die Log4j- Konfiguration.
Konfiguration des BIND Anschlusses
Die folgenden Parameter werden im Konfigurations-Ordner unter bind.properties definiert:
| Name | Format | Beschreibung | Vorgabewert |
|---|---|---|---|
jobXmlDao.directory | String | Der Pfad zum Job-Spool-Verzeichnis der Anwendung. | /var/spool/javad/dns-rest-bind/job-data |
bind.zoneDirectory | String | Der Pfad zum Verzeichnis der Zonendateien. Dieser Pfad muss auch innerhalb der bind.conf definiert sein. | /var/named/data |
bind.rndc | String | Der absolute Pfad zum rndc-Kommando (Remote Name Daemon Control). | /usr/sbin/rndc |
bind.config | String | Der Pfad zur spezifischen AutoDNS BIND-Definitionsdatei. Diese Datei wird automatisch von der Anwendung erzeugt. | /var/named/autodns.conf |
bind.reloadDelay | Integer | Zeitintervall in Millisekunden, nach dem der BIND-Server mittels RNDC-Befehl neu geladen wird. | 60000 (entspricht 60 Sekunden) |
bind.chgrp | String | Der Pfad zum System-Kommando chgrp. | /bin/chgrp |
bind.chmod | String | Der Pfad zum System-Kommando chmod. | /bin/chmod |
bind.group | String | Der Name der Benutzergruppe, unter der BIND ausgeführt wird. | named |
bind.named-checkconf | String | Der Pfad zum Werkzeug named-checkconf zur Überprüfung der Konfigurationssyntax. | named-checkconf |
bind.named-checkzone | String | Der Pfad zum Werkzeug named-checkzone zur Überprüfung von Zonendateien. | named-checkzone |
bind.axfrTimeout | Integer | Das Zeitlimit für Zonentransfers (AXFR) in Sekunden. | 60 |
bind.localAxfr | IP | Die lokale IP-Adresse, die für BIND-Schnittstellen verwendet wird. | 0.0.0.0 |
Server-Startparameter
In den Tabellen sind die Startparameter für den Server definiert.
Diese können unter /etc/sysconfig/javad/dns-rest-bind unter dem Punkt PARAM geändert werden.
| Name | Erforderlich | Typ | Beschreibung | Vorgabewert |
|---|---|---|---|---|
Port, -p | Ja | Integer | Der Server-Port, an dem der Dienst auf eingehende Aufträge wartet. | 9090 |
ssl | Nein | Boolean | Legt fest, ob HTTPS anstelle von HTTP verwendet wird. Bei Aktivierung sind zusätzliche SSL-Parameter erforderlich. | false |
keystore | Nein | Path | Der Pfad zum SSL-Keystore. | |
keystore-password | Nein | String | Das Kennwort für den SSL-Keystore. Die Speicherung erfolgt AES-verschlüsselt. | |
cert-password | Nein | String | Das Passwort für das Zertifikat. Die Speicherung erfolgt AES-verschlüsselt. | |
passwd | Ja | String | Der Pfad zur Datei, die die Benutzerinformationen für die Authentifizierung enthält. | /etc/javad/dns-rest-bind/passwd |
hostname | Nein | IP | Die IP-Adresse, an die der Server gebunden werden soll (Listen Address). | 0.0.0.0 |
config | Ja | Path | Der Pfad zur Multiserver-Konfigurationsdatei. | $CONFIGDIR/multiserver.conf |
Allgemeine Parameter
| Name | Erforderlich | Typ | Beschreibung | Vorgabewert |
|---|---|---|---|---|
USER | Ja | String | Der Benutzer (System-User), unter dessen Kennung der Server-Prozess gestartet wird. | autodns |
VMOPTS | Ja | String | Definiert JDK-spezifische Parameter, wie zum Beispiel die Speichernutzung (Heap-Einstellungen) oder System-Properties. | \-Dconf-dir=file:$CONFIGDIR |
PARAMS | Ja | String | Spezifische Startparameter für die Anwendung (siehe Abschnitt „Konfiguration der Startparameter des Servers“). | |
JMX | Nein | Boolean | Legt fest, ob die Java Virtual Machine (VM) mit JMX (Java Management Extensions) für Monitoring-Zwecke gestartet wird. | false |
JMXPORT | Nein | Integer | Der Port, über den JMX-Schnittstellen (z. B. für JConsole) erreichbar sind. | 10120 |
DEBUG | Nein | Boolean | Startet die VM im Remote-Debug-Modus (hilfreich für die Fehlersuche in Entwicklungsumgebungen). | false |
DEBUGPORT | Nein | Integer | Der Port, an dem der Java-Debugger auf eingehende Verbindungen wartet. | 10220 |
War dieser Artikel hilfreich?
Danke für die Rückmeldung.