Inhaltsverzeichnis dieser Seite

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

Wenn deine Firewall aktiv ist, stelle bitte sicher, dass Port 9090 aktiviert ist.

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

VariableBeschreibungStandardmäßiger Pfad
CONFIGDIRKonfigurationsdateien /etc/javad/dns-rest-powerdns
HOMEHomeverzeichnis /var/lib/javad/dns-rest-powerdns
APPDIRProgrammdateien /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.

NameVorgabewertBenötigtBeschreibung
powerdns.pdnsControl/usr/bin/pdns_controljaOrt der Datei PowerDNS Clients. Emöglicht den Einsatz von individuellen Clustern.
powerdns.axfrTimeout50neinZeitspanne nach der der Verbindungsaufbau für einen Zonen-Transfer abgebrochen wird.
powerdns.localAxfr
neinLegt die lokal zu bindene IP-Adresse fest, welche bei einem Zonen-Transfer genutzt wird.
powerdns.schemaUpdatefalseneinAktiviert das automatische Anlegen und Aktualisieren des PowerDNS Datenbankschemas abhängig von der verwendeten PowerDNS Version
powerdns.version
neinDie 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.

NameVorgabewertBenötigtBeschreibung
default.user-jaDer Benutzer, der Zugriff auf die Datenbank hat.
default.password-jaDas Passwort des Datenbankbenutzers.
powerdns.jdbcUrl
jaDie 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.

NameVorgabewertBenötigtBeschreibung
Port, -p9090jaPort auf dem der Server auf Anfragen wartet.
sslfalseneinSoll der HTTPS anstelle von http verwendet werden. Bei SSL werden weitere Parameter benötigt.
keystore
neinSSL-Keystore
keystore-password
neinPasswort für den SSL-Keystore. Das Passwort liegt als AES verschlüsselt vor.
cert-password
neinPasswort für das Zertifikat. Das Passwort liegt als AES verschlüsselt vor.
passwd/etc/javad/dns-rest-powerdns/passwdJaPfad zur Benutzerdatei
hostname0.0.0.0NeinIP-Adresse an welche der Server binden soll.

Allgemeine Parameter

NameVorgabewertBenötigtBeschreibung
USERAutoDNSJaBenutzer mit dem der Server gestartet wird
VMOPTS-Dconf-dir=file:$CONFIGDIRJaDefiniert JDK spezifische Parameter, z.B. Speicherverbrauch
PARAMSSiehe Server ParameterJaStartparameter für den Server: siehe Konfiguration Serverparameter
  • No labels