DNS-Server · 15 min read · Sep 08, 2025

So installieren Sie PowerDNS und PowerAdmin auf Rocky Linux

PowerDNS ist eine kostenlose und Open-Source-DNS-Server-Software. Sie kann als autoritativer Nameserver und DNS-Rekursor verwendet werden. PowerDNS ist in C++ geschrieben und unterstützt mehrere Betriebssysteme, darunter BSD, Linux und macOS.

PowerDNS ist ein hochentwickelter und leistungsstarker DNS-Server, der mehrere Arten von Backends wie BIND und RDBMS-Backends wie MySQL/MariaDB, PostgreSQL und Oracle-Datenbanken unterstützt.

Der PowerDNS-Server ist leistungsstark und kann Zehntausende von gleichzeitigen Anfragen verarbeiten, unterstützt DNSSEC und bietet hohe Skriptfähigkeit mit Lua.

In diesem Leitfaden zeigen wir Ihnen, wie Sie PowerDNS und PowerDNS-Admin auf einem Rocky-Linux-System installieren. Wir werden PowerDNS mit dem MySQL/MariaDB-Datenbank-Backend ausführen und PowerDNS-Admin einrichten, das als webbasiertes Verwaltungstool für den PowerDNS-Server verwendet wird.

Dieser Leitfaden zeigt auch die Installation von Python-Paketen für Flask-basierte Projekte und die Konfiguration von Nginx und Gunicorn, die als Reverse-Proxy für die PowerDNS-Admin-Webanwendung verwendet werden.

Voraussetzungen

Um mit diesem Leitfaden zu beginnen, benötigen Sie die folgenden Voraussetzungen:

  • Ein Rocky-Linux-Server - Sie können Rocky Linux v8 oder v9 verwenden.
  • Ein Nicht-Root-Benutzer mit sudo/root-Administratorrechten.

Installation und Konfiguration des MariaDB-Datenbankservers

PowerDNS ist eine skalierbare DNS-Server-Software, die mehrere Backends wie PostgreSQL, MariaDB/MySQL und SQLite unterstützt. Für große Bereitstellungen sollten Sie in Betracht ziehen, PostgreSQL oder MySQL/MariaDB als Datenbank-Backend zu verwenden.

Sie beginnen nun mit der Installation und Konfiguration des MariaDB-Datenbankservers auf dem Rocky-Linux-Server. Sie werden PowerDNS mit MariaDB als Datenbank-Backend einrichten.

Das Standard-Rocky-Linux-Repository bietet mehrere Versionen von MariaDB-Serverpaketen. Führen Sie den folgenden dnf-Befehl aus, um den MariaDB-Datenbankserver zu installieren.

sudo dnf install mariadb-server

Wenn Sie zur Bestätigung aufgefordert werden, geben Sie y ein, um zu bestätigen, und drücken Sie ENTER, um fortzufahren.

install mariadb

Nachdem der MariaDB-Server installiert ist, führen Sie den folgenden systemctl-Befehl aus, um den MariaDB-Dienst zu starten und zu aktivieren.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

Jetzt sollte der MariaDB-Server laufen und aktiviert sein. Führen Sie den folgenden Befehl aus, um den MariaDB-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.

sudo systemctl status mariadb

Sie werden die folgende Ausgabe sehen - Der MariaDB-Dienst läuft und ist aktiviert, was bedeutet, dass der Dienst beim Booten automatisch gestartet wird.

start enable verify mariadb

Jetzt, da der MariaDB-Server läuft, werden Sie die MariaDB-Installation über das Befehlszeilenwerkzeug ‘mysql_secure_installation’ einrichten und sichern.

Führen Sie den folgenden Befehl aus, um die Bereitstellung des MariaDB-Servers zu sichern.

sudo mysql_secure_installation

Sie werden dann nach einigen Konfigurationen des MariaDB-Servers gefragt.

  • MariaDB-Root-Passwort einrichten? Geben Sie y ein, um zu bestätigen, und geben Sie das neue Passwort für Ihren MariaDB-Server ein, und wiederholen Sie dann das Passwort.
  • Remote-Login für den MariaDB-Root-Benutzer deaktivieren? Geben Sie y ein, um zu bestätigen und es zu deaktivieren.
  • Den Standard-anonymen Benutzer von MariaDB entfernen? Geben Sie y ein, um zu bestätigen.
  • Die Standarddatenbank-Test von MariaDB entfernen? Geben Sie y erneut ein, um zu bestätigen.
  • Schließlich die Tabellenberechtigungen neu laden, um neue Änderungen anzuwenden? Geben Sie y ein, um zu bestätigen, und MariaDB wird alle Berechtigungen neu laden und neue Einstellungen anwenden.

