Installation · 5 min read · Oct 01, 2025
Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf Fedora 12
Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf Fedora 12
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
Dieser Artikel zeigt, wie Sie den PowerDNS-Namensserver (mit MySQL-Backend) und das Poweradmin-Steuerfeld für PowerDNS auf einem Fedora 12-System installieren können. PowerDNS ist ein leistungsstarker, autoritativer Namensserver - in der hier beschriebenen Konfiguration liest er die DNS-Einträge aus einer MySQL-Datenbank (ähnlich wie MyDNS), obwohl auch andere Backends wie PostgreSQL unterstützt werden. Poweradmin ist ein webbasiertes Steuerfeld für PowerDNS.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Beispiel verwende ich einen Fedora 12-Host mit dem Hostnamen server1.example.com und der IP-Adresse 192.168.0.100, der gemäß den ersten fünf Kapiteln dieses Tutorials eingerichtet wurde: Der perfekte Server - Fedora 12 x86_64 [ISPConfig 2].
Ich werde in diesem Beispiel nur einen PowerDNS-Server (einen Master) einrichten; das Hinzufügen von PowerDNS-Slaves kann einfach durch die Verwendung von MySQL-Datenbankreplikation vom Master zu den Slaves erreicht werden, daher sind keine Zonenübertragungen erforderlich (das ist wiederum ähnlich wie bei MyDNS). Die MySQL-Datenbankreplikation kann gemäß diesem Tutorial eingerichtet werden: So richten Sie die Datenbankreplikation in MySQL ein (PowerDNS unterstützt auch native Zonenübertragungen (für Szenarien, in denen Sie keine MySQL-Replikation verwenden können) - siehe http://downloads.powerdns.com/documentation/html/replication.html).
2 MySQL installieren
Um MySQL zu installieren, führen wir Folgendes aus:
yum install mysql mysql-serverDann 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 mysqlEs 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 2407/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 restartFühren Sie aus:
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpasswordum 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-mysqlDie PowerDNS-Konfiguration befindet sich im Verzeichnis /etc/pdns - darauf komme ich gleich zurück.
Jetzt verbinden wir uns mit MySQL:
mysql -u root -pGeben 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 so konfigurieren, dass es das MySQL-Backend verwendet:
vi /etc/pdns/pdns.confFügen Sie die folgenden Zeilen zu pdns.conf hinzu:
| [...] ################################# # launch Welche Backends zu starten 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 startDas 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 Steuerfeld für PowerDNS. Poweradmin ist in PHP geschrieben, daher müssen wir einen Webserver installieren (ich verwende Apache2 in diesem Beispiel) 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 gettextErstellen Sie die Systemstartlinks für Apache2 und starten Sie es:
chkconfig --levels 235 httpd on
/etc/init.d/httpd startPoweradmin benötigt auch die folgenden beiden PEAR-Pakete:
yum install php-pear-DB php-pear-MDB2-Driver-mysqlJetzt sind alle Voraussetzungen für Poweradmin installiert, und wir können mit der Poweradmin-Installation beginnen (ich werde es in einem Unterverzeichnis von /var/www/html installieren - /var/www/html ist das Dokumentenstammverzeichnis der Standard-Website von Apache auf Fedora; wenn Sie einen vhost mit einem anderen Dokumentenstamm erstellt haben, passen Sie die Pfade entsprechend 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.4.tgzInstallieren Sie es dann im Verzeichnis /var/www/html/poweradmin wie folgt:
tar xvfz poweradmin-2.1.4.tgz
mv poweradmin-2.1.4 /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/index.php oder http://192.168.0.100/poweradmin/install/index.php).
Wählen Sie Ihre Sprache (Englisch oder Niederländisch):

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

Füllen Sie jetzt Ihre Datenbankdetails aus. Es ist wichtig, dass Sie die Details für den MySQL-Root-Benutzer ausfüllen, 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 Standard-Namensserver an, die in Ihren Zonen verwendet werden, es sei denn, Sie geben andere Namensserver 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)):

Auf dem nächsten Bildschirm fordert der Installer Sie auf, eine MySQL-Abfrage auszuführen. Das müssen wir nicht tun, da wir etwas Ähnliches bereits in Kapitel 3 gemacht haben (die beiden GRANT-Anweisungen), also sind wir bereit. Klicken Sie auf Gehe zu Schritt 6:

Klicken Sie auf Gehe zu Schritt 7:

Die Installation ist jetzt abgeschlossen…

… aber aus Sicherheitsgründen müssen wir das Installationsverzeichnis löschen:
rm -fr /var/www/html/poweradmin/install/Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.