PowerDNS Installation · 5 min read · Oct 01, 2025

Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf CentOS 5.2

Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf CentOS 5.2

Version 1.0
Autor: Falko Timme

Dieser Artikel zeigt, wie Sie den PowerDNS-Namensserver (mit MySQL-Backend) und das Poweradmin-Kontrollpanel für PowerDNS auf einem CentOS 5.2-System installieren können. PowerDNS ist ein leistungsstarker, autoritativer Namensserver - in der hier beschriebenen Konfiguration wird er die DNS-Einträge aus einer MySQL-Datenbank lesen (ähnlich wie MyDNS), obwohl auch andere Backends wie PostgreSQL unterstützt werden. Poweradmin ist ein webbasiertes Kontrollpanel für PowerDNS.

Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

In diesem Beispiel verwende ich einen CentOS 5.2-Host mit dem Hostnamen server1.example.com und der IP-Adresse 192.168.0.100, eingerichtet gemäß den ersten 6 Kapiteln dieses Tutorials: Der Perfekte Server - CentOS 5.2.

Ich werde in diesem Beispiel nur einen PowerDNS-Server einrichten (einen Master); das Hinzufügen von PowerDNS-Slaves kann einfach durch die Verwendung von MySQL-Datenbankreplikation vom Master zu den Slaves erreicht werden, daher sind keine Zonentransfers erforderlich (das ist wiederum ähnlich wie bei MyDNS). Die MySQL-Datenbankreplikation kann gemäß diesem Tutorial eingerichtet werden: Wie man Datenbankreplikation in MySQL einrichtet (PowerDNS unterstützt auch native Zonentransfers (für Szenarien, in denen Sie MySQL-Replikation nicht verwenden können) - siehe http://downloads.powerdns.com/documentation/html/replication.html).

2 MySQL installieren

Um MySQL zu installieren, tun wir Folgendes:

yum install mysql mysql-server

Dann erstellen wir die Systemstartlinks für MySQL (damit MySQL automatisch startet, wenn das System bootet) und starten den MySQL-Server:

chkconfig --levels 235 mysqld on  
/etc/init.d/mysqld start

Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Führen Sie aus:

netstat -tap | grep mysql

Es sollte etwas wie folgt angezeigt werden ( *:mysql bedeutet, dass MySQL auf allen Schnittstellen lauscht, was wichtig für die MySQL-Replikation ist!):

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql                     *:*                         LISTEN      2439/mysqld  
[root@server1 ~]#

Wenn dies nicht der Fall ist, bearbeiten Sie /etc/my.cnf und kommentieren Sie die Option skip-networking aus:

vi /etc/my.cnf

| [...] #skip-networking [...] |

und starten Sie Ihren MySQL-Server neu:

/etc/init.d/mysqld restart

Führen Sie aus:

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

um ein Passwort für den Benutzer root festzulegen (ansonsten kann jeder auf Ihre MySQL-Datenbank zugreifen!).

3 PowerDNS installieren

Um PowerDNS zu installieren, führen wir aus:

yum install pdns pdns-backend-mysql

Die PowerDNS-Konfiguration befindet sich im Verzeichnis /etc/pdns - darauf komme ich gleich zurück.

Jetzt verbinden wir uns mit MySQL:

mysql -u root -p

Geben Sie Ihr MySQL-Root-Passwort ein, und Sie sollten sich in der MySQL-Shell befinden. In der MySQL-Shell erstellen wir eine Datenbank für PowerDNS:

CREATE DATABASE powerdns;

Als nächstes erstellen wir einen Datenbankbenutzer (powerdns) für PowerDNS:

GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';  
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';  
FLUSH PRIVILEGES;

(Ersetzen Sie power_admin_password durch ein Passwort Ihrer Wahl.)

Jetzt erstellen wir die von PowerDNS benötigten Tabellen…

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)  
);
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE TABLE records (  
id INT auto_increment,  
domain_id INT DEFAULT NULL,  
name VARCHAR(255) DEFAULT NULL,  
type VARCHAR(6) DEFAULT NULL,  
content VARCHAR(255) DEFAULT NULL,  
ttl INT DEFAULT NULL,  
prio INT DEFAULT NULL,  
change_date INT DEFAULT NULL,  
primary key(id)  
);
CREATE INDEX rec_name_index ON records(name);  
CREATE INDEX nametype_index ON records(name,type);  
CREATE INDEX domain_id ON records(domain_id);
CREATE TABLE supermasters (  
ip VARCHAR(25) NOT NULL,  
nameserver VARCHAR(255) NOT NULL,  
account VARCHAR(40) DEFAULT NULL  
);

