DNS Verwaltung · 9 min read · Oct 01, 2025
So installieren Sie PowerDNS und Poweradmin auf CentOS 7

PowerDNS (pdns) ist ein Open-Source-DNS-Server, der in C++ geschrieben und unter der GPL-Lizenz veröffentlicht wurde. Er ist zu einer guten Alternative zum traditionellen DNS-Server Bind geworden, der mit besserer Leistung und niedrigeren Speicheranforderungen entwickelt wurde. PowerDNS bietet zwei Produkte an: den autoritativen Server und den Rekursor. Der PowerDNS-Autoritative Server kann über verschiedene Backends konfiguriert werden, einschließlich der einfachen Bind-Zonendateien, RDBMS wie MySQL, PostgreSQL, SQLite3 oder LDAP.
In diesem Tutorial zeige ich Ihnen, wie Sie einen PowerDNS-Autoritativen Server mit dem MariaDB-Datenbankserver als Backend installieren und konfigurieren und Poweradmin für eine einfache DNS-Verwaltung verwenden.
Voraussetzungen
- CentOS 7-Server
- Root-Rechte
Was wir tun werden:
- EPEL- und Remi-Repositorys installieren
- MariaDB installieren und konfigurieren
- PowerDNS installieren
- Poweradmin installieren
- Poweradmin-Nachinstallation
- Beispielzone erstellen
Schritt 1 - EPEL- und Remi-Repositorys installieren
Zunächst müssen wir die Abhängigkeiten für die PowerDNS-Installation installieren. Wir werden das EPEL-Repository und das REMI für die Installation von PHP 7.2 installieren.
Installieren Sie das EPEL- und PHP-Remi-Repository mit den folgenden Befehlen.
yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpmSobald diese Repositorys zum System hinzugefügt wurden, installieren Sie das Paket ‘yum-utils’.
yum -y install yum-utilsUnd aktivieren Sie das PHP 7.2 Remi-Repository mit dem folgenden Befehl.
yum-config-manager --enable remi-php72Schritt 2 - MariaDB installieren und konfigurieren
Der PowerDNS-Autoritative Server unterstützt verschiedene Backends, einschließlich des MySQL/MariaDB-Datenbankservers. Der Begriff ‘Backend’ ist ein Datenspeicher, den der Server konsultiert und der DNS-Einträge (und einige Metadaten) enthält. Für diesen Leitfaden verwenden wir MariaDB als Backend.
Installieren Sie MariaDB mit dem folgenden yum-Befehl.
yum -y install mariadb mariadb-serverSobald die Installation abgeschlossen ist, starten Sie den MariaDB-Dienst und fügen Sie ihn zum Startzeitpunkt hinzu.
systemctl start mariadb
systemctl enable mariadbAls Nächstes werden wir das Root-Passwort für MariaDB mit dem interaktiven Tool ‘mysql_secure_installation’ konfigurieren.
Führen Sie den folgenden Befehl aus.
mysql_secure_installationUnd Sie werden aufgefordert, das Root-Passwort des Datenbankservers zu konfigurieren. Geben Sie ‘Y’ ein, um das Root-Passwort festzulegen, und geben Sie ein starkes Passwort ein.
Set root password? [Y/n] Y
New password:
Re-enter new password: Für die anderen geben Sie einfach ‘Y’ für Ja ein.
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] YInfolgedessen haben Sie den MariaDB-Datenbankserver installiert und das Root-Passwort zur Authentifizierung eingerichtet.
Als Nächstes werden wir eine neue Datenbank und einen Benutzer für die PowerDNS-Installation erstellen. Melden Sie sich mit dem Benutzer root und Ihrem Passwort an der MySQL-Shell an.
Führen Sie den MySQL-Befehl unten aus.
mysql -u root -p
PASSWORDErstellen Sie jetzt eine neue Datenbank mit dem Namen ‘powerdns’ und gewähren Sie einem neuen Benutzer namens ‘pdns’ mit dem Passwort ‘pdnspassword2018’ alle Datenbankberechtigungen.
create database powerdns;
grant all privileges on powerdns.* to pdns@localhost identified by 'pdnspassword2018';
flush privileges;
Danach erstellen Sie die Tabellenstrukturen für die PowerDNS-Datenbank, indem Sie die folgenden MySQL-Abfragen ausführen.
use powerdns;
CREATE TABLE domains (
id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE TABLE records (
id BIGINT AUTO_INCREMENT,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(10) DEFAULT NULL,
content VARCHAR(64000) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
disabled TINYINT(1) DEFAULT 0,
ordername VARCHAR(255) BINARY DEFAULT NULL,
auth TINYINT(1) DEFAULT 1,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) NOT NULL,
PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;
CREATE TABLE comments (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
type VARCHAR(10) NOT NULL,
modified_at INT NOT NULL,
account VARCHAR(40) NOT NULL,
comment VARCHAR(64000) NOT NULL,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
CREATE TABLE domainmetadata (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
kind VARCHAR(32),
content TEXT,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
CREATE TABLE cryptokeys (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
flags INT NOT NULL,
active BOOL,
content TEXT,
PRIMARY KEY(id)
) Engine=InnoDB;
CREATE INDEX domainidindex ON cryptokeys(domain_id);
CREATE TABLE tsigkeys (
id INT AUTO_INCREMENT,
name VARCHAR(255),
algorithm VARCHAR(50),
secret VARCHAR(255),
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
quit;Infolgedessen wurde die MySQL/MariaDB-Datenbank und ein Benutzer für die PowerDNS-Installation erstellt.
Schritt 3 - PowerDNS installieren
Installieren Sie PowerDNS und alle benötigten Pakete mit dem folgenden Befehl.
yum -y install pdns pdns-backend-mysql bind-utilsNachdem die PowerDNS-Pakete installiert sind, wechseln Sie in das Verzeichnis ‘/etc/pdns/‘ und bearbeiten Sie die Konfigurationsdatei ‘pdns.conf’ mit dem vim-Editor.
cd /etc/pdns/
vim pdns.confStandardmäßig verwendet PowerDNS ‘bind’ als Backend. Geben Sie also ein Kommentar ‘#’ vor der Konfiguration ‘launch=bind’ ein und fügen Sie die MySQL-Backend-Konfiguration wie unten gezeigt ein.
#launch=bind
launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=pdnspassword2018
gmysql-dbname=powerdnsSpeichern und schließen.

Jetzt starten Sie den pdns-Dienst und fügen ihn zum Startzeitpunkt hinzu.
systemctl start pdns
systemctl enable pdnsDanach fügen Sie den DNS-Dienst zur Firewall hinzu.
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
Und der PowerDNS-Dienst ist aktiv und läuft, überprüfen Sie dies mit dem folgenden Befehl.
netstat -tap | grep pdns
netstat -tulpn | grep 53
dig @10.9.9.10Infolgedessen erhalten Sie, dass der pdns-Dienst aktiv und auf Port 53 läuft und eine Antwort vom PowerDNS-Server erhalten hat.

Schritt 4 - Poweradmin installieren
In diesem Schritt werden wir die DNS-Verwaltung für PowerDNS namens ‘Poweradmin’ installieren. Es handelt sich um eine webbasierte Anwendung, die auf PHP basiert, daher müssen wir PHP und einen Webserver installieren, um die Anwendung auszuführen.
Installieren Sie einen httpd-Webserver und PHP-Pakete mit dem folgenden Befehl.
yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettextNach der Installation müssen wir zusätzliche PHP-Pear-Pakete installieren. Führen Sie den folgenden Befehl aus.
yum -y install php-pear-DB php-pear-MDB2-Driver-mysqliSobald die Installation von httpd und PHP abgeschlossen ist, starten Sie den httpd-Dienst und fügen Sie ihn zum Startzeitpunkt hinzu.
systemctl start httpd
systemctl enable httpdWechseln Sie als Nächstes in das Verzeichnis ‘/var/www/html’ und laden Sie den Quellcode von Poweradmin herunter.
cd /var/www/html/
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgzEntpacken Sie die komprimierte Datei von Poweradmin und benennen Sie sie um.
tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7/ poweradmin/Danach fügen Sie die HTTP- und HTTPS-Protokolle zur Firewall hinzu.
firewall-cmd --add-service={http,https} --permanent
firewall-cmd --reloadUnd wir sind bereit für die Poweradmin-Nachinstallation.
Schritt 5 - Poweradmin-Nachinstallation
Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse des Servers plus den /poweradmin/install/-Pfad-URL für die Installation ein. Meine ist:
http://10.9.9.10/poweradmin/install/
Wählen Sie Ihre bevorzugte Sprache und klicken Sie auf die Schaltfläche ‘Gehe zu Schritt 2’.
Klicken Sie jetzt einfach auf die Schaltfläche ‘Gehe zu Schritt 3’.
Und Sie werden zur Datenbankkonfiguration angezeigt. Geben Sie die PowerDNS-Datenbankdetails ein, die wir erstellt haben, und das Admin-Passwort für PowerDNS.

Klicken Sie auf die Schaltfläche ‘Gehe zu Schritt 4’.
Danach müssen Sie einen neuen Benutzer mit eingeschränkten Rechten erstellen. Geben Sie die Details wie folgt ein und ändern Sie den Benutzer, das Passwort usw. nach Ihren Wünschen.
Klicken Sie jetzt auf die Schaltfläche ‘Gehe zu Schritt 5’.
Und Sie werden die folgende Seite angezeigt bekommen.
Öffnen Sie erneut Ihr Terminal-Server, melden Sie sich mit dem Root-Benutzer und Passwort an. Führen Sie dann die MySQL-Abfragen wie auf der Seite aus.
mysql -u root -p
PASSWORD
GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'hakase'@'localhost'
IDENTIFIED BY 'hakase-labs123';
Jetzt zurück zum Webbrowser und klicken Sie auf die Schaltfläche ‘Gehe zu Schritt 6’.
Und Sie werden die folgende Seite angezeigt bekommen.

Der Installer konnte die neue Konfiguration ‘../inc/config.inc.php’ nicht erstellen. Daher müssen wir sie manuell erstellen.
Zurück zum Terminal-Server, wechseln Sie in das Verzeichnis ‘/var/www/html/poweradmin’ und erstellen Sie eine neue Konfigurationsdatei ‘inc/config.inc.php’.
cd /var/www/html/poweradmin
vim inc/config.inc.phpJetzt fügen Sie das PHP-Skript von der Seite ein.
Speichern und schließen, dann zurück zum Browser und klicken Sie auf die Schaltfläche.

Und die Installation ist abgeschlossen.
Optional:
Wenn Sie Unterstützung für die von anderen dynamischen Anbietern verwendeten URLs wünschen, kopieren Sie die htaccess-Datei.
cd /var/www/html/poweradmin
cp install/htaccess.dist .htaccessDanach müssen Sie das Verzeichnis ‘install’ entfernen.
rm -rf /var/www/html/poweradmin/installGehen Sie zurück zu Ihrem Webbrowser und melden Sie sich mit der URL wie unten an.
Melden Sie sich mit dem Standardbenutzer ‘admin’ und dem Passwort an, klicken Sie auf die Schaltfläche ‘Gehe’.
Und als Ergebnis wird Ihnen das Poweradmin-Dashboard angezeigt und die Installation ist abgeschlossen.
Schritt 6 - Beispielzone und DNS-Einträge erstellen
In diesem Schritt werden wir die PowerDNS- und Poweradmin-Installation testen, indem wir eine neue DNS-Zone für eine Domain namens ‘emma.io’ erstellen.
Klicken Sie im Poweradmin-Dashboard auf das Menü ‘Masterzone hinzufügen’.
Setzen Sie den Zonenname mit dem Domainnamen ‘emaa.io’ und klicken Sie auf die Schaltfläche ‘Zone hinzufügen’.
Klicken Sie auf das Menü ‘Zonen auflisten’, um alle verfügbaren Zonen zu erhalten. Und klicken Sie auf die Schaltfläche ‘Bearbeiten’ für die Zone ‘emma.io’.
Klicken Sie auf das Menü ‘Zonen auflisten’, um alle verfügbaren Zonen zu erhalten. Und klicken Sie auf die Schaltfläche ‘Bearbeiten’ für die Zone ‘emma.io’.

Jetzt klicken Sie auf die Schaltfläche ‘Eintrag hinzufügen’ und wir haben erfolgreich die DNS-Zone und den DNS-Eintrag für die Domain ‘emma.io’ hinzugefügt.
Als Nächstes werden wir die Domain ‘emma.io’ mit einem ‘dig’-DNS-Dienstprogramm-Befehl testen.
Überprüfen Sie den Nameserver oder ns-Eintrag der Domain ‘emma.io’.
dig NS emma.io @10.9.9.10
Überprüfen Sie den A-DNS-Eintrag der Domain ‘emma.io’.
dig A emma.io @10.9.9.10
Und Sie werden angezeigt, dass die Domain ‘emma.io’ einen Nameserver von unserem DNS-Server ‘ns1.hakase-labs.io’ hat und der ‘A’-Eintrag dieses Domainnamens mit unserer Konfiguration oben mit der Server-IP-Adresse ‘10.9.9.11’ übereinstimmt.
Schließlich wurde die Installation und Konfiguration von PowerDNS und Poweradmin auf CentOS 7 erfolgreich abgeschlossen.
Referenz
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.