PowerDNS · 5 min read · Oct 01, 2025

Instalando PowerDNS (Com Backend MySQL) E Poweradmin No Debian Etch

Instalando PowerDNS (Com Backend MySQL) E Poweradmin No Debian Etch

Versão 1.0
Autor: Falko Timme

Este artigo mostra como você pode instalar o servidor de nomes PowerDNS (com backend MySQL) e o painel de controle Poweradmin para PowerDNS em um sistema Debian Etch. O PowerDNS é um servidor de nomes autoritativo de alto desempenho - na configuração descrita aqui, ele lerá os registros DNS de um banco de dados MySQL (semelhante ao MyDNS), embora outros backends, como PostgreSQL, também sejam suportados. O Poweradmin é um painel de controle baseado na web para PowerDNS.

Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

Neste exemplo, estou usando um host Debian Etch com o nome do host server1.example.com e o endereço IP 192.168.0.100, configurado de acordo com os primeiros 5 capítulos deste tutorial: A Configuração Perfeita - Debian Etch (Debian 4.0).

Vou configurar apenas um servidor PowerDNS neste exemplo (um mestre); adicionar escravos do PowerDNS pode ser facilmente alcançado usando a replicação do banco de dados MySQL do mestre para os escravos, portanto, nenhuma transferência de zona é necessária (isso novamente é semelhante ao MyDNS). A replicação do banco de dados MySQL pode ser configurada de acordo com este tutorial: Como Configurar Replicação de Banco de Dados No MySQL (o PowerDNS também suporta transferências de zona nativas (para cenários onde você não pode usar replicação MySQL) - veja http://downloads.powerdns.com/documentation/html/replication.html).

2 Instalando MySQL

Para instalar o MySQL, executamos

apt-get install mysql-server mysql-client

Queremos que o MySQL escute em todas as interfaces (isso é importante para a replicação do banco de dados MySQL!), não apenas no localhost, portanto, editamos /etc/mysql/my.cnf e comentamos a linha bind-address = 127.0.0.1:

vi /etc/mysql/my.cnf

| [...] #bind-address = 127.0.0.1 [...] |

Então reiniciamos o MySQL:

/etc/init.d/mysql restart

Agora verifique se a rede está habilitada. Execute

netstat -tap | grep mysql

A saída deve ser parecida com isto:

server1:~# netstat -tap | grep mysql
tcp        0      0 :mysql                 :*                     LISTEN     3031/mysqld
server1:~#

Execute

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

para definir uma senha para o usuário root (caso contrário, qualquer um pode acessar seu banco de dados MySQL!) (substitua yourrootsqlpassword por uma senha de sua escolha).

3 Instalando PowerDNS

Para instalar o PowerDNS, executamos

apt-get install pdns-server pdns-backend-mysql

A configuração do PowerDNS está localizada no diretório /etc/powerdns - vou chegar a isso em um momento.

Agora nos conectamos ao MySQL:

mysql -u root -p

Digite sua senha de root do MySQL, e você deve estar no shell do MySQL. No shell do MySQL, criamos um banco de dados para o PowerDNS:

CREATE DATABASE powerdns;

Em seguida, criamos um usuário de banco de dados (powerdns) para o PowerDNS:

GRANT ALL ON powerdns. TO ‘power_admin’@’localhost’ IDENTIFIED BY ‘power_admin_password’;
GRANT ALL ON powerdns.
TO ‘power_admin’@’localhost.localdomain’ IDENTIFIED BY ‘power_admin_password’;
FLUSH PRIVILEGES;

(Substitua power_admin_password por uma senha de sua escolha.)

Agora criamos as tabelas necessárias para o PowerDNS…

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)
);

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(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);

CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);

CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);

… e finalmente saia do shell do MySQL:

quit;

Agora devemos configurar o PowerDNS para que ele use o backend MySQL:

vi /etc/powerdns/pdns.conf

Adicione a linha launch=gmysql ao pdns.conf:

| [...] ################################# # launch Quais backends lançar e a ordem para consultá-los # # launch= launch=gmysql [...] |

Então abra /etc/powerdns/pdns.d/pdns.local e faça com que fique assim:

vi /etc/powerdns/pdns.d/pdns.local    

| # Aqui vêm as alterações locais que o usuário fez, como configuração dos # vários backends que existem. gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns |

Então reinicie o pdns:

/etc/init.d/pdns restart

É isso, o PowerDNS agora está pronto para ser usado. Para saber mais sobre ele, consulte sua documentação: http://downloads.powerdns.com/documentation/html/index.html

4 Instalando Poweradmin

Agora vamos instalar o Poweradmin, um painel de controle baseado na web para PowerDNS. O Poweradmin é escrito em PHP, então devemos instalar um servidor web (estou usando o Apache2 neste exemplo) e PHP:

apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc gettext 

Continuar instalando libc-client sem suporte a Maildir? <– Sim

O Poweradmin também requer os seguintes dois pacotes PEAR:

pear install DB
pear install pear/MDB2#mysql

Agora todos os pré-requisitos para o Poweradmin estão instalados, e podemos começar com a instalação do Poweradmin (vou instalá-lo em um subdiretório de /var/www - /var/www é a raiz do documento do site padrão do Apache no Debian; se você criou um vhost com uma raiz de documento diferente, ajuste os caminhos).

Vá para https://www.poweradmin.org/trac/wiki/GettingPoweradmin e baixe o pacote mais recente do Poweradmin, por exemplo, da seguinte forma:

cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgz

Então instale-o no diretório /var/www/poweradmin da seguinte forma:

tar xvfz poweradmin-2.1.2.tgz
mv poweradmin-2.1.2 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/

Agora abra um navegador e inicie o instalador baseado na web do Poweradmin ( http://server1.example.com/poweradmin/install ou http://192.168.0.100/poweradmin/install).

Selecione seu idioma (Inglês ou Holandês):

Clique no botão Ir para o passo 3 para prosseguir:

Agora preencha os detalhes do seu banco de dados. É importante que você preencha os detalhes para o usuário root do MySQL, não o usuário MySQL powerdns que criamos anteriormente! Também forneça uma senha para o usuário admin para a interface web do Poweradmin (essa é a senha que o usuário admin usará para fazer login no Poweradmin mais tarde):

Na próxima página, preencha os detalhes para o usuário MySQL power_admin que criamos no capítulo 3. Também preencha os dois servidores de nomes padrão que serão usados em suas zonas, a menos que você forneça servidores de nomes diferentes ao criar uma zona (tipicamente esses são os nomes do sistema atual e do servidor escravo (para o qual você pode configurar a replicação MySQL, veja minhas notas preliminares no capítulo 1)):

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.