No momento, você está visualizando PowerDNS: transforma o teu PC com Linux num servidor DNS completo

PowerDNS: transforma o teu PC com Linux num servidor DNS completo

Já imaginaste transformar o teu computador com Linux num servidor DNS poderoso e totalmente sob o teu controlo? Com o PowerDNS, isso é possível — e até mais simples do que parece!

Neste artigo vais aprender a instalar e configurar o PowerDNS com MariaDB num PC com Linux. Pronto para transformar a tua rede?

O que é o PowerDNS?

O PowerDNS é um servidor DNS open-source que oferece flexibilidade, desempenho e segurança, sendo uma excelente alternativa a soluções mais tradicionais como o BIND.

É amplamente utilizado tanto por profissionais de redes como por utilizadores que querem aprender a gerir nomes de domínio localmente ou na internet.


Principais vantagens do PowerDNS

  • Integração com bases de dados como MariaDB e PostgreSQL

  • Suporte a DNSSEC (mais segurança)

  • Interface gráfica opcional (PowerDNS Admin)

  • Suporte para modo autoritativo e recursivo

  • Alta performance com multithreading


Tipos de registos DNS (Resource Records)

TipoDescrição
AAponta para um IP v4
AAAAAponta para um IP v6
CNAMENome alternativo (alias)
MXServidores de email
NSDefine os nameservers
PTRInverso: IP para nome
SOAInformação principal da zona
SRVDefine serviços (útil em VoIP, por exemplo)
TXTInformações em formato texto

Como instalar e configurar o PowerDNS no Linux

Utilizámos o Rocky Linux, mas podes adaptar para Ubuntu, Debian, Fedora, etc.


1. Instala o MariaDB

sudo dnf install -y mariadb-server mariadb
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

 

2. Cria a base de dados

sudo mysql -u root -p

 

Depois:

CREATE DATABASE powerdns;
GRANT ALL ON powerdns.* TO 'pdns'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

 

3. Importa o esquema da base de dados

wget https://raw.githubusercontent.com/PowerDNS/pdns/master/modules/gsql/backend-schema.mysql.sql
mysql -u pdns -p powerdns < backend-schema.mysql.sql

 

4. Instala o PowerDNS e backend MySQL

sudo dnf install -y epel-release
sudo dnf install -y pdns pdns-backend-mysql

 

5. Configura o PowerDNS

sudo nano /etc/pdns/pdns.conf

 

Adiciona:

launch=gmysql
gmysql-host=127.0.0.1
gmysql-dbname=powerdns
gmysql-user=pdns
gmysql-password=password

 

Guarda e reinicia:

sudo systemctl enable --now pdns
sudo systemctl restart pdns

 

6. Define servidor recursivo

sudo sed -i 's/# recursor=/recursor=8.8.8.8/g' /etc/pdns/pdns.conf
sudo service pdns restart

 

Testa com:

nslookup iminformatica.pt localhost

 

Configurar zona DNS no PowerDNS

sudo mkdir /etc/powerdns/bind
sudo nano /etc/powerdns/bindbackend.conf

 

Adiciona:

zone "iminformatica.pt" {
type master;
file "/etc/powerdns/bind/iminformatica.pt.zone";
allow-update { none; };
};

 

Cria o ficheiro da zona:

sudo nano /etc/powerdns/bind/iminformatica.pt.zone

 

Exemplo:

$ORIGIN iminformatica.pt
$TTL 1h
@ IN SOA ns.iminformatica.pt hostmaster.iminformatica.pt (
1 ; serial
1d ; refresh
2h ; retry
4w ; expire
1h ; minimum
)
IN NS ns
IN A 192.168.1.97
ns IN A 192.168.1.97

 

Adiciona nomes aos dispositivos da rede

gwmeo IN A 192.168.1.254
router IN CNAME gwmeo

Assim, podes aceder ao teu router local escrevendo gwmeo ou router.


Se quiseres aumentar a segurança, o PowerDNS também suporta DNSSEC, protegendo os teus domínios contra falsificações.

Se queres uma solução leve, rápida e altamente configurável para gerir DNS no Linux, o PowerDNS é a ferramenta ideal. Além disso, ajuda-te a aprender de forma prática como funciona a infraestrutura de nomes da internet.

Deixe um comentário