PowerDNS Installazione · 5 min read · Oct 02, 2025
Installazione di PowerDNS (con backend MySQL) e Poweradmin su Fedora 10
Installazione di PowerDNS (con backend MySQL) e Poweradmin su Fedora 10
Versione 1.0
Autore: Falko Timme
Questo articolo mostra come puoi installare il nameserver PowerDNS (con backend MySQL) e il pannello di controllo Poweradmin per PowerDNS su un sistema Fedora 10. PowerDNS è un nameserver ad alte prestazioni, solo autorevole - 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 Fedora 10 con il nome host server1.example.com e l’indirizzo IP 192.168.0.100, configurato secondo i primi 6 capitoli di questo tutorial: Il Server Perfetto - Fedora 10.
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 utilizzare la replica MySQL) - vedi http://downloads.powerdns.com/documentation/html/replication.html).
2 Installazione di MySQL
Per installare MySQL, facciamo così:
yum install mysql mysql-serverPoi creiamo i collegamenti di avvio del sistema per MySQL (in modo che MySQL si avvii automaticamente ogni volta che il sistema si avvia) e avviamo il server MySQL:
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
Ora controlla che la rete sia abilitata. Esegui
netstat -tap | grep mysqlDovrebbe mostrare qualcosa di simile a questo ( *:mysql significa che MySQL sta ascoltando su tutte le interfacce, il che è importante per la replica MySQL!):
[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 2407/mysqld
[root@server1 ~]#
Se non lo fa, modifica /etc/my.cnf e commenta l’opzione skip-networking:
vi /etc/my.cnf| [...] #skip-networking [...] |
e riavvia il server MySQL:
/etc/init.d/mysqld restart Esegui
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
per impostare una password per l’utente root (altrimenti chiunque può accedere al tuo database MySQL!).
Se l’ultimo comando ti restituisce un errore…
[root@server1 named]# mysqladmin -h server1.example.com -u root password yourrootsqlpassword
mysqladmin: connect to server at ‘server1.example.com’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: NO)’
[root@server1 named]#
… possiamo impostare la password come segue: connettiti a MySQL:
mysql -u root -pDigita la password per l’utente root di MySQL. Poi, nella shell di MySQL, fai questo:
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';Esegui
mysql> SELECT * FROM user;per assicurarti che tutte le righe in cui l’utente è root abbiano una password.
Se tutto sembra a posto, esegui
mysql> FLUSH PRIVILEGES;… e lascia la shell di MySQL:
mysql> quit;3 Installazione di PowerDNS
Per installare PowerDNS, eseguiamo
yum install pdns pdns-backend-mysqlLa configurazione di PowerDNS si trova nella directory /etc/pdns - ci arriverò tra un momento.
Ora ci connettiamo a MySQL:
mysql -u root -pDigita la tua password di root di MySQL, e dovresti essere nella shell di MySQL. Nella 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 in modo che utilizzi il backend MySQL:
vi /etc/pdns/pdns.confAggiungi le seguenti righe a pdns.conf:
| [...] ################################# # launch Quali backend lanciare e ordine per interrogarli # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns [...] |
Poi crea i collegamenti di avvio del sistema per PowerDNS e avvialo:
chkconfig –levels 235 pdns on
/etc/init.d/pdns start
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:
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 Crea i collegamenti di avvio del sistema per Apache2 e avvialo:
chkconfig –levels 235 httpd on
/etc/init.d/httpd start
Poweradmin richiede anche i seguenti due pacchetti PEAR:
yum install php-pear-DB php-pear-MDB2-Driver-mysqlOra tutti i prerequisiti per Poweradmin sono installati, e possiamo iniziare con l’installazione di Poweradmin (lo installerò in una sottodirectory di /var/www/html - /var/www/html è la radice del documento del sito web predefinito di Apache su Fedora; se hai creato un vhost con una radice del documento diversa, ti preghiamo di regolare i percorsi).
Vai su https://www.poweradmin.org/trac/wiki/GettingPoweradmin e scarica l’ultima versione di Poweradmin, ad esempio come segue:
cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgz
Poi installalo nella directory /var/www/html/poweradmin come segue:
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/
Ora apri un browser e avvia l’installer web di Poweradmin ( http://server1.example.com/poweradmin/install o http://192.168.0.100/poweradmin/install).
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 impostare la replica MySQL, vedi le mie note preliminari nel capitolo 1)):

Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.