Jetzt, da Sie die Bereitstellung von MariaDB gesichert haben, werden Sie als Nächstes eine neue MariaDB-Datenbank und einen Benutzer für PowerDNS einrichten.

Um zu beginnen, führen Sie den folgenden mysql-Befehl aus, um sich als MariaDB-Root-Benutzer in die MariaDB-Shell einzuloggen.

sudo mysql -u root -p

Wenn Sie nach dem Passwort gefragt werden, geben Sie das Passwort Ihres MariaDB-Root-Benutzers ein.

Führen Sie als Nächstes die folgenden Abfragen aus, um eine neue MariaDB-Datenbank und einen Benutzer zu erstellen. In diesem Beispiel erstellen Sie eine neue Datenbank pdns mit dem Benutzer pdnsadmin und das Passwort ist ‘ password ‘.

CREATE DATABASE pdns;  
GRANT ALL ON pdns.* TO pdnsadmin@localhost IDENTIFIED BY 'password';  
FLUSH PRIVILEGES;

create database and user

Führen Sie nun die folgenden Abfragen aus, um die Berechtigungen des MariaDB-Benutzers pdnsadmin@localhost zu überprüfen. Dies zeigt Ihnen die Liste der Berechtigungen für den MariaDB-Benutzer pdnsadmin@localhost.

SHOW GRANTS FOR pdnsadmin@localhost;

Sie werden die folgende Ausgabe sehen - Der MariaDB-Benutzer pdnsadmin@localhost hat Berechtigungen für die PowerDNS-Datenbank pdns.

show suer privileges

Geben Sie nun ‘ quit ‘ ein, um die MariaDB-Shell zu verlassen.

Mit dem laufenden MariaDB-Server werden Sie dann den PowerDNS-Server mit dem MariaDB-Datenbank-Backend installieren und konfigurieren.

Installation und Konfiguration von PowerDNS

Nachdem Sie den MariaDB-Datenbankserver installiert haben, werden Sie nun den PowerDNS-Server installieren und PowerDNS mit dem MariaDB-Datenbank-Backend einrichten.

Für die RHEL-basierten Betriebssysteme sind PowerDNS im EPEL-Repository verfügbar. Daher müssen Sie vor der Installation von PowerDNS das EPEL-Repository zu Ihrem System hinzufügen.

Führen Sie den folgenden dnf-Befehl aus, um das EPEL-Repository zu installieren.

sudo dnf install epel-release -y

Nachdem das EPEL-Repository hinzugefügt wurde, führen Sie den folgenden dnf-Befehl aus, um PowerDNS und das PowerDNS MySQL-Backend zu installieren.

sudo dnf install pdns pdns-backend-mysql

Wenn Sie zur Bestätigung aufgefordert werden, geben Sie y ein, um zu bestätigen, und drücken Sie ENTER, um fortzufahren.

install powerdns

Nachdem die Installation von PowerDNS abgeschlossen ist, führen Sie den folgenden mysql-Befehl aus, um das Datenbankschema für PowerDNS zu importieren. Der folgende Befehl importiert das Datenbankschema über den MariaDB-Benutzer pdnsadmin in die Datenbank pdns.

sudo mysql -u pdnsadmin -p pdns < /usr/share/doc/pdns/schema.mysql.sql

Geben Sie das Passwort für den Benutzer pdnsadmin ein und drücken Sie ENTER, um zu bestätigen und fortzufahren.

Als Nächstes bearbeiten Sie die PowerDNS-Konfiguration ‘/etc/pdns/pdns.conf’ mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/pdns/pdns.conf

Kommentieren Sie die MariaDB-Backend-Konfiguration aus und ändern Sie die Datenbanknamen, Benutzer und Passwörter. Stellen Sie sicher, dass Sie die richtigen MariaDB-Datenbankdetails verwenden, die Sie erstellt haben.

#################################  
# launch        Welche Backends gestartet werden sollen und in welcher Reihenfolge sie abgefragt werden  
#  
launch=gmysql  
  
