In questo tutorial, ti mostreremo come installare e configurare PowerDNS sul server CentOS 7. Per chi non lo sapesse, PowerDNS è un server DNS basato su MySQL, scritto in C++ e con licenza GPL.PowerDNS può essere gestito tramite un'interfaccia Web (PowerAdmin).A differenza di Bind, PowerDNS può essere configurato utilizzando una moltitudine di backend come Bind Zone Files o vari Database.
Questo articolo presuppone che tu abbia almeno una conoscenza di base di Linux, sappia come usare la shell e, soprattutto, che ospiti il tuo sito sul tuo VPS. L'installazione è abbastanza semplice e presuppone che tu sono in esecuzione nell'account root, in caso contrario potrebbe essere necessario aggiungere 'sudo
' ai comandi per ottenere i privilegi di root. Ti mostrerò l'installazione passo passo di PowerDNS su un server CentOS 7.
Prerequisiti
- Un server che esegue uno dei seguenti sistemi operativi:CentOS 7.
- Si consiglia di utilizzare una nuova installazione del sistema operativo per prevenire potenziali problemi.
- Accesso SSH al server (o semplicemente apri Terminal se sei su un desktop).
- Un
non-root sudo user
o accedere all'root user
. Ti consigliamo di agire comenon-root sudo user
, tuttavia, poiché puoi danneggiare il tuo sistema se non stai attento quando agisci come root.
Installa PowerDNS su CentOS 7
Passaggio 1. Innanzitutto, iniziamo assicurandoci che il tuo sistema sia aggiornato.
yum clean all yum -y update
Passaggio 2. Installazione di PowerDNS e backend.
Per prima cosa, devi abilitare il repository EPEL e tutti i pacchetti richiesti sul tuo sistema:
yum install epel-release yum install bind-utils pdns pdns-recursor pdns-backend-mysql mariadb mariadb-server
Abilita PowerDNS all'avvio e avvia server PowerDNS:
systemctl enable mariadb systemctl enable pdns systemctl enable pdns-recursor
Passaggio 3. Configurazione di MariaDB.
Per impostazione predefinita, MariaDB non è protetto. Puoi proteggere MariaDB usando mysql_secure_installation
sceneggiatura. dovresti leggere attentamente e sotto ogni passaggio che imposterà una password di root, rimuoverà gli utenti anonimi, non consentirà l'accesso root remoto e rimuoverà il database di test e l'accesso per proteggere MariaDB.
mysql_secure_installation
Passaggio 4. Crea un database PowerDNS e un utente in MariaDB.
Accedi come root MariaDB e crea un nuovo database e tabelle:
$ mysql -uroot -p create user 'powerdns'@'localhost' identified by 'password'; grant all privileges on powerdns.* to 'powerdns'@'localhost'; flush privileges; 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 INT 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);
Passaggio 5. Configura PowerDNS.
Apri il `/etc/pdns/pdns.conf
` file e aggiungi le seguenti righe:
allow-axfr-ips=<IPs allowed axfr> allow-recursion=<IPs allowed recursion> launch=gmysql gmysql-host=127.0.0.1 gmysql-user=<yourdbuser> gmysql-password=<yourdbpassword> gmysql-dbname=powerdns local-address=<yourserverIPs> local-port=53 master=yes recursor=127.0.0.1:5353 setgid=pdns setuid=pdns webserver=yes webserver-address=<bindipaddress> webserver-password=<yourpassword> webserver-port=8081
Infine, riavvia il servizio Power DNS:
systemctl restart pdns.service systemctl enable pdns.service
Passaggio 6. Configura il ricorsivo.
Apri il `/etc/pdns-recursor/recursor.conf
` file e aggiungi le seguenti righe:
setuid=pdns-recursor setgid=pdns-recursor allow-from=127.0.0.0/8 local-address=127.0.0.1 local-port=5353
Avvia il servizio Recursor:
systemctl restart pdns-recursor
Test Recursor:
host ping.idroot.us 127.0.0.1 Using domain server: Name: 127.0.0.1 Address: 127.0.0.1#53 Aliases: ping.idroot.us has address 194.109.46.8 ping.idroot.us has IPv6 address 2001:888:0:25:169:109:21:66
Congratulazioni! Hai installato correttamente PowerDNS. Grazie per aver utilizzato questo tutorial per l'installazione di PowerDNS sul sistema CentOS 7. Per ulteriore aiuto o informazioni utili, ti consigliamo di controllare il sito Web ufficiale di PowerDNS.