PowerDNS Installation · 5 min read · Oct 02, 2025
Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf Fedora 10
Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf Fedora 10
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 Fedora 10-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 Kontrollpanel für PowerDNS.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Beispiel verwende ich einen Fedora 10-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 - Fedora 10.
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: Wie man Datenbankreplikation in MySQL einrichtet (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 Installation von MySQL
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 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!).
Wenn der letzte Befehl einen Fehler ausgibt…
[root@server1 named]# mysqladmin -h server1.example.com -u root password yourrootsqlpassword
mysqladmin: Verbindung zum Server unter ‘server1.example.com’ fehlgeschlagen
Fehler: ‘Zugriff verweigert für Benutzer ‘root’@’localhost’ (Passwort verwenden: NEIN)’
[root@server1 named]#
… können wir das Passwort wie folgt festlegen: verbinden Sie sich mit MySQL:
mysql -u root -pGeben Sie das Passwort für den MySQL-Root-Benutzer ein. Dann führen Sie im MySQL-Shell Folgendes aus:
mysql> USE mysql;mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = 'server1.example.com' AND User = 'root';mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = '127.0.0.1' AND User = 'root';Führen Sie aus:
mysql> SELECT * FROM user;um sicherzustellen, dass alle Zeilen, in denen der Benutzer root ist, ein Passwort haben.
Wenn alles in Ordnung aussieht, führen Sie aus:
mysql> FLUSH PRIVILEGES;… und verlassen Sie die MySQL-Shell:
mysql> quit;3 Installation von PowerDNS
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 verlassen Sie die MySQL-Shell:
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 [...] |
Erstellen Sie dann 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 Installation von Poweradmin
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-mysqlJetzt 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 Fedora; 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 MySQL-Benutzer powerdns, 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):

Geben Sie auf der nächsten Seite die Details für den MySQL-Benutzer power_admin ein, den wir in Kapitel 3 erstellt haben. Geben Sie auch die beiden Standard-Nameserver an, die in Ihren Zonen verwendet werden, es sei denn, Sie geben beim Erstellen einer Zone andere Nameserver an (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)):

Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.