Instalación · 6 min read · Oct 02, 2025
Instalación de PowerDNS (Con Backend MySQL) Y Poweradmin En Fedora 10
Instalación de PowerDNS (Con Backend MySQL) Y Poweradmin En Fedora 10
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 Fedora 10. PowerDNS es un servidor de nombres de alto rendimiento, solo autoritativo; 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 web para PowerDNS.
¡No ofrezco ninguna garantía de que esto funcione para ti!
1 Nota Preliminar
En este ejemplo estoy usando un host Fedora 10 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 - Fedora 10.
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 tanto, 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 MySQL) - ver http://downloads.powerdns.com/documentation/html/replication.html).
2 Instalación de 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 el sistema arranca) y comenzamos el servidor MySQL:
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
Ahora 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 2407/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 restart Ejecuta
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
para establecer una contraseña para el usuario root (de lo contrario, cualquiera puede acceder a tu base de datos MySQL!).
Si el último comando te arroja un error…
[root@server1 named]# mysqladmin -h server1.example.com -u root password yourrootsqlpassword
mysqladmin: connect to server at ‘server1.example.com’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: NO)’
[root@server1 named]#
… podemos establecer la contraseña de la siguiente manera: conéctate a MySQL:
mysql -u root -pEscribe la contraseña para el usuario root de MySQL. Luego, en el shell de MySQL, haz esto:
mysql> USE mysql;mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = 'server1.example.com' AND User = 'root';mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = '127.0.0.1' AND User = 'root';Ejecuta
mysql> SELECT * FROM user;para asegurarte de que todas las filas donde el usuario es root tengan una contraseña.
Si todo se ve bien, ejecuta
mysql> FLUSH PRIVILEGES;… y sal del shell de MySQL:
mysql> quit;3 Instalación de 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 sal 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 enciéndelo:
chkconfig –levels 235 pdns on
/etc/init.d/pdns start
Eso 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 Instalación de Poweradmin
Ahora instalemos Poweradmin, un panel de control basado en web para PowerDNS. Poweradmin está escrito en PHP, por lo 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 gettext Crea los enlaces de inicio del sistema para Apache2 y enciéndelo:
chkconfig –levels 235 httpd on
/etc/init.d/httpd start
Poweradmin 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 Fedora; 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.tgz
Luego 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 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 usará 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 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.