PowerDNS Installation · 5 min read · Oct 01, 2025
Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf Debian Etch
Installation von PowerDNS (mit MySQL-Backend) und Poweradmin auf Debian Etch
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 Debian Etch-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 Debian Etch-Host mit dem Hostnamen server1.example.com und der IP-Adresse 192.168.0.100, eingerichtet gemäß den ersten 5 Kapiteln dieses Tutorials: Die perfekte Einrichtung - Debian Etch (Debian 4.0).
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 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 aus
apt-get install mysql-server mysql-clientWir möchten, dass MySQL auf allen Schnittstellen hört (das ist wichtig für die MySQL-Datenbankreplikation!), nicht nur auf localhost, daher bearbeiten wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address = 127.0.0.1 aus:
vi /etc/mysql/my.cnf| [...] #bind-address = 127.0.0.1 [...] |
Dann starten wir MySQL neu:
/etc/init.d/mysql restartÜberprüfen Sie jetzt, ob das Netzwerk aktiviert ist. Führen Sie aus
netstat -tap | grep mysqlDie Ausgabe sollte wie folgt aussehen:
server1:~# netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 3031/mysqld
server1:~#
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!) (ersetzen Sie yourrootsqlpassword durch ein Passwort Ihrer Wahl).
3 PowerDNS installieren
Um PowerDNS zu installieren, führen wir aus
apt-get install pdns-server pdns-backend-mysqlDie PowerDNS-Konfiguration befindet sich im Verzeichnis /etc/powerdns - 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 konfigurieren, damit es das MySQL-Backend verwendet:
vi /etc/powerdns/pdns.confFügen Sie die Zeile launch=gmysql zu pdns.conf hinzu:
| [...] ################################# # launch Welche Backends gestartet werden sollen und in welcher Reihenfolge sie abgefragt werden # # launch= launch=gmysql [...] |
Öffnen Sie dann /etc/powerdns/pdns.d/pdns.local und lassen Sie es wie folgt aussehen:
vi /etc/powerdns/pdns.d/pdns.local | # Hier kommen die lokalen Änderungen, die der Benutzer vorgenommen hat, wie die Konfiguration der # der verschiedenen Backends, die existieren. gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns |
Dann starten Sie pdns neu:
/etc/init.d/pdns restartDas 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 Apache2 in diesem Beispiel) und PHP:
apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc gettext Fahren Sie mit der Installation von libc-client ohne Maildir-Unterstützung fort? <– Ja
Poweradmin benötigt auch die folgenden zwei PEAR-Pakete:
pear install DB
pear install pear/MDB2#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 installieren - /var/www ist das Dokumentenstammverzeichnis der Standard-Website von Apache auf Debian; wenn Sie einen vhost mit einem anderen Dokumentenstamm erstellt haben, passen Sie bitte 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/poweradmin wie folgt:
tar xvfz poweradmin-2.1.2.tgz
mv poweradmin-2.1.2 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/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:

Füllen Sie jetzt Ihre Datenbankdetails aus. 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):

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 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)):

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