PowerDNS · 8 min read · Oct 01, 2025
Instalando PowerDNS (Com Backend MySQL) E Poweradmin No Debian Lenny
Instalando PowerDNS (Com Backend MySQL) E Poweradmin No Debian Lenny
Versão 1.0
Autor: Falko Timme
Siga-me no Twitter
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 Lenny. 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 Lenny com o nome do host server1.example.com e o endereço IP 192.168.0.100, configurado de acordo com os primeiros seis capítulos deste tutorial: O Servidor Perfeito - Debian Lenny (Debian 5.0) [ISPConfig 2].
Vou configurar apenas um servidor PowerDNS neste exemplo (um mestre); adicionar PowerDNS escravo(s) pode ser facilmente alcançado usando replicação de banco de dados MySQL do mestre para o(s) escravo(s), portanto, nenhuma transferência de zona é necessária (isso novamente é semelhante ao MyDNS). A replicação de banco de dados MySQL pode ser configurada de acordo com este tutorial: Como Configurar Replicação de Banco de Dados No MySQL (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
aptitude install mysql-server mysql-clientVocê será solicitado a fornecer uma senha para o usuário root do MySQL - essa senha é válida para o usuário root@localhost, bem como para [email protected], então não precisamos especificar uma senha root do MySQL manualmente mais tarde:
Nova senha para o usuário “root” do MySQL: <– sua senha root sql
Repita a senha para o usuário “root” do MySQL: <– sua senha root sql
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 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:~#3 Instalando PowerDNS
Para instalar o PowerDNS, executamos
aptitude 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 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 pelo 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 Which backends to launch and order to query them in # # launch= launch=gmysql [...] |
Então abra /etc/powerdns/pdns.d/pdns.local e faça com que fique da seguinte forma:
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:
aptitude 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 gettextO Poweradmin também requer os seguintes dois pacotes PEAR:
pear install DB
pear install pear/MDB2#mysqlAgora 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.4.tgzEm seguida, instale-o no diretório /var/www/poweradmin da seguinte forma:
tar xvfz poweradmin-2.1.4.tgz
mv poweradmin-2.1.4 /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/index.php ou http://192.168.0.100/poweradmin/install/index.php).
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, o instalador pede que você execute uma consulta MySQL. Não precisamos fazer isso porque já fizemos algo semelhante no capítulo 3 (as duas instruções GRANT) então estamos prontos. Clique em Ir para o passo 6:

Clique em Ir para o passo 7:

A instalação agora está concluída...

... mas por razões de segurança, devemos excluir o diretório de instalação:
rm -fr /var/www/poweradmin/install/
Agora você pode ir para http://server1.example.com/poweradmin ou http://192.168.0.100/poweradmin e fazer login com o nome de usuário admin e a senha que você criou durante a instalação:

Assim é como a interface web do Poweradmin se parece:

Para criar uma zona, vá para Adicionar zona mestre e preencha o nome do domínio (por exemplo, example.com). Você já pode preencher os endereços IP para o registro A www ("servidor web") e o registro MX ("servidor de e-mail") para essa zona. Se você deixar a caixa Criar zona sem aplicar o modelo de registros desmarcada, o Poweradmin criará automaticamente alguns registros NS, A (por exemplo, www) e MX para essa zona:

Vá para Listar zonas depois. Você deve agora ver a nova zona lá, e ela já tem oito registros. Clique no ícone de editar para ver esses oito registros:

Estes são os registros que são criados automaticamente, a menos que você marque a caixa Criar zona sem aplicar o modelo de registros ao criar uma zona. Você agora pode editá-los ou adicionar e excluir registros:

Claro, você também pode criar todos os registros um por um manualmente - basta deixar os campos de endereço IP vazios e marcar a caixa Criar zona sem aplicar o modelo de registros na página Adicionar zona mestre:

Na página Listar zonas, você verá que a nova zona tem apenas um registro (o registro SOA). Clique no ícone de editar...

... e então em Adicionar registro para adicionar mais registros, ...

..., por exemplo, registros NS...

... e registros A (por exemplo, para mydomain.com (deixe o campo Nome vazio!) e www.mydomain.com)...


... e registros MX:

Para criar registros PTR, vá para a página Adicionar zona mestre e crie uma zona chamada in-addr.arpa (deixe os campos de endereço IP vazios e marque a caixa Criar zona sem aplicar o modelo de registros):

Para criar um registro PTR que aponte do IP 1.2.3.4 para server1.example.com, crie um registro em Listar zonas e preencha 4.3.2.1 no campo Nome (esse é o IP na ordem inversa) e server1.example.com no campo Conteúdo:

Depois de criar seus registros, você pode verificá-los com o comando dig (veja
man dig
para mais detalhes), por exemplo, da seguinte forma:
dig @localhost mx example.com
server1:~# dig @localhost mx example.com
; <> DiG 9.3.4 <> @localhost mx example.com
; (1 servidor encontrado)
;; opções globais: printcmd
;; Recebido resposta:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37939
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; SEÇÃO DE QUESTÃO:
;example.com. IN MX
;; SEÇÃO DE RESPOSTA:
example.com. 86400 IN MX 10 mail.example.com.
;; SEÇÃO ADICIONAL:
mail.example.com. 86400 IN A 1.2.3.4
;; Tempo de consulta: 9 msec
;; SERVIDOR: 127.0.0.1#53(127.0.0.1)
;; QUANDO: Mon Jan 12 19:56:46 2009
;; MSG SIZE rcvd: 66
server1:~#
### 5 Links
- PowerDNS: http://www.powerdns.com/
- Documentação do PowerDNS: http://downloads.powerdns.com/documentation/html/index.html
- Poweradmin: http://www.poweradmin.org/
- Debian: http://www.debian.org/Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.