Installazione software · 5 min read · Oct 01, 2025

Installazione di PowerDNS (con backend MySQL) e Poweradmin su Debian Squeeze

Installazione di PowerDNS (con backend MySQL) e Poweradmin su Debian Squeeze

Versione 1.0
Autore: Falko Timme
Seguimi su Twitter

Questo articolo mostra come puoi installare il nameserver PowerDNS (con backend MySQL) e il pannello di controllo Poweradmin per PowerDNS su un sistema Debian Squeeze. PowerDNS è un nameserver ad alte prestazioni, solo autoritativo - nella configurazione descritta qui leggerà i record DNS da un database MySQL (simile a MyDNS), anche se sono supportati altri backend come PostgreSQL. Poweradmin è un pannello di controllo basato sul web per PowerDNS.

Non rilascio alcuna garanzia che questo funzionerà per te!

1 Nota preliminare

In questo esempio sto usando un host Debian Squeeze con il nome host server1.example.com e l’indirizzo IP 192.168.0.100, configurato secondo i primi sei capitoli di questo tutorial: Il Server Perfetto - Debian Squeeze (Debian 6.0) [ISPConfig 2].

Configurerò solo un server PowerDNS in questo esempio (un master); aggiungere slave di PowerDNS può essere facilmente realizzato utilizzando la replica del database MySQL dal master agli slave, quindi non sono necessari trasferimenti di zona (questo è di nuovo simile a MyDNS). La replica del database MySQL può essere configurata secondo questo tutorial: Come configurare la replica del database in MySQL (PowerDNS supporta anche trasferimenti di zona nativi (per scenari in cui non puoi usare la replica MySQL) - vedi http://downloads.powerdns.com/documentation/html/replication.html).

2 Installazione di MySQL

Per installare MySQL, eseguiamo

apt-get install mysql-server mysql-client

Ti verrà chiesto di fornire una password per l’utente root di MySQL - questa password è valida per l’utente root@localhost così come per [email protected], quindi non dobbiamo specificare manualmente una password root di MySQL in seguito:

Nuova password per l’utente MySQL “root”: <– yourrootsqlpassword
Ripeti la password per l’utente MySQL “root”: <– yourrootsqlpassword

Vogliamo che MySQL ascolti su tutte le interfacce (questo è importante per la replica del database MySQL!), non solo su localhost, quindi modifichiamo /etc/mysql/my.cnf e commentiamo la riga bind-address = 127.0.0.1:

vi /etc/mysql/my.cnf

| [...] #bind-address = 127.0.0.1 [...] |

Poi riavviamo MySQL:

/etc/init.d/mysql restart

Ora controlla che il networking sia abilitato. Esegui

netstat -tap | grep mysql

L’output dovrebbe apparire così:

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

3 Installazione di PowerDNS

Per installare PowerDNS, eseguiamo

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

La configurazione di PowerDNS si trova nella directory /etc/powerdns - ci arriverò tra un momento.

Ora ci connettiamo a MySQL:

mysql -u root -p

Digita la tua password root di MySQL e dovresti essere sulla shell di MySQL. Sulla shell di MySQL, creiamo un database per PowerDNS:

CREATE DATABASE powerdns;

Successivamente creiamo un utente del database (powerdns) per 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;

(Sostituisci power_admin_password con una password a tua scelta.)

Ora creiamo le tabelle necessarie per 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
);

… e infine lascia la shell di MySQL:

quit;

Ora dobbiamo configurare PowerDNS affinché utilizzi il backend MySQL:

vi /etc/powerdns/pdns.conf

Aggiungi la riga launch=gmysql a pdns.conf:

| [...] ################################# # launch Quali backend lanciare e ordine per interrogarli # # launch= launch=gmysql [...] |

Poi apri /etc/powerdns/pdns.d/pdns.local e fallo apparire come segue:

vi /etc/powerdns/pdns.d/pdns.local    

| # Qui vengono le modifiche locali apportate dall'utente, come la configurazione dei # diversi backend che esistono. gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns |

Poi riavvia pdns:

/etc/init.d/pdns restart

Questo è tutto, PowerDNS è ora pronto per essere utilizzato. Per saperne di più, ti preghiamo di fare riferimento alla sua documentazione: http://downloads.powerdns.com/documentation/html/index.html

4 Installazione di Poweradmin

Ora installiamo Poweradmin, un pannello di controllo basato sul web per PowerDNS. Poweradmin è scritto in PHP, quindi dobbiamo installare un server web (sto usando Apache2 in questo esempio) e 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-mysql

Riavvia Apache dopo:

/etc/init.d/apache2 restart 

Ora tutti i prerequisiti per Poweradmin sono installati e possiamo iniziare con l’installazione di Poweradmin (lo installerò in una sottodirectory di /var/www - /var/www è la root dei documenti del sito web predefinito di Apache su Debian; se hai creato un vhost con una root dei documenti diversa, ti preghiamo di regolare i percorsi).

Vai su https://www.poweradmin.org/trac/wiki/GettingPoweradmin e scarica l’ultima versione del pacchetto Poweradmin, ad esempio come segue:

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

Poi installalo nella directory /var/www/poweradmin come segue:

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/

Ora apri un browser e avvia l’installer web di Poweradmin (http://server1.example.com/poweradmin/install/index.php o http://192.168.0.100/poweradmin/install/index.php).

Seleziona la tua lingua (inglese o olandese):

Clicca sul pulsante Vai al passo 3 per procedere:

Ora compila i dettagli del tuo database. È importante che tu compili i dettagli per l’utente root di MySQL, non l’utente MySQL powerdns che abbiamo creato in precedenza! Fornisci anche una password per l’utente admin per l’interfaccia web di Poweradmin (quella è la password che l’utente admin utilizzerà per accedere a Poweradmin in seguito):

Nella pagina successiva, compila i dettagli per l’utente MySQL power_admin che abbiamo creato nel capitolo 3. Compila anche i due nameserver predefiniti che verranno utilizzati nelle tue zone a meno che tu non fornisca nameserver diversi quando crei una zona (tipicamente questi sono i nomi del sistema attuale e del server slave (per il quale puoi configurare la replica MySQL, vedi le mie note preliminari nel capitolo 1)):

Nella schermata successiva l’installer ti chiede di eseguire una query MySQL. Non dobbiamo farlo perché abbiamo già fatto qualcosa di simile nel capitolo 3 (le due istruzioni GRANT) quindi siamo a posto. Clicca su Vai al passo 6:

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.