PowerDNS è un server dei nomi autorevole potente e ad alte prestazioni scritto in C++. È un'alternativa a BIND DNS e utilizza MariaDB, MySQL, Oracle e MariaDB per archiviare i record. PowerDNS funziona sulla maggior parte dei sistemi operativi basati su UNIX e viene utilizzato per ospitare domini utilizzando DNSSEC. Utilizza un programma separato chiamato PowerDNS Recursor come server DNS di risoluzione. PowerDNS-Admin è un'interfaccia Web avanzata per PowerDNS utilizzata per la gestione di zone e record tramite un browser Web.
In questo tutorial, ti mostreremo come installare PowerDNS e PowerAdmin con il backend MariaDB su CentOS 8.
Prerequisiti
- Un nuovo CentOS 8 VPS sulla piattaforma Atlantic.Net Cloud
- Una password di root configurata sul tuo server
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo CentOS 8 come sistema operativo con almeno 2 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al server CentOS 8, esegui il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.
dnf update -y
Fase 2 – Installa il server LAMP
Innanzitutto, installa il server Apache e MariaDB con il seguente comando:
dnf install httpd mariadb-server -y
Una volta installati, avvia i servizi MariaDB e Apache e abilitali all'avvio al riavvio del sistema con il seguente comando:
systemctl start httpd systemctl start mariadb systemctl enable httpd systemctl enable mariadb
Successivamente, dovrai installare l'ultima versione di PHP nel tuo sistema. Per impostazione predefinita, l'ultima versione di PHP non è disponibile in CentOS 8, quindi dovrai aggiungere il repository Remi nel tuo sistema. Puoi aggiungerlo con il seguente comando:
dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Quindi, disabilita il modulo PHP predefinito e abilita il modulo PHP Remi con il seguente comando:
dnf module reset php dnf module enable php:remi-7.4
Quindi, installa PHP e altri moduli richiesti con il seguente comando:
dnf install 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 php-pear -y
Una volta installati tutti i pacchetti, puoi procedere al passaggio successivo.
systemctl start php-fpm systemctl enable php-fpm
Fase 3:configurare il database MariaDB
Successivamente, dovrai creare un database e un utente per PowerDNS. Innanzitutto, accedi a MariaDB con il seguente comando:
mysql
Una volta effettuato l'accesso, creare un database e un utente con il seguente comando:
create database powerdnsdb; create user 'powerdns' identified by 'password';
Quindi, concedi tutti i privilegi a powerdnsdb con il seguente comando:
grant all privileges on powerdnsdb.* to 'powerdns'@'localhost' identified by 'password';
Quindi, svuota i privilegi con il seguente comando:
flush privileges;
Quindi, cambia il database in powerdnsdb e crea strutture di tabelle con il seguente comando:
use powerdnsdb; 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 name_index ON domains(name); 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);
Ora puoi elencare tutte le tabelle con il seguente comando:
show tables;
Dovresti vedere il seguente output:
Quindi, esci da MariaDB con il seguente comando:
exit;
Fase 4 – Installa PowerDNS
Prima di installare PowerDNS, dovrai disabilitare il servizio systemd-resolve. Puoi disabilitarlo con il seguente comando:
systemctl disable systemd-resolved systemctl stop systemd-resolved
Quindi, aggiungi la nuova voce del server dei nomi con il seguente comando:
ls -lh /etc/resolv.conf echo "nameserver 8.8.8.8" | tee /etc/resolv.conf
Infine, installa PowerDNS con altri pacchetti richiesti usando il comando seguente:
dnf install pdns pdns-backend-mysql bind-utils -y
Dopo aver installato PowerDNS, dovrai configurare PowerDNS per utilizzare MySQL come back-end invece di BIND. Puoi farlo modificando il file /etc/pdns/pdns.conf:
nano /etc/pdns/pdns.conf
Rimuovi la riga launch=bind e aggiungi le seguenti righe:
launch=gmysql gmysql-host=localhost gmysql-user=powerdns gmysql-password=password gmysql-dbname=powerdnsdb
Salva e chiudi il file, quindi avvia il servizio PowerDNS e abilita l'avvio all'avvio.
systemctl start pdns systemctl enable pdns
Passaggio 5:installazione di PowerAdmin
Innanzitutto, scarica l'ultima versione di PowerAdmin con il comando seguente:
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
Una volta scaricato, estrai il file scaricato con il seguente comando:
tar xvf poweradmin-2.1.7.tgz
Quindi, sposta la directory estratta nella directory radice di Apache:
mv poweradmin-2.1.7 /var/www/html/poweradmin/
Quindi, cambia la proprietà della directory poweradmin in apache con il comando seguente:
chown -R apache:apache /var/www/html/poweradmin
Passaggio 6:accedere all'interfaccia Web di PowerAdmin
Ora apri il tuo browser web e accedi all'interfaccia web di PowerAdmin usando l'URL http://your-server-ip/poweradmin/install. Dovresti vedere la seguente pagina:
Seleziona la lingua desiderata e fai clic su "Vai al passaggio 2. ” Dovresti vedere la seguente pagina:
Ora, fai clic su "Vai al passaggio 3. ” Dovresti vedere la seguente pagina:
Fornisci i dettagli del database PowerDNS e la password di amministratore e fai clic su "Vai al passaggio 4. ” Dovresti vedere la seguente pagina:
Fornisci l'utente PowerDNS, la password, l'host e il server dei nomi e fai clic su "Vai al passaggio 5. ” Dovresti vedere la seguente pagina:
Ora apri il tuo terminale, accedi a MySQL e concedi al nuovo utente tutte le autorizzazioni richieste con il seguente comando:
GRANT SELECT, INSERT, UPDATE, DELETE ON powerdnsdb.* TO 'user1'@'localhost' IDENTIFIED BY 'password';
Quindi, fai clic su "Vai al passaggio 6. ” Dovresti vedere la seguente pagina:
Ora, crea un nuovo file chiamato config.inc.php come mostrato di seguito:
nano /var/www/html/poweradmin/inc/config.inc.php
Incolla il contenuto dalla pagina web:
<?php $db_host = 'localhost'; $db_user = 'user1'; $db_pass = 'password'; $db_name = 'powerdnsdb'; $db_type = 'mysql'; $db_layer = 'PDO'; $session_key = 'MMK})04xlEHD[UpE1{^[email protected]+jlSIYilM3jRLI#NIJJac#'; $iface_lang = 'en_EN'; $dns_hostmaster = 'power.example.com'; $dns_ns1 = 'ns1.example.com'; $dns_ns2 = 'ns2.example.com';
Salva e chiudi il file, quindi fai clic su "Vai al passaggio 7. ” Una volta completata l'installazione, dovresti vedere la seguente pagina:
Quindi, apri il tuo terminale e rimuovi la directory di installazione con il seguente comando:
rm -rf /var/www/html/poweradmin/install
Fare clic su Poweradmin . Dovresti vedere la pagina di accesso di Poweradmin:
Fornisci il nome utente e la password dell'amministratore che hai creato in precedenza e fai clic su Vai pulsante. Dovresti vedere la dashboard di Poweradmin nella pagina seguente:
Conclusione
Congratulazioni! Hai installato correttamente PowerDNS e Poweradmin su CentOS 8. Ora puoi facilmente creare e gestire una nuova zona e registrare tramite l'interfaccia web di Poweradmin. Per ulteriori informazioni, visitare la documentazione ufficiale di PowerDNS. Inizia oggi stesso con PowerDNS e Poweradmin sull'hosting VPS da Atlantic.Net!