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-clientQueremos 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 restartAgora verifique se a rede está habilitada. Execute
netstat -tap | grep mysqlA 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-mysqlA 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 -pDigite 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.confAdicione 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)):

Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.