Instalação PowerDNS · 5 min read · Oct 01, 2025
Instalando PowerDNS (Com Backend MySQL) E Poweradmin No CentOS 5.2
Instalando PowerDNS (Com Backend MySQL) E Poweradmin No CentOS 5.2
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 CentOS 5.2. 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 CentOS 5.2 com o nome do host server1.example.com e o endereço IP 192.168.0.100, configurado de acordo com os primeiros 6 capítulos deste tutorial: O Servidor Perfeito - CentOS 5.2.
Vou configurar apenas um servidor PowerDNS neste exemplo (um mestre); adicionar escravos do PowerDNS pode ser facilmente alcançado usando replicação de 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 de 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, fazemos o seguinte:
yum install mysql mysql-serverEm seguida, criamos os links de inicialização do sistema para o MySQL (para que o MySQL inicie automaticamente sempre que o sistema inicializa) e iniciamos o servidor MySQL:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld startAgora verifique se a rede está habilitada. Execute
netstat -tap | grep mysqlDeve mostrar algo como isto ( *:mysql significa que o MySQL está ouvindo em todas as interfaces, o que é importante para a replicação MySQL!):
[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2439/mysqld
[root@server1 ~]#Se não mostrar, edite /etc/my.cnf e comente a opção skip-networking:
vi /etc/my.cnf| [...] #skip-networking [...] |
e reinicie seu servidor MySQL:
/etc/init.d/mysqld restartExecute
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpasswordpara definir uma senha para o usuário root (caso contrário, qualquer um pode acessar seu banco de dados MySQL!).
3 Instalando PowerDNS
Para instalar o PowerDNS, executamos
yum install pdns pdns-backend-mysqlA configuração do PowerDNS está localizada no diretório /etc/pdns - 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/pdns/pdns.confAdicione as seguintes linhas ao pdns.conf:
| [...] ################################# # launch Quais backends lançar e a ordem para consultá-los # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns [...] |
Em seguida, crie os links de inicialização do sistema para o PowerDNS e inicie-o:
chkconfig --levels 235 pdns on
/etc/init.d/pdns startÉ 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:
yum install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettextCrie os links de inicialização do sistema para o Apache2 e inicie-o:
chkconfig --levels 235 httpd on
/etc/init.d/httpd startO Poweradmin também requer os seguintes dois pacotes PEAR:
yum install php-pear-DB php-pear-MDB2-Driver-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/html - /var/www/html é a raiz do documento do site padrão do Apache no CentOS; 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.tgzEm seguida, instale-o no diretório /var/www/html/poweradmin da seguinte forma:
tar xvfz poweradmin-2.1.2.tgz
mv poweradmin-2.1.2 /var/www/html/poweradmin
touch /var/www/html/poweradmin/inc/config.inc.php
chown -R apache:apache /var/www/html/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 a etapa 3 para continuar:

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.