… und schließlich die MySQL-Shell verlassen:

quit;

Jetzt müssen wir PowerDNS konfigurieren, damit es das MySQL-Backend verwendet:

vi /etc/pdns/pdns.conf

Fügen Sie die folgenden Zeilen zu pdns.conf hinzu:

| [...] ################################# # launch Welche Backends zu starten sind und in welcher Reihenfolge sie abgefragt werden # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns [...] |

Dann erstellen Sie die Systemstartlinks für PowerDNS und starten Sie es:

chkconfig --levels 235 pdns on  
/etc/init.d/pdns start

Das war’s, PowerDNS ist jetzt bereit zur Verwendung. Um mehr darüber zu erfahren, lesen Sie bitte die Dokumentation: http://downloads.powerdns.com/documentation/html/index.html

4 Poweradmin installieren

Jetzt installieren wir Poweradmin, ein webbasiertes Kontrollpanel für PowerDNS. Poweradmin ist in PHP geschrieben, daher müssen wir einen Webserver installieren (ich verwende in diesem Beispiel Apache2) und PHP:

yum 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 gettext

Erstellen Sie die Systemstartlinks für Apache2 und starten Sie es:

chkconfig --levels 235 httpd on  
/etc/init.d/httpd start

Poweradmin benötigt auch die folgenden beiden PEAR-Pakete:

yum install php-pear-DB php-pear-MDB2-Driver-mysql

Jetzt sind alle Voraussetzungen für Poweradmin installiert, und wir können mit der Installation von Poweradmin beginnen (ich werde es in einem Unterverzeichnis von /var/www/html installieren - /var/www/html ist das Dokumentenstammverzeichnis der Standard-Website von Apache auf CentOS; wenn Sie einen vhost mit einem anderen Dokumentenstamm erstellt haben, passen Sie die Pfade an).

Gehen Sie zu https://www.poweradmin.org/trac/wiki/GettingPoweradmin und laden Sie das neueste Poweradmin-Paket herunter, z.B. wie folgt:

cd /tmp  
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgz

Installieren Sie es dann im Verzeichnis /var/www/html/poweradmin wie folgt:

tar xvfz poweradmin-2.1.2.tgz  
mv poweradmin-2.1.2 /var/www/html/poweradmin  
touch /var/www/html/poweradmin/inc/config.inc.php  
chown -R apache:apache /var/www/html/poweradmin/

Öffnen Sie jetzt einen Browser und starten Sie den webbasierten Poweradmin-Installer ( http://server1.example.com/poweradmin/install oder http://192.168.0.100/poweradmin/install).

Wählen Sie Ihre Sprache (Englisch oder Niederländisch):

Klicken Sie auf die Schaltfläche Gehe zu Schritt 3, um fortzufahren:

Geben Sie nun Ihre Datenbankdetails ein. Es ist wichtig, dass Sie die Details für den MySQL-Root-Benutzer eingeben, nicht den PowerDNS MySQL-Benutzer, den wir zuvor erstellt haben! Geben Sie auch ein Passwort für den Admin-Benutzer für die Poweradmin-Weboberfläche an (das ist das Passwort, das der Benutzer admin später verwenden wird, um sich bei Poweradmin anzumelden):

Auf der nächsten Seite geben Sie die Details für den MySQL-Benutzer power_admin ein, den wir in Kapitel 3 erstellt haben. Geben Sie auch die beiden Standardnameserver an, die in Ihren Zonen verwendet werden, es sei denn, Sie geben andere Nameserver an, wenn Sie eine Zone erstellen (typischerweise sind dies die Namen des aktuellen Systems und des Slave-Servers (für den Sie MySQL-Replikation einrichten können, siehe meine Vorbemerkungen in Kapitel 1)):

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.