Installation · 5 min read · Oct 01, 2025

Installation de PowerDNS (avec backend MySQL) et Poweradmin sur Debian Etch

Installation de PowerDNS (avec backend MySQL) et Poweradmin sur Debian Etch

Version 1.0
Auteur : Falko Timme

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 Etch. 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 Etch avec le nom d’hôte server1.example.com et l’adresse IP 192.168.0.100, configuré selon les 5 premiers chapitres de ce tutoriel : La configuration parfaite - Debian Etch (Debian 4.0).

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-client

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 restart

Maintenant, vérifiez que le réseau est activé. Exécutez

netstat -tap | grep mysql

La sortie devrait ressembler à ceci :

server1:~# netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 3031/mysqld
server1:~#

Exécutez

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

pour définir un mot de passe pour l’utilisateur root (sinon, n’importe qui peut accéder à votre base de données MySQL !) (remplacez yourrootsqlpassword par un mot de passe de votre choix).

3 Installation de PowerDNS

Pour installer PowerDNS, nous exécutons

apt-get install pdns-server pdns-backend-mysql

La 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 -p

Tapez 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 quittez le shell MySQL :

quit;

Maintenant, nous devons configurer PowerDNS pour qu’il utilise le backend MySQL :

vi /etc/powerdns/pdns.conf

Ajoutez 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    

| # Here comes the local changes the user made, like configuration of # the several backends that exists. 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 restart

C’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-mhash php5-ming php5-mysql php5-xmlrpc gettext 

Continuer l’installation de libc-client sans support Maildir ? <– Oui

Poweradmin nécessite également les deux packages PEAR suivants :

pear install DB
pear install pear/MDB2#mysql

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 package Poweradmin, par exemple comme suit :

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

Ensuite, installez-le dans le répertoire /var/www/poweradmin comme suit :

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/

Maintenant, ouvrez un navigateur et lancez l’installateur web de Poweradmin (http://server1.example.com/poweradmin/install ou http://192.168.0.100/poweradmin/install).

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

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.