Instalación PowerDNS · 5 min read · Oct 01, 2025
Instalando PowerDNS (Con Backend MySQL) Y Poweradmin En CentOS 5.2
Instalando PowerDNS (Con Backend MySQL) Y Poweradmin En CentOS 5.2
Versión 1.0
Autor: Falko Timme
Este artículo muestra cómo puedes instalar el servidor de nombres PowerDNS (con backend MySQL) y el panel de control Poweradmin para PowerDNS en un sistema CentOS 5.2. PowerDNS es un servidor de nombres autoritativo de alto rendimiento; en la configuración descrita aquí, leerá los registros DNS de una base de datos MySQL (similar a MyDNS), aunque también se admiten otros backends como PostgreSQL. Poweradmin es un panel de control basado en la web para PowerDNS.
¡No ofrezco ninguna garantía de que esto funcione para ti!
1 Nota Preliminar
En este ejemplo estoy usando un host CentOS 5.2 con el nombre de host server1.example.com y la dirección IP 192.168.0.100, configurado de acuerdo con los primeros 6 capítulos de este tutorial: El Servidor Perfecto - CentOS 5.2.
Configuraré solo un servidor PowerDNS en este ejemplo (un maestro); agregar esclavos de PowerDNS se puede lograr fácilmente utilizando la replicación de base de datos MySQL del maestro a los esclavos, por lo que no se necesitan transferencias de zona (esto nuevamente es similar a MyDNS). La replicación de base de datos MySQL se puede configurar de acuerdo con este tutorial: Cómo Configurar la Replicación de Base de Datos En MySQL (PowerDNS también admite transferencias de zona nativas (para escenarios donde no puedes usar la replicación de MySQL) - ver http://downloads.powerdns.com/documentation/html/replication.html).
2 Instalando MySQL
Para instalar MySQL, hacemos esto:
yum install mysql mysql-serverLuego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que se inicie el sistema) y comenzamos el servidor MySQL:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld startAhora verifica que la red esté habilitada. Ejecuta
netstat -tap | grep mysqlDebería mostrar algo como esto ( *:mysql significa que MySQL está escuchando en todas las interfaces, lo cual es importante para la replicación de MySQL!):
[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2439/mysqld
[root@server1 ~]#Si no lo hace, edita /etc/my.cnf y comenta la opción skip-networking:
vi /etc/my.cnf| [...] #skip-networking [...] |
y reinicia tu servidor MySQL:
/etc/init.d/mysqld restartEjecuta
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpasswordpara establecer una contraseña para el usuario root (¡de lo contrario, cualquiera puede acceder a tu base de datos MySQL!).
3 Instalando PowerDNS
Para instalar PowerDNS, ejecutamos
yum install pdns pdns-backend-mysqlLa configuración de PowerDNS se encuentra en el directorio /etc/pdns - llegaré a eso en un momento.
Ahora nos conectamos a MySQL:
mysql -u root -pEscribe tu contraseña de root de MySQL, y deberías estar en el shell de MySQL. En el shell de MySQL, creamos una base de datos para PowerDNS:
CREATE DATABASE powerdns;A continuación, creamos un usuario de base de datos (powerdns) para 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;(Reemplaza power_admin_password con una contraseña de tu elección.)
Ahora creamos las tablas necesarias para 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
);… y finalmente salimos del shell de MySQL:
quit;Ahora debemos configurar PowerDNS para que use el backend MySQL:
vi /etc/pdns/pdns.confAgrega las siguientes líneas a pdns.conf:
| [...] ################################# # launch Qué backends lanzar y el orden para consultarlos # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns [...] |
Luego crea los enlaces de inicio del sistema para PowerDNS y inícialo:
chkconfig --levels 235 pdns on
/etc/init.d/pdns startEso es todo, PowerDNS ahora está listo para ser utilizado. Para aprender más sobre él, consulta su documentación: http://downloads.powerdns.com/documentation/html/index.html
4 Instalando Poweradmin
Ahora instalemos Poweradmin, un panel de control basado en la web para PowerDNS. Poweradmin está escrito en PHP, así que debemos instalar un servidor web (estoy usando Apache2 en este ejemplo) y 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 gettextCrea los enlaces de inicio del sistema para Apache2 y inícialo:
chkconfig --levels 235 httpd on
/etc/init.d/httpd startPoweradmin también requiere los siguientes dos paquetes PEAR:
yum install php-pear-DB php-pear-MDB2-Driver-mysqlAhora todos los requisitos previos para Poweradmin están instalados, y podemos comenzar con la instalación de Poweradmin (lo instalaré en un subdirectorio de /var/www/html - /var/www/html es la raíz del documento del sitio web predeterminado de Apache en CentOS; si has creado un vhost con una raíz de documento diferente, ajusta las rutas).
Ve a https://www.poweradmin.org/trac/wiki/GettingPoweradmin y descarga el último paquete de Poweradmin, por ejemplo, de la siguiente manera:
cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgzLuego instálalo en el directorio /var/www/html/poweradmin de la siguiente manera:
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/Ahora abre un navegador y lanza el instalador basado en la web de Poweradmin ( http://server1.example.com/poweradmin/install o http://192.168.0.100/poweradmin/install).
Selecciona tu idioma (inglés o neerlandés):

Haz clic en el botón Ir al paso 3 para continuar:

Ahora completa los detalles de tu base de datos. Es importante que completes los detalles para el usuario root de MySQL, ¡no el usuario MySQL powerdns que creamos anteriormente! También proporciona una contraseña para el usuario administrador de la interfaz web de Poweradmin (esa es la contraseña que el usuario admin utilizará para iniciar sesión en Poweradmin más adelante):

En la siguiente página, completa los detalles para el usuario MySQL power_admin que creamos en el capítulo 3. También completa los dos servidores de nombres predeterminados que se utilizarán en tus zonas a menos que proporciones servidores de nombres diferentes cuando crees una zona (típicamente estos son los nombres del sistema actual y del servidor esclavo (para el cual puedes configurar la replicación de MySQL, consulta mis notas preliminares en el capítulo 1)):

Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.