Suche in diesem Bereich
Dieses Dokument beschreibt die Installation des DNS-REST-PowerDNS Servers auf einem Linux System.
Der DNS-REST-PowerDNS Server ist die Schnittstelle zwischen deinem PowerDNS Nameserver und AutoDNS. Der Server basiert auf dem REST Protokoll und bietet die Möglichkeit Zonen zu aktualisieren oder sie von einem entfernten Server zu laden. Dein Server hat dabei die Funktion des SLAVE.
Systemvoraussetzungen
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, welches 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:
Importiere zunächst das Repository
rpm --import https://yum.corretto.aws/corretto.key curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
Installiere abschließend das JDK
yum install java-1.8.0-amazon-corretto-devel
Installation
Installation mit Hilfe des Paketmanagers yum
Der Paketmanager löst die benötigen Abhängigkeiten auf und ermöglicht das Installieren der fehlenden Programme.
yum install dns-rest-powerdns.rpm
Starten des Servers
Nach der erfolgreichen Installation kann man den Server über das INIT-Skript starten.
Konfigurieren den Server bevor du ihn startest.
Das Skript befindet sich unter /etc/init.d/javad-dns-rest-powerdns.
Folgende Optionen werden unterstützt:
- start: startet den Server
- stop: hält den den Server an
- restart: startet den Server neu
- status: zeigt den Status des Servers an
Konfigurieren
Vordefinierte Variablen
Variable | Beschreibung | Standardmäßiger Pfad |
CONFIGDIR | Konfigurationsdateien | /etc/javad/dns-rest-powerdns |
HOME | Homeverzeichnis | /var/lib/javad/dns-rest-powerdns |
APPDIR | Programmdateien | /usr/share/java/dns-rest-powerdns |
Konfiguration der Passwörter
Der Server verwendet http-BASIC-Auth zum Autorisieren der Benutzer. Die Benutzer und die dazugehörigen Passwörter kannst du in der Datei passwd
im Konfigurationsverzeichnis definieren.
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-powerdns.info.log
. Das Logging ist so eingestellt, dass maximal 1GB Festplattenplatz belegt werden kann, d .h. 10 Dateien mit jeweils 100 MB.
Wenn du das Logging z.B. über syslog erledigen möchtest, verweisen wir dich auf die Log4j- Konfiguration.
Konfiguration der PowerDNS Anbindung
Unter powerdns.properties
innerhalb des Konfigurations-Verzeichnisses werden die folgenden Parameter definiert.
Name | Vorgabewert | Benötigt | Beschreibung |
powerdns.pdnsControl | /usr/bin/pdns_control | ja | Ort der Datei PowerDNS Clients. Emöglicht den Einsatz von individuellen Clustern. |
powerdns.axfrTimeout | 50 | nein | Zeitspanne nach der der Verbindungsaufbau für einen Zonen-Transfer abgebrochen wird. |
powerdns.localAxfr | nein | Legt die lokal zu bindene IP-Adresse fest, welche bei einem Zonen-Transfer genutzt wird. | |
powerdns.schemaUpdate | false | nein | Aktiviert das automatische Anlegen und Aktualisieren des PowerDNS Datenbankschemas abhängig von der verwendeten PowerDNS Version |
powerdns.version | nein | Die verwendete PowerDNS Version, z. B. 4.1 |
Konfiguration der PowerDNS Datenbank
Unter database.properties
innerhalb des Konfigurations-Verzeichnisses werden die folgenden Parameter definiert. Die Parameter sind an C3P0 angelehnt. Über das Prefix "default" können Standard-Parameter für die nachfolgende Datenquelle definiert werden. Eine Beispielkonfiguration wird mit dem RPM ausgeliefert. Eine detailliert Beschreibung der Parameter ist unter http://www.mchange.com/projects/c3p0/index.html#configuration_properties zu finden.
Name | Vorgabewert | Benötigt | Beschreibung |
default.user | - | ja | Der Benutzer, der Zugriff auf die Datenbank hat. |
default.password | - | ja | Das Passwort des Datenbankbenutzers. |
powerdns.jdbcUrl | ja | Die Verbindungs-URL zum Datenbank-Server, z. B. "mysql://localhost/powerdns?dontTrackOpenResources=true&jdbcCompliantTruncation=false&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true "localhost" stellt den Hostnamen oder die IP-Adresse des Datenbankservers dar und "powerdns" die entsprechende Datenbank. Die Query-Parameter (alles nach dem "?") sollten nicht verändert werden. |
Server-Startparameter
In den Tabellen sind die Startparameter für den Server definiert.
Diese können unter /etc/sysconfig/javad/dns-rest-powerdns
unter dem Punkt PARAM verändert werden.
Name | Vorgabewert | Benötigt | Beschreibung |
Port, -p | 9090 | ja | Port auf dem der Server auf Anfragen wartet. |
ssl | false | nein | Soll der HTTPS anstelle von http verwendet werden. Bei SSL werden weitere Parameter benötigt. |
keystore | nein | SSL-Keystore | |
keystore-password | nein | Passwort für den SSL-Keystore. Das Passwort liegt als AES verschlüsselt vor. | |
cert-password | nein | Passwort für das Zertifikat. Das Passwort liegt als AES verschlüsselt vor. | |
passwd | /etc/javad/dns-rest-powerdns/passwd | Ja | Pfad zur Benutzerdatei |
hostname | 0.0.0.0 | Nein | IP-Adresse an welche der Server binden soll. |
Allgemeine Parameter
Name | Vorgabewert | Benötigt | Beschreibung |
USER | AutoDNS | Ja | Benutzer mit dem der Server gestartet wird |
VMOPTS | -Dconf-dir=file:$CONFIGDIR | Ja | Definiert JDK spezifische Parameter, z.B. Speicherverbrauch |
PARAMS | Siehe Server Parameter | Ja | Startparameter für den Server: siehe Konfiguration Serverparameter |