Installation · 5 min read · Oct 01, 2025
Installation de PowerDNS (avec backend MySQL) et Poweradmin sur Debian Squeeze
Installation de PowerDNS (avec backend MySQL) et Poweradmin sur Debian Squeeze
Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter
Cet article montre comment vous pouvez installer le serveur de noms PowerDNS (avec backend MySQL) et le panneau de contrôle Poweradmin pour PowerDNS sur un système Debian Squeeze. PowerDNS est un serveur de noms autoritaire à haute performance - dans la configuration décrite ici, il lira les enregistrements DNS à partir d’une base de données MySQL (similaire à MyDNS), bien que d’autres backends tels que PostgreSQL soient également pris en charge. Poweradmin est un panneau de contrôle basé sur le web pour PowerDNS.
Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
Dans cet exemple, j’utilise un hôte Debian Squeeze avec le nom d’hôte server1.example.com et l’adresse IP 192.168.0.100, configuré selon les six premiers chapitres de ce tutoriel : Le Serveur Parfait - Debian Squeeze (Debian 6.0) [ISPConfig 2].
Je vais configurer juste un serveur PowerDNS dans cet exemple (un maître) ; l’ajout de PowerDNS esclave(s) peut facilement être réalisé en utilisant la réplication de base de données MySQL du maître vers l(es) esclave(s), donc aucun transfert de zone n’est nécessaire (cela est encore une fois similaire à MyDNS). La réplication de base de données MySQL peut être configurée selon ce tutoriel : Comment configurer la réplication de base de données dans MySQL (PowerDNS prend également en charge les transferts de zone natifs (pour les scénarios où vous ne pouvez pas utiliser la réplication MySQL) - voir http://downloads.powerdns.com/documentation/html/replication.html).
2 Installation de MySQL
Pour installer MySQL, nous exécutons
apt-get install mysql-server mysql-clientVous serez invité à fournir un mot de passe pour l’utilisateur root de MySQL - ce mot de passe est valide pour l’utilisateur root@localhost ainsi que [email protected], donc nous n’avons pas besoin de spécifier un mot de passe root MySQL manuellement plus tard :
Nouveau mot de passe pour l’utilisateur MySQL “root” : <– votremotdepasseMySQLroot
Répétez le mot de passe pour l’utilisateur MySQL “root” : <– votremotdepasseMySQLroot
Nous voulons que MySQL écoute sur toutes les interfaces (c’est important pour la réplication de base de données MySQL !), pas seulement localhost, donc nous éditons /etc/mysql/my.cnf et commentons la ligne bind-address = 127.0.0.1 :
vi /etc/mysql/my.cnf| [...] #bind-address = 127.0.0.1 [...] |
Ensuite, nous redémarrons MySQL :
/etc/init.d/mysql restartMaintenant, vérifiez que le réseau est activé. Exécutez
netstat -tap | grep mysqlLa sortie devrait ressembler à ceci :
server1:~# netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 2453/mysqld
server1:~#
3 Installation de PowerDNS
Pour installer PowerDNS, nous exécutons
apt-get install pdns-server pdns-backend-mysqlLa configuration de PowerDNS se trouve dans le répertoire /etc/powerdns - j’y reviendrai dans un instant.
Maintenant, nous nous connectons à MySQL :
mysql -u root -pTapez votre mot de passe root MySQL, et vous devriez être sur le shell MySQL. Sur le shell MySQL, nous créons une base de données pour PowerDNS :
CREATE DATABASE powerdns;Ensuite, nous créons un utilisateur de base de données (powerdns) pour 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;
(Remplacez power_admin_password par un mot de passe de votre choix.)
Maintenant, nous créons les tables nécessaires à PowerDNS…
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
);
… et enfin quitter le shell MySQL :
quit;Maintenant, nous devons configurer PowerDNS pour qu’il utilise le backend MySQL :
vi /etc/powerdns/pdns.confAjoutez la ligne launch=gmysql à pdns.conf :
| [...] ################################# # launch Which backends to launch and order to query them in # # launch= launch=gmysql [...] |
Ensuite, ouvrez /etc/powerdns/pdns.d/pdns.local et faites-le ressembler à ceci :
vi /etc/powerdns/pdns.d/pdns.local | # Ici viennent les modifications locales que l'utilisateur a faites, comme la configuration des # plusieurs backends qui existent. gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns |
Ensuite, redémarrez pdns :
/etc/init.d/pdns restartC’est tout, PowerDNS est maintenant prêt à être utilisé. Pour en savoir plus à son sujet, veuillez consulter sa documentation : http://downloads.powerdns.com/documentation/html/index.html
4 Installation de Poweradmin
Maintenant, installons Poweradmin, un panneau de contrôle basé sur le web pour PowerDNS. Poweradmin est écrit en PHP, donc nous devons installer un serveur web (j’utilise Apache2 dans cet exemple) et PHP :
apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-ming php5-mysql php5-xmlrpc gettext php-db php-mdb2 php-mdb2-driver-mysqlRedémarrez Apache ensuite :
/etc/init.d/apache2 restart Maintenant, tous les prérequis pour Poweradmin sont installés, et nous pouvons commencer l’installation de Poweradmin (je vais l’installer dans un sous-répertoire de /var/www - /var/www est le répertoire racine des documents du site web par défaut d’Apache sur Debian ; si vous avez créé un vhost avec un répertoire racine différent, veuillez ajuster les chemins).
Allez sur https://www.poweradmin.org/trac/wiki/GettingPoweradmin et téléchargez le dernier paquet Poweradmin, par exemple comme suit :
cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.5.tgz
Ensuite, installez-le dans le répertoire /var/www/poweradmin comme suit :
tar xvfz poweradmin-2.1.5.tgz
mv poweradmin-2.1.5 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/
Maintenant, ouvrez un navigateur et lancez l’installateur web de Poweradmin (http://server1.example.com/poweradmin/install/index.php ou http://192.168.0.100/poweradmin/install/index.php).
Sélectionnez votre langue (anglais ou néerlandais) :

Cliquez sur le bouton Aller à l’étape 3 pour continuer :

Maintenant, remplissez vos détails de base de données. Il est important que vous remplissiez les détails pour l’utilisateur root MySQL, pas l’utilisateur MySQL powerdns que nous avons créé plus tôt ! Fournissez également un mot de passe pour l’utilisateur admin pour l’interface web de Poweradmin (c’est le mot de passe que l’utilisateur admin utilisera pour se connecter à Poweradmin plus tard) :

À la page suivante, remplissez les détails pour l’utilisateur MySQL power_admin que nous avons créé au chapitre 3. Remplissez également les deux serveurs de noms par défaut qui seront utilisés dans vos zones à moins que vous ne fournissiez des serveurs de noms différents lorsque vous créez une zone (typiquement, ce sont les noms du système actuel et du serveur esclave (pour lequel vous pouvez configurer la réplication MySQL, voir mes notes préliminaires au chapitre 1)) :

À l’écran suivant, l’installateur vous demande d’exécuter une requête MySQL. Nous n’avons pas besoin de le faire car nous avons déjà fait quelque chose de similaire au chapitre 3 (les deux instructions GRANT) donc nous sommes prêts. Cliquez sur Aller à l’étape 6 :

Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.