GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare PowerDNS e Poweradmin su CentOS 7

PowerDNS (pdns) è un server DNS open source scritto in C++ e rilasciato sotto licenza GPL. È diventata una buona alternativa al tradizionale server DNS Bind, progettato con prestazioni migliori e requisiti di memoria ridotti. PowerDNS fornisce due prodotti, il server autorevole e il ricorrente. Il server PowerDNS Authoritative può essere configurato tramite i diversi backend, inclusi i file della zona Bind semplici, RDBMS come MySQL, PostgreSQL, SQLite3 o LDAP.

In questo tutorial, ti mostrerò come installare e configurare un server PowerDNS Authoritative con server di database MariaDB come backend e utilizzare Poweradmin per una facile gestione del DNS.

Prerequisiti

  • Server CentOS 7
  • Privilegi di root

Cosa faremo:

  1. Installa i repository EPEL e Remi
  2. Installa e configura MariaDB
  3. Installa PowerDNS
  4. Installa Poweradmin
  5. Dopo l'installazione di Poweradmin
  6. Crea zona campione

Passaggio 1:installazione dei repository EPEL e Remi

Prima di tutto, dobbiamo installare le dipendenze per l'installazione di PowerDNS. Installeremo il repository EPEL e REMI per l'installazione di PHP 7.2.

Installa il repository EPEL e PHP Remi utilizzando i seguenti comandi.

yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Una volta che questi repository sono stati aggiunti al sistema, installa il pacchetto 'yum-utils'.

yum -y install yum-utils

E abilita il repository Remi PHP 7.2 usando il seguente comando.

yum-config-manager --enable remi-php72

Fase 2 - Installa e configura MariaDB

Il server PowerDNS Authoritative supporta un backend diverso, incluso il server di database MySQL/MariaDB. I termini di "backend" sono un datastore che il server consulterà che contiene record DNS (e alcuni metadati). E per questa guida utilizzeremo MariaDB come backend.

Installa MariaDB usando il seguente comando yum.

yum -y install mariadb mariadb-server

Una volta completata l'installazione, avvia il servizio MariaDB e aggiungilo al tempo di avvio di avvio.

systemctl start mariadb
systemctl enable mariadb

Successivamente, configureremo la password di root per MariaDB utilizzando lo strumento interattivo chiamato 'mysql_secure_installation'.

Esegui il comando seguente.

mysql_secure_installation

E ti verrà richiesto di configurare la password di root del server di database. Digita 'Y' per impostare la password di root e digita una password complessa.

Set root password? [Y/n] Y
New password:
Re-enter new password:

Per gli altri, digita "Y" su 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] Y

Di conseguenza, è stato installato il server del database MariaDB e impostato la password di root per l'autenticazione.

Successivamente, creeremo un nuovo database e un nuovo utente per l'installazione di PowerDNS. Accedi alla shell MySQL con l'utente root e la tua password.

Esegui il comando MySQL di seguito.

mysql -u root -p
PASSWORD

Ora 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 [email protected] identified by 'pdnspassword2018';
flush privileges;

Successivamente, crea le strutture delle tabelle per il database PowerDNS eseguendo le seguenti query MySQL di seguito.

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, è stato creato il database MySQL/MariaDB e un utente per l'installazione di PowerDNS.

Passaggio 3:installazione di PowerDNS

Installa PowerDNS e tutti i pacchetti necessari utilizzando il comando seguente.

yum -y install pdns pdns-backend-mysql bind-utils

Dopo aver installato i pacchetti PowerDNS, vai alla directory '/etc/pdns/' e modifica il file di configurazione 'pdns.conf' usando vim editor.

cd /etc/pdns/
vim pdns.conf

Per impostazione predefinita, PowerDNS utilizza 'bind' come back-end. Quindi, digita il commento "#" nella parte anteriore della configurazione "launch=bind" e incolla la configurazione del back-end MySQL come di seguito.

#launch=bind

launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=pdnspassword2018
gmysql-dbname=powerdns

Salva e chiudi.

Ora avvia il servizio pdns e aggiungilo al tempo di avvio di avvio.

systemctl start pdns
systemctl enable pdns

Successivamente, aggiungi il servizio DNS al firewall.

firewall-cmd --add-service=dns --permanent
firewall-cmd --reload

E il servizio PowerDNS è attivo e funzionante, verifica utilizzando il comando seguente.

netstat -tap | grep pdns
netstat -tulpn | grep 53
dig @10.9.9.10

Di conseguenza, otterrai che il servizio pdns sia attivo e funzionante sulla porta 53 e otterrai la risposta dal server PowerDNS.

Fase 4:installa Poweradmin

In questo passaggio installeremo la gestione DNS per PowerDNS denominata "Poweradmin". È un'applicazione Web basata su PHP, quindi è necessario installare PHP e un server Web per eseguire l'applicazione.

