Installazione software · 9 min read · Oct 01, 2025
Come installare PowerDNS e Poweradmin su CentOS 7

PowerDNS (pdns) è un server DNS open source scritto in C++ e rilasciato sotto licenza GPL. È diventato una buona alternativa al tradizionale server DNS Bind, progettato con migliori prestazioni e requisiti di memoria ridotti. PowerDNS fornisce due prodotti, il server Autorevole e il Ricorsore. Il server Autorevole di PowerDNS può essere configurato attraverso i diversi backend, inclusi i file di zona Bind semplici, RDBMS come MySQL, PostgreSQL, SQLite3 o LDAP.
In questo tutorial, ti mostrerò come installare e configurare un server Autorevole PowerDNS con il server di database MariaDB come Backend e utilizzare Poweradmin per una facile gestione DNS.
Prerequisiti
- Server CentOS 7
- Privilegi di root
Cosa faremo:
- Installare i repository EPEL e Remi
- Installare e configurare MariaDB
- Installare PowerDNS
- Installare Poweradmin
- Post-installazione di Poweradmin
- Creare una zona di esempio
Passo 1 - Installare i repository EPEL e Remi
Prima di tutto, dobbiamo installare le dipendenze per l’installazione di PowerDNS. Installeremo il repository EPEL e il REMI per l’installazione di PHP 7.2.
Installa il repository EPEL e il repository Remi per PHP utilizzando i seguenti comandi.
yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpmUna volta aggiunti questi repository al sistema, installa il pacchetto ‘yum-utils’.
yum -y install yum-utilsE abilita il repository Remi per PHP 7.2 utilizzando il seguente comando.
yum-config-manager --enable remi-php72Passo 2 - Installare e configurare MariaDB
Il server Autorevole di PowerDNS supporta un diverso backend, incluso il server di database MySQL/MariaDB. Il termine ‘backend’ è un datastore che il server consulterà e che contiene record DNS (e alcuni metadati). E per questa guida, utilizzeremo MariaDB come backend.
Installa MariaDB utilizzando il seguente comando yum.
yum -y install mariadb mariadb-serverUna volta completata l’installazione, avvia il servizio MariaDB e aggiungilo all’avvio automatico.
systemctl start mariadb
systemctl enable mariadbSuccessivamente, configureremo la password di root per MariaDB utilizzando lo strumento interattivo chiamato ‘mysql_secure_installation’.
Esegui il comando qui sotto.
mysql_secure_installationE ti verrà chiesto di configurare la password di root del server di database. Digita ‘Y’ per impostare la password di root e digita una password sicura.
Set root password? [Y/n] Y
New password:
Re-enter new password: Per gli altri, digita semplicemente ‘Y’ per sì.
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] YDi conseguenza, hai installato il server di database MariaDB e impostato la password di root per l’autenticazione.
Successivamente, creeremo un nuovo database e un utente per l’installazione di PowerDNS. Accedi alla shell MySQL con l’utente root e la tua password.
Esegui il comando MySQL qui sotto.
mysql -u root -p
PASSWORDOra crea un nuovo database chiamato ‘powerdns’ e concedi tutti i privilegi del database a un nuovo utente chiamato ‘pdns’ con password ‘pdnspassword2018’.
create database powerdns;
grant all privileges on powerdns.* to pdns@localhost identified by 'pdnspassword2018';
flush privileges;
Dopo di che, crea le strutture delle tabelle per il database PowerDNS eseguendo le seguenti query MySQL.
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)
) Engine=InnoDB;
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE TABLE records (
id BIGINT AUTO_INCREMENT,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(10) DEFAULT NULL,
content VARCHAR(64000) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
disabled TINYINT(1) DEFAULT 0,
ordername VARCHAR(255) BINARY DEFAULT NULL,
auth TINYINT(1) DEFAULT 1,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) NOT NULL,
PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;
CREATE TABLE comments (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
type VARCHAR(10) NOT NULL,
modified_at INT NOT NULL,
account VARCHAR(40) NOT NULL,
comment VARCHAR(64000) NOT NULL,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
CREATE TABLE domainmetadata (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
kind VARCHAR(32),
content TEXT,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
CREATE TABLE cryptokeys (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
flags INT NOT NULL,
active BOOL,
content TEXT,
PRIMARY KEY(id)
) Engine=InnoDB;
CREATE INDEX domainidindex ON cryptokeys(domain_id);
CREATE TABLE tsigkeys (
id INT AUTO_INCREMENT,
name VARCHAR(255),
algorithm VARCHAR(50),
secret VARCHAR(255),
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
quit;Di conseguenza, il database MySQL/MariaDB e un utente per l’installazione di PowerDNS sono stati creati.
Passo 3 - Installare PowerDNS
Installa PowerDNS e tutti i pacchetti necessari utilizzando il seguente comando.
yum -y install pdns pdns-backend-mysql bind-utilsDopo aver installato i pacchetti PowerDNS, vai alla directory ‘/etc/pdns/‘ ed edita il file di configurazione ‘pdns.conf’ utilizzando l’editor vim.
cd /etc/pdns/
vim pdns.confPer impostazione predefinita, PowerDNS utilizza ‘bind’ come backend. Quindi, digita il commento ‘#’ davanti alla configurazione ‘launch=bind’ e incolla la configurazione del backend MySQL come segue.
#launch=bind
launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=pdnspassword2018
gmysql-dbname=powerdnsSalva e chiudi.

Ora avvia il servizio pdns e aggiungilo all’avvio automatico.
systemctl start pdns
systemctl enable pdnsDopo di che, aggiungi il servizio DNS al firewall.
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
E il servizio PowerDNS è attivo e funzionante, controlla utilizzando il seguente comando.
netstat -tap | grep pdns
netstat -tulpn | grep 53
dig @10.9.9.10Di conseguenza, otterrai che il servizio pdns è attivo e funzionante sulla porta 53 e riceverai una risposta dal server PowerDNS.

Passo 4 - Installare Poweradmin
In questo passo, installeremo la gestione DNS per PowerDNS chiamata ‘Poweradmin’. È un’applicazione web basata su PHP, quindi dobbiamo installare PHP e un server web per eseguire l’applicazione.
Installa un server web httpd e i pacchetti PHP utilizzando il seguente comando.
yum -y 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 gettextDopo l’installazione, dobbiamo installare pacchetti PHP Pear aggiuntivi. Esegui il seguente comando.
yum -y install php-pear-DB php-pear-MDB2-Driver-mysqliUna volta completata l’installazione di httpd e PHP, avvia il servizio httpd e aggiungilo all’avvio automatico.
systemctl start httpd
systemctl enable httpdSuccessivamente, vai alla directory ‘/var/www/html’ e scarica il codice sorgente di poweradmin.
cd /var/www/html/
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgzEstrai il file compresso di poweradmin e rinominalo.
tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7/ poweradmin/Dopo di che, aggiungi i protocolli HTTP e HTTPS al firewall.
firewall-cmd --add-service={http,https} --permanent
firewall-cmd --reloadE siamo pronti per la post-installazione di poweradmin.
Passo 5 - Post-Installazione di Poweradmin
Apri il tuo browser web e digita l’indirizzo IP del server più il percorso URL /poweradmin/install/ per l’installazione. Il mio è:
http://10.9.9.10/poweradmin/install/
Scegli la tua lingua preferita e fai clic sul pulsante ‘Vai al Passo 2’.
Ora fai semplicemente clic sul pulsante ‘Vai al Passo 3’.
E ti verrà mostrata la configurazione del database. Digita i dettagli del database PowerDNS che abbiamo creato e la password di amministrazione per PowerDNS.

Fai clic sul pulsante ‘Vai al Passo 4’.
Dopo di che, dovrai creare un nuovo utente con privilegi limitati. Digita i dettagli come segue e cambia l’utente, la password, ecc. con i tuoi.
Ora fai clic sul pulsante ‘Vai al Passo 5’.
E ti verrà mostrata la pagina qui sotto.
Apri di nuovo il tuo terminale server, accedi con l’utente root e la password. Quindi esegui le query MySQL come nella pagina.
mysql -u root -p
PASSWORD
GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'hakase'@'localhost'
IDENTIFIED BY 'hakase-labs123';
Ora torna al browser web e fai clic sul pulsante ‘Vai al Passo 6’.
E ti verrà mostrata la pagina qui sotto.

L’installer non è riuscito a creare una nuova configurazione ‘../inc/config.inc.php’. Quindi, dobbiamo crearla manualmente.
Torna al terminale server, vai alla directory ‘/var/www/html/poweradmin’ e crea un nuovo file di configurazione ‘inc/config.inc.php’.
cd /var/www/html/poweradmin
vim inc/config.inc.phpOra incolla lo script PHP nella pagina in esso.
Salva e chiudi, poi torna al browser e fai clic sul pulsante.

E l’installazione è completa.
Opzionalmente:
Se desideri supportare gli URL utilizzati da altri fornitori dinamici, copia il file htaccess.
cd /var/www/html/poweradmin
cp install/htaccess.dist .htaccessDopo di che, DEVI rimuovere la directory ‘install’.
rm -rf /var/www/html/poweradmin/installTorna di nuovo al tuo browser web e accedi al dashboard di Poweradmin utilizzando l’URL qui sotto.
Accedi con l’utente predefinito ‘admin’ e la password, fai clic sul pulsante ‘Vai’.
E come risultato, ti verrà mostrato il dashboard di Poweradmin e l’installazione è terminata.
Passo 6 - Creare una zona di esempio e record DNS
A questo punto, testeremo l’installazione di PowerDNS e Poweradmin creando una nuova zona DNS per un dominio chiamato ‘emma.io’.
Nel dashboard di Poweradmin, fai clic sul menu ‘Aggiungi zona master’.
Imposta il nome della zona con il nome di dominio ‘emaa.io’ e fai clic sul pulsante ‘Aggiungi zona’.
Fai clic sul menu ‘Elenca zone’ per ottenere tutte le zone disponibili. E fai clic sul pulsante ‘modifica’ per la zona ‘emma.io’.
Fai clic sul menu ‘Elenca zone’ per ottenere tutte le zone disponibili. E fai clic sul pulsante ‘modifica’ per la zona ‘emma.io’.

Ora fai clic sul pulsante ‘Aggiungi record’ e abbiamo aggiunto con successo la zona DNS e il record DNS per il dominio chiamato ‘emma.io’.
Successivamente, testeremo il dominio ‘emma.io’ utilizzando un comando utility DNS ‘dig’.
Controlla il nameserver o il record ns del dominio ‘emma.io’.
dig NS emma.io @10.9.9.10
Controlla il record DNS A del dominio ‘emma.io’.
dig A emma.io @10.9.9.10
E ti verrà mostrato che il dominio ‘emma.io’ ha un nameserver dal nostro server DNS ‘ns1.hakase-labs.io’, e l’’A’ di quel nome di dominio corrisponde alla nostra configurazione in cima con l’indirizzo IP del server ‘10.9.9.11’.
Infine, l’installazione e la configurazione di PowerDNS e Poweradmin su CentOS 7 sono state completate con successo.
Riferimenti
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.