gmysql-host=localhost   
gmysql-user=pdnsadmin   
gmysql-password=password   
gmysql-dbname=pdns

Kommentieren Sie als Nächstes die ‘api’ aus und ändern Sie den Wert in ‘ yes ‘. Kommentieren Sie dann die Option ‘ api-key ‘ aus und ändern Sie den Standard-Schlüssel. Die folgende PowerDNS-API wird verwendet, um den PowerDNS-Server über die PowerDNS-Admin-Webanwendung zu verwalten.

#################################  
# api   Aktivieren/Deaktivieren der REST-API (einschließlich HTTP-Listener)  
#  
api=yes  
  
#################################  
# api-key       Statischer vorab geteilter Authentifizierungsschlüssel für den Zugriff auf die REST-API  
#  
api-key=CHANGEME

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Nachdem Sie den PowerDNS-Server konfiguriert haben, führen Sie den folgenden Befehl aus, um die PowerDNS-Konfiguration zu überprüfen.

pdns_server --daemon=no --guardian=no --loglevel=9

Sie werden eine Ausgabe wie die folgende sehen - Die Verbindung von PowerDNS zum MariaDB-Datenbank-Backend war erfolgreich, Sie können jetzt ‘Ctrl+c’ drücken, um den Prozess zu beenden.

verify database connection

Führen Sie nun den folgenden systemctl-Befehl aus, um den PowerDNS-Dienst zu starten und zu aktivieren.

sudo systemctl start pdns  
sudo systemctl enable pdns

Überprüfen Sie zuletzt den PowerDNS-Dienst, um sicherzustellen, dass PowerDNS läuft und aktiviert ist.

sudo systemctl status pdns

In der folgenden Ausgabe sehen Sie den aktuellen Status des PowerDNS-Dienstes, der läuft und aktiviert ist, was bedeutet, dass er beim Bootvorgang automatisch gestartet wird.

verify pdns service

An diesem Punkt haben Sie die Installation des PowerDNS-Servers abgeschlossen. Als Nächstes beginnen Sie mit der Installation von PowerDNS-Admin, das als webbasierte Verwaltungsoberfläche für den PowerDNS-Server verwendet wird.

Installation von PowerDNS-Admin

Mit dem laufenden PowerDNS werden Sie nun PowerDNS-Admin auf dem Rocky-Linux-Server installieren und konfigurieren. PowerDNS-Admin ist eine auf Python Flask basierende Webanwendung, daher ist die Installation von PowerDNS-Admin ziemlich ähnlich wie die Installation des Flask-Webframeworks.

Im Folgenden sind einige Schritte aufgeführt, die Sie zur Installation von PowerDNS-Admin auf Rocky Linux durchführen müssen:

  • Installation von Paketabhängigkeiten
  • Einrichten einer Python-virtuellen Umgebung
  • Installation von Python-Abhängigkeiten
  • Konfiguration von PowerDNS-Admin mit der MariaDB-Datenbank
  • Generierung des Datenbankschemas und Erstellen statischer Dateien

Lassen Sie uns nun mit der Installation von PowerDNS-Admin beginnen.

Installation von Paketabhängigkeiten

Der erste Schritt zur Installation von PowerDNS-Admin besteht darin, Paketabhängigkeiten wie Python3, Pip, Node.js und Yarn zu installieren.

Bevor Sie beginnen, führen Sie den folgenden dnf-Befehl aus, um das ‘ powertools ‘ Repository auf Ihrem Rocky-Linux-System zu aktivieren.

sudo dnf config-manager --set-enabled powertools

Nachdem das ‘powertools’-Repository aktiviert wurde, installieren Sie die Python-Pakete über den folgenden dnf-Befehl.

sudo dnf install python3 python3-devel python3-pip python3-xmlsec gcc git mariadb-devel openldap-devel xmlsec1-devel xmlsec1-openssl libtool-ltdl-devel

Wenn Sie zur Bestätigung aufgefordert werden, geben Sie y ein und drücken Sie ENTER, um fortzufahren.

install python dependnecies

Als Nächstes fügen Sie die Node.js- und Yarn-Repositories über den folgenden Befehl zu Ihrem System hinzu. Die Node.js- und Yarn-Pakete werden verwendet, um statische Dateien für die PowerAdmin-Webanwendung zu generieren. Dieses Beispiel verwendet Node.js v16.

curl -sL https://rpm.nodesource.com/setup_16.x | bash -  
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo -o /etc/yum.repos.d/yarn.repo

setup repository

Nachdem die Repositories hinzugefügt wurden, führen Sie den dnf-Befehl aus, um den Node.js- und Yarn-Paketmanager zu installieren.

sudo dnf install nodejs yarn

Geben Sie y ein und drücken Sie ENTER, wenn Sie zur Installation aufgefordert werden.

install nodejs

Wenn Sie zur Bestätigung des GPG-Schlüssels aufgefordert werden, geben Sie y ein und drücken Sie ENTER.

import gpg key

Führen Sie nun den pip3-Befehl aus, um das Python-Pip-Paket zu aktualisieren und das virtualenv auf Ihrem System zu installieren.

pip3 install -U pip  
pip3 install -U virtualenv

Das Python-Pip und virtualenv werden jetzt im Verzeichnis ‘ /usr/local/bin ‘ installiert. Fügen Sie das Verzeichnis ‘ /usr/local/bin ‘ zur System-$PATH-Umgebungsvariable über den folgenden Befehl hinzu.

echo "export PATH="/usr/local/bin:$PATH"" >> ~/.bashrc

Wenden Sie nun die neuen Änderungen in der ‘ ~/.bashrc’-Datei mit dem folgenden Befehl an. Sie sollten jetzt die Befehle ‘ pip ‘ und ‘ virtualenv ‘ ausführen können.

source ~/.bashrc

Einrichten einer Python-virtuellen Umgebung

Mit installierten Paketabhängigkeiten laden Sie nun den PowerDNS-Admin-Quellcode herunter und richten die Python-virtuelle Umgebung für den PowerDNS-Admin ein.

Klonen Sie den PowerDNS-Admin-Quellcode in das Verzeichnis ‘/opt/powerdns-admin’ mit dem folgenden git-Befehl.

git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /opt/powerdns-admin

Nachdem der Quellcode heruntergeladen wurde, wechseln Sie in das Arbeitsverzeichnis ‘ /opt/powerdns-admin ‘ und erstellen eine neue Python-virtuelle Umgebung ‘ flask ‘.

cd /opt/powerdns-admin  
virtualenv -p python3 flask

Aktivieren Sie nun die ‘ flask ‘ Python-virtuelle Umgebung über den folgenden Befehl.

source flask/bin/activate

Wenn sie aktiviert ist, sollten Sie nun sehen, dass die Eingabeaufforderung wie ‘ (flask) [user@hostname /directory/path]# ‘ aussieht.

create virtualenv

Von hier aus sollte sich Ihre Arbeitsumgebung immer in der Python-virtuellen Umgebung ‘ flask ‘ befinden.

Installation von Python-Abhängigkeiten

Nachdem Sie die Python-virtuelle Umgebung eingerichtet und aktiviert haben, installieren Sie dann die Python-Abhängigkeiten über den pip-Befehl.

Führen Sie den folgenden pip-Befehl aus, um die Python-Abhängigkeiten für den PowerDNS-Admin zu installieren.

pip install python-dotenv  
pip install -r requirements.txt

Jetzt beginnt die Installation - Dies installiert die Python-Abhängigkeiten, die vom PowerDNS-Admin benötigt werden und in der ‘ requirements.txt ‘-Datei gespeichert sind.

install python dependencies

Jetzt, da Sie die Python-Abhängigkeiten installiert haben, sind Sie bereit, PowerDNS-Admin mit der MariaDB-Datenbank einzurichten und zu konfigurieren.

Konfiguration von PowerDNS-Admin mit der MariaDB-Datenbank

Mit installierten Python-Abhängigkeiten werden Sie nun PowerDNS-Admin mit der MariaDB-Datenbank einrichten. Die Datenbankdetails für PowerDNS-Admin werden dieselbe Datenbank wie der PowerDNS-Server sein.

Bearbeiten Sie nun die Datei ‘ /opt/powerdns-admin/powerdnsadmin/default_config.py ‘ mit dem folgenden nano-Editor-Befehl.

nano /opt/powerdns-admin/powerdnsadmin/default_config.py

Ändern Sie die Konfiguration wie folgt.

SALT = 'RANDOM-GENERATED'  
SECRET_KEY = 'RANDOM-GENERATED'  
BIND_ADDRESS = '0.0.0.0'  
PORT = 9191  
HSTS_ENABLED = False  
OFFLINE_MODE = False  
  
SQLA_DB_USER = 'pdnsadmin'  
SQLA_DB_PASSWORD = 'password'  
SQLA_DB_HOST = '127.0.0.1'  
SQLA_DB_NAME = 'pdns'  
SQLALCHEMY_TRACK_MODIFICATIONS = True

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Generierung des Datenbankschemas und Erstellen statischer Dateien

Nachdem Sie die MariaDB-Datenbank auf PowerDNS-Admin konfiguriert haben, werden Sie dann die Datenbank migrieren und statische Dateien für PowerDNS-Admin generieren.

Führen Sie zunächst den folgenden Befehl aus, um die Datenbank von PowerDNS-Admin zu migrieren. Dies wird ein neues Datenbankschema in die Datenbank einfügen, das für PowerDNS-Admin verwendet wird.

export FLASK_APP=powerdnsadmin/__init__.py  
flask db upgrade

Unten sehen Sie die Ausgabe, die Sie erhalten, wenn die Datenbankmigration abgeschlossen ist.

migrate database

Nachdem die Datenbankmigration abgeschlossen ist, führen Sie den folgenden Befehl aus, um statische Dateien für PowerDNS-Admin zu generieren.

yarn install --pure-lockfile  
flask assets build

Unten sehen Sie die Installation einiger JavaScript-Abhängigkeiten über den Yarn-Paketmanager und den Prozess der Generierung statischer Dateien für PowerDNS-Admin.

genrate static files

Wenn die statischen Dateien generiert sind, führen Sie den folgenden Befehl aus, um die Python-virtuelle Umgebung zu deaktivieren.

deactivate

An diesem Punkt haben Sie die grundlegende Installation von PowerDNS-Admin mit dem MariaDB-Datenbankserver abgeschlossen. Sie können jetzt die PowerDNS-Admin-Anwendung über die Befehlszeile starten, aber Sie können PowerDNS-Admin auch als systemd-Dienst ausführen.

Einrichten des Systemd-Dienstes für PowerDNS-Admin

In diesem Schritt richten Sie eine neue systemd-Dienstdatei für die PowerDNS-Admin-Anwendung ein. Dies ermöglicht es Ihnen, PowerDNS-Admin einfach über den systemd-Befehl zu verwalten und zu warten. Außerdem vereinfacht dies die Konfiguration von PowerDNS-Admin.

Um zu beginnen, erstellen Sie eine neue systemd-Dienstdatei ‘/etc/systemd/system/powerdns-admin.service’ mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/systemd/system/powerdns-admin.service

Fügen Sie die folgende Konfiguration in die Datei ein. Mit dieser Konfiguration führen Sie die PowerDNS-Admin-Anwendung über gunicorn aus und führen sie als Benutzer und Gruppe ‘ pdns ‘ aus. Außerdem wird PowerDNS-Admin mit der UNIX-Socket-Datei ‘ /run/powerdns-admin/socket ‘ ausgeführt.

[Unit]  
Description=PowerDNS-Admin  
Requires=powerdns-admin.socket  
After=network.target  
  
[Service]  
PIDFile=/run/powerdns-admin/pid  
User=pdns  
Group=pdns  
WorkingDirectory=/opt/powerdns-admin  
ExecStartPre=+mkdir -p /run/powerdns-admin/  
ExecStartPre=+chown pdns:pdns -R /run/powerdns-admin/  
ExecStart=/usr/local/bin/gunicorn --pid /run/powerdns-admin/pid --bind unix:/run/powerdns-admin/socket 'powerdnsadmin:create_app()'  
ExecReload=/bin/kill -s HUP $MAINPID  
ExecStop=/bin/kill -s TERM $MAINPID  
PrivateTmp=true  
  
[Install]  
WantedBy=multi-user.target

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Als Nächstes erstellen Sie eine neue systemd-Socket-Datei für PowerDNS-Admin ‘ /etc/systemd/system/powerdns-admin.socket ‘ mit dem folgenden nano-Editor.

sudo nano /etc/systemd/system/powerdns-admin.socket

Fügen Sie die folgende Konfiguration in die Datei ein.

[Unit]  
Description=PowerDNS-Admin socket  
  
[Socket]  
ListenStream=/run/powerdns-admin/socket  
  
[Install]  
WantedBy=sockets.target

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Erstellen Sie nun eine neue Konfigurationsdatei ‘/etc/tmpfiles.d/powerdns-admin.conf’ mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/tmpfiles.d/powerdns-admin.conf

Fügen Sie die folgende Konfiguration in die Datei ein.

d /run/powerdns-admin 0755 pdns pdns -

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Nachdem Sie eine neue systemd-Dienstdatei und eine neue Konfiguration hinzugefügt haben, führen Sie den folgenden Befehl aus, um den systemd-Manager neu zu laden und die neuen Dienstdateien auf systemd anzuwenden.

sudo systemctl daemon-reload

Starten und aktivieren Sie nun den PowerDNS-Admin-Dienst über den folgenden systemctl-Befehl. PowerDNS-Admin sollte jetzt mit gunicorn ausgeführt werden und die Socket-Datei, die im Verzeichnis ‘ /run/powerdns-admin/ ‘ verfügbar ist, öffnen.

sudo systemctl start powerdns-admin.socket powerdns-admin.service  
sudo systemctl enable powerdns-admin.socket powerdns-admin.service

setup powerdns-admin as service

Überprüfen Sie zuletzt den folgenden Befehl, um den PowerDNS-Admin-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.

sudo systemctl status powerdns-admin.service powerdns-admin.socket

In der folgenden Ausgabe sehen Sie, dass der powerdns-admin.service und der powerdns-admin.socket läuft und beide aktiviert sind. Beide Dienste werden beim Systemstart automatisch gestartet.

verify pdns services

Installation von Nginx als Reverse-Proxy für PowerDNS-Admin

In diesem Schritt richten Sie Nginx als Reverse-Proxy für PowerDNS-Admin ein.

Führen Sie den folgenden dnf-Befehl aus, um Nginx auf Ihrem Rocky-Linux-Server zu installieren. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie y ein, um zu bestätigen, und drücken Sie ENTER, um fortzufahren.

sudo dnf install nginx

Erstellen Sie als Nächstes einen neuen Nginx-Serverblock ‘/ etc/nginx/conf.d/pdns.conf ‘ mit dem folgenden nano-Editor.

sudo nano /etc/nginx/conf.d/pdns.conf

Fügen Sie die folgende Konfiguration in die Datei ein und stellen Sie sicher, dass Sie den Domainnamen ändern. Dieses Beispiel verwendet die Domain ‘pdns.howtoforge.local’ für PowerDNS-Admin.

server {  
        listen                  80;  
        server_name             pdns.howtoforge.local;  
        return 301 https://$http_host$request_uri;  
}  
  
server {  
        listen                  443 ssl http2;  
        server_name             pdns.howtoforge.local;  
        index                   index.html index.htm;  
        error_log               /var/log/nginx/error_powerdnsadmin.log error;  
        access_log              off;  
  
        ssl_certificate                 /etc/letsencrypt/live/pdns.howtoforge.local/fullchain.pem;  
        ssl_certificate_key             /etc/letsencrypt/live/pdns.howtoforge.local/privkey.pem;  
        #ssl_dhparam                     path_to_your_dhparam.pem;  
        ssl_prefer_server_ciphers       on;  
        ssl_ciphers                     'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';  
        ssl_session_cache               shared:SSL:10m;  
  
        client_max_body_size            10m;  
        client_body_buffer_size         128k;  
        proxy_redirect                  off;  
        proxy_connect_timeout           90;  
        proxy_send_timeout              90;  
        proxy_read_timeout              90;  
        proxy_buffers                   32 4k;  
        proxy_buffer_size               8k;  
        proxy_set_header                Host $http_host;  
        proxy_set_header                X-Scheme $scheme;  
        proxy_set_header                X-Real-IP $remote_addr;  
        proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header                X-Forwarded-Proto $scheme;  
        proxy_headers_hash_bucket_size  64;  
  
        location ~ ^/static/  {  
                include         mime.types;  
                root            /opt/powerdns-admin/powerdnsadmin;  
                location        ~* \\.jpg|jpeg|png|gif$ { expires 365d; }  
                location        ~* ^.+\.(css|js)$ { expires 7d; }  
        }  
  
        location ~ ^/upload/  {  
                include         mime.types;  
                root            /opt/powerdns-admin;  
                location        ~* \\.jpg|jpeg|png|gif$ { expires 365d; }  
                location        ~* ^.+\.(css|js)$ { expires 7d; }  
        }  
  
        location / {  
                proxy_pass              http://unix:/run/powerdns-admin/socket;  
                proxy_read_timeout      120;  
                proxy_connect_timeout   120;  
                proxy_redirect          http:// $scheme://;  
        }  
}

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Führen Sie als Nächstes den folgenden Befehl aus, um die Nginx-Konfiguration zu überprüfen und sicherzustellen, dass die Konfiguration korrekt ist. Sie sollten die Ausgabemeldung sehen, wie ‘ syntax ok - test is successful ‘.