Installa un server web httpd e pacchetti PHP usando il comando seguente.

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 gettext

Dopo l'installazione, è necessario installare ulteriori pacchetti PHP Pear. Esegui il comando seguente.

yum -y install php-pear-DB php-pear-MDB2-Driver-mysqli

Una volta completata l'installazione di httpd e PHP, avvia il servizio httpd e aggiungilo al tempo di avvio di avvio.

systemctl start httpd
systemctl enable httpd

Quindi, 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.tgz

Estrarre il file compresso di poweradmin e rinominarlo.

tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7/ poweradmin/

Successivamente, aggiungi i protocolli HTTP e HTTPS al firewall.

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --reload

E siamo pronti per la post-installazione di Poweradmin.

Passaggio 5:post-installazione di Poweradmin

Apri il browser web e digita l'indirizzo IP del server più l'URL del percorso /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 passaggio 2".

Ora fai clic sul pulsante "Vai al passaggio 3".

E verrai visualizzato per la configurazione del database. Digita i dettagli del database PowerDNS che abbiamo creato e la password di amministratore per PowerDNS.

Fai clic sul pulsante "Vai al passaggio 4".

Successivamente, sarà necessario creare un nuovo utente con privilegi limitati. Digita i dettagli come segue e cambia utente, password, ecc. con il tuo.

Ora fai clic sul pulsante "Vai al passaggio 5".

E ti verrà mostrata la pagina come di seguito.

Riapri il tuo terminal 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 passaggio 6".

E ti verrà mostrata la pagina come di seguito.

Il programma di installazione non è stato in grado di creare una nuova configurazione '../inc/config.inc.php'. Quindi, dobbiamo crearlo manualmente.

Torna al server terminal, 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.php

Ora incolla lo script PHP sulla pagina al suo interno.

<?php

$db_host                = 'localhost';
$db_user                = 'hakase';
$db_pass                = 'hakase-labs123';
$db_name                = 'powerdns';
$db_type                = 'mysql';
$db_layer               = 'PDO';

$session_key            = '[email protected]=uetwJeD2#uApgO)2Ekj+S#oN1Khhoj';

$iface_lang             = 'en_EN';

$dns_hostmaster         = 'server.hakase-labs.io';
$dns_ns1                = 'ns1.hakase-labs.io';
$dns_ns2                = 'ns2.hakase-labs.io';

Salva e chiudi, quindi torna al browser e fai clic sul pulsante.

E l'installazione è completa.

Facoltativamente:

Se vuoi supportare gli URL utilizzati da altri provider dinamici, copia il file htaccess.

cd /var/www/html/poweradmin
cp install/htaccess.dist .htaccess

Dopodiché, DEVI rimuovere la directory 'install'.

rm -rf /var/www/html/poweradmin/install

Torna di nuovo al tuo browser web e accedi alla dashboard di Poweradmin utilizzando l'URL come di seguito.

http://10.9.9.10/poweradmin/

Accedi con l'utente predefinito 'admin' e la password, fai clic sul pulsante 'Vai'.

Di conseguenza, ti verrà mostrata la dashboard di Poweradmin e l'installazione è terminata.

Passaggio 6:crea 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'.

Nella dashboard di Poweradmin, fai clic sul menu "Aggiungi zona principale".

Imposta il nome della zona con il nome di dominio 'emaa.io' e fai clic sul pulsante 'Aggiungi zona'.

Fare clic sul menu "Elenco zone" per ottenere tutte le zone disponibili. E fai clic sul pulsante 'modifica' per la zona 'emma.io'.

Fare clic sul menu "Elenco 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 aggiungiamo correttamente la zona DNS e il record DNS per il dominio denominato "emma.io".

Successivamente, testeremo il dominio "emma.io" utilizzando un comando di utilità DNS "dig".

Controlla il server dei nomi o il record ns del dominio 'emma.io'.

dig NS emma.io @10.9.9.10

Controlla il record A DNS del dominio 'emma.io'.

dig A emma.io @10.9.9.10

E ti verrà mostrato il dominio "emma.io" ha un nameserver dal nostro server DNS "ns1.hakase-labs.io" e la "A" di quel nome di dominio corrisponde alla nostra configurazione in alto 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.


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare dig su CentOS 7 e 8

  3. Come installare Node.js e NPM su CentOS 7

  4. Come installare Node.js e NPM su CentOS

  5. Installa PowerDNS e Poweradmin su un VPS CentOS 7

Come installare e configurare Samba su CentOS 8

Come installare e utilizzare Terraform su CentOS 8

Come installare Poweradmin su CentOS 6

Come installare PowerDNS su CentOS 6

Come installare PowerDNS su CentOS 7

Come installare PowerDNS e PowerAdmin su CentOS 8