---
title: "DNS-REST-PowerDNS Installations-Guide (Linux)"
url: "https://help.internetx.com/de/domains/dns-rest-powerdns-installations-guide-linux/"
lang: "de"
section: "Domains"
---

# DNS-REST-PowerDNS Installations-Guide (Linux)

## Systemvoraussetzungen

Die Applikation benötigt für den Betrieb die PowerDNS-Binärdateien (`pdns\_control`) sowie eine Java Virtual Machine (JDK). Eine weitere Abhängigkeit besteht zum javad-utils-Paket, das mitgeliefert wird.

Es bestehen keine besonderen Anforderungen an die Hardware; empfohlen wird ein x86-System mit mindestens 512 MB Arbeitsspeicher.

### Empfehlung

Für die Entwicklung der Software wird das OpenJDK Amazon Corretto-8 verwendet; daher empfiehlt sich auch für den Betrieb 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.

Zum Importieren des Repositorys folgenden Befehl ausführen:

`rpm --import yum.corretto.aws/corretto.key`

`curl -L -o /etc/yum.repos.d/corretto.repo yum.corretto.aws/corretto.repo`

Anschließend das JDK installieren:

`yum install java-1.8.0-amazon-corretto-devel`

## Installation

### Installation mit Hilfe des Paketmanagers yum

Der Paketmanager löst die benötigten 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 der Server über das INIT-Skript gestartet werden.

Der Server muss konfiguriert werden, bevor er gestartet wird.

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 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 zur Autorisierung. Benutzer und Kennwö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 auf Basis des Log4j-Loggers. Die Logdateien werden unter `/var/log/javad/dns-rest-powerdns.info.log` gespeichert. Das Logging ist so eingestellt, dass maximal 1 GB Festplattenplatz belegt werden kann, d. h. 10 Dateien mit jeweils 100 MB.

Wenn das Logging z. B. über `syslog` erfolgen soll, ist die Log4j-Konfiguration zu beachten.

### Konfiguration der PowerDNS Anbindung

Unter `powerdns.properties` innerhalb des Konfigurationsverzeichnisses 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 Konfigurationsverzeichnisses werden die folgenden Parameter definiert. Die Parameter sind an C3P0 angelehnt. Über das Präfix "default" können Standardparameter für die nachfolgende Datenquelle definiert werden. Eine Beispielkonfiguration wird mit dem RPM ausgeliefert. Eine detaillierte Beschreibung der Parameter ist unter [http://www.mchange.com/projects/c3p0/](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. |

## Parameter

### Server-Startparameter

Die Startparameter für den Server sind in der folgenden Tabelle definiert.

Diese können unter `/etc/sysconfig/javad/dns-rest-powerdns` unter dem Punkt PARAM geä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 |