sudo nginx -t

Führen Sie nun den folgenden systemctl-Befehl aus, um den Nginx-Dienst zu starten und zu aktivieren.

sudo systemctl start nginx  
sudo systemctl enable nginx

setup nginx

Überprüfen Sie zuletzt den Nginx-Dienst über den folgenden Befehl, um sicherzustellen, dass der Dienst läuft.

sudo systemctl status nginx

Sie sollten die Ausgabe sehen, dass der Nginx-Dienst läuft und aktiviert ist. Damit wird der Nginx-Dienst beim Systemstart automatisch gestartet.

check nginx

Zugriff auf die PowerDNS-Admin-Installation

Öffnen Sie den Webbrowser und besuchen Sie den Domainnamen Ihrer PowerDNS-Admin-Installation (d.h.: https://pdns.howtoforge.local), und Sie sollten die Anmeldeseite von PowerDNS-Admin erhalten.

Klicken Sie auf den Link ‘ Ein Konto erstellen ‘, um einen neuen Administratorbenutzer für PowerDNS-Admin einzurichten.

pdns create account

Geben Sie nun die Details des neuen Benutzers, die E-Mail und das Passwort ein. Klicken Sie dann auf ‘ Registrieren ‘, um zu bestätigen.

setup admin user

Nachdem der Administratorbenutzer erstellt wurde, werden Sie erneut zur Anmeldeseite von PowerDNS-Admin weitergeleitet. Melden Sie sich mit Ihrem neuen Benutzeradmin und Passwort an und klicken Sie dann auf ‘ Anmelden ‘.

pdns admin login

Sie sollten jetzt das Dashboard von PowerDNS-Admin erhalten. PowerDNS-Admin läuft, ist jedoch noch nicht mit dem PowerDNS-Server verbunden.

Um den PowerDNS-Server mit PowerDNS-Admin einzurichten, müssen Sie den API-Schlüssel hinzufügen, den Sie über den PowerDNS-Server konfiguriert haben, zu PowerDNS-Admin.

Geben Sie die API-Details des PowerDNS-Servers im Abschnitt ‘ PDNS-Einstellungen ‘ ein und klicken Sie auf ‘ Aktualisieren ‘.

setup api

Wenn PowerDNS-Admin und der PowerDNS-Server über die API verbunden sind, sollte Ihr Dashboard wie der folgende Screenshot aussehen.

pdnsadmin dashboard

Von hier aus können Sie jetzt ganz einfach neue DNS-Einträge hinzufügen oder vorhandene DNS-Einträge über das Dashboard von PowerDNS-Admin bearbeiten.

Fazit

In diesem Leitfaden haben Sie gelernt, wie Sie einen PowerDNS-Server mit einer MySQL/MariaDB-Datenbank auf einem Rocky-Linux-Server installieren. Sie haben auch die grundlegende Bereitstellung der MariaDB-Datenbank auf Rocky Linux gelernt. Schließlich haben Sie gelernt, wie Sie PowerDNS-Admin installieren und konfigurieren, das als webbasiertes Verwaltungstool für den PowerDNS-Server verwendet wird. PowerDNS-Admin läuft mit Nginx als Reverse-Proxy und MariaDB-Datenbank-Backend.

Mit dem laufenden PowerDNS-Server und PowerDNS-Admin können Sie jetzt Ihren DNS-Server über das webbasierte Administrationsdashboard verwalten. Sie können DNS-Einträge über das Administrationsdashboard von PowerDNS-Admin hinzufügen, bearbeiten oder löschen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.