PowerDNS es un servidor de nombres autorizado potente y de alto rendimiento escrito en C++. Es una alternativa a BIND DNS y utiliza MariaDB, MySQL, Oracle y MariaDB para almacenar registros. PowerDNS se ejecuta en la mayoría de los sistemas operativos basados en UNIX y se utiliza para alojar dominios mediante DNSSEC. Utiliza un programa separado llamado PowerDNS Recursor como servidor DNS de resolución. PowerDNS-Admin es una interfaz web avanzada para PowerDNS que se utiliza para administrar zonas y registros a través de un navegador web.
En este tutorial, le mostraremos cómo instalar PowerDNS y PowerAdmin con el backend de MariaDB en CentOS 8.
Requisitos
- Un nuevo CentOS 8 VPS en la plataforma en la nube Atlantic.Net
- Una contraseña de root configurada en su servidor
Paso 1:crear un servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
dnf update -y
Paso 2:instalar el servidor LAMP
Primero, instale el servidor Apache y MariaDB con el siguiente comando:
dnf install httpd mariadb-server -y
Una vez instalado, inicie los servicios de MariaDB y Apache y habilítelos para que se inicien al reiniciar el sistema con el siguiente comando:
systemctl start httpd systemctl start mariadb systemctl enable httpd systemctl enable mariadb
A continuación, deberá instalar la última versión de PHP en su sistema. De forma predeterminada, la última versión de PHP no está disponible en CentOS 8, por lo que deberá agregar el repositorio de Remi en su sistema. Puede agregarlo con el siguiente comando:
dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
A continuación, deshabilite el módulo PHP predeterminado y habilite el módulo PHP Remi con el siguiente comando:
dnf module reset php dnf module enable php:remi-7.4
A continuación, instale PHP y otros módulos necesarios con el siguiente comando:
dnf install 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 php-pear -y
Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.
systemctl start php-fpm systemctl enable php-fpm
Paso 3:configurar la base de datos MariaDB
A continuación, deberá crear una base de datos y un usuario para PowerDNS. Primero, inicie sesión en MariaDB con el siguiente comando:
mysql
Una vez que haya iniciado sesión, cree una base de datos y un usuario con el siguiente comando:
create database powerdnsdb; create user 'powerdns' identified by 'password';
A continuación, otorgue todos los privilegios a powerdnsdb con el siguiente comando:
grant all privileges on powerdnsdb.* to 'powerdns'@'localhost' identified by 'password';
A continuación, elimine los privilegios con el siguiente comando:
flush privileges;
A continuación, cambie la base de datos a powerdnsdb y cree estructuras de tablas con el siguiente comando:
use powerdnsdb; 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) ) Engine=InnoDB; CREATE UNIQUE INDEX name_index ON domains(name); CREATE TABLE records ( id BIGINT AUTO_INCREMENT, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(10) DEFAULT NULL, content VARCHAR(64000) DEFAULT NULL, ttl INT DEFAULT NULL, prio INT DEFAULT NULL, change_date INT DEFAULT NULL, disabled TINYINT(1) DEFAULT 0, ordername VARCHAR(255) BINARY DEFAULT NULL, auth TINYINT(1) DEFAULT 1, PRIMARY KEY (id) ) Engine=InnoDB; CREATE INDEX name_index ON domains(name); CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX recordorder ON records (domain_id, ordername); CREATE TABLE supermasters ( ip VARCHAR(64) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) NOT NULL, PRIMARY KEY (ip, nameserver) ) Engine=InnoDB; CREATE TABLE comments ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(10) NOT NULL, modified_at INT NOT NULL, account VARCHAR(40) NOT NULL, comment VARCHAR(64000) NOT NULL, PRIMARY KEY (id) ) Engine=InnoDB; CREATE INDEX comments_domain_id_idx ON comments (domain_id); CREATE INDEX comments_name_type_idx ON comments (name, type); CREATE INDEX comments_order_idx ON comments (domain_id, modified_at); CREATE TABLE domainmetadata ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, kind VARCHAR(32), content TEXT, PRIMARY KEY (id) ) Engine=InnoDB; CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind); CREATE TABLE cryptokeys ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, flags INT NOT NULL, active BOOL, content TEXT, PRIMARY KEY(id) ) Engine=InnoDB; CREATE INDEX domainidindex ON cryptokeys(domain_id); CREATE TABLE tsigkeys ( id INT AUTO_INCREMENT, name VARCHAR(255), algorithm VARCHAR(50), secret VARCHAR(255), PRIMARY KEY (id) ) Engine=InnoDB; CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
Ahora puede listar todas las tablas con el siguiente comando:
show tables;
Debería ver el siguiente resultado:
A continuación, salga de MariaDB con el siguiente comando:
exit;
Paso 4:instalar PowerDNS
Antes de instalar PowerDNS, deberá deshabilitar el servicio systemd-resolve. Puede desactivarlo con el siguiente comando:
systemctl disable systemd-resolved systemctl stop systemd-resolved
A continuación, agregue una nueva entrada de servidor de nombres con el siguiente comando:
ls -lh /etc/resolv.conf echo "nameserver 8.8.8.8" | tee /etc/resolv.conf
Finalmente, instale PowerDNS con otros paquetes requeridos usando el siguiente comando:
dnf install pdns pdns-backend-mysql bind-utils -y
Después de instalar PowerDNS, deberá configurar PowerDNS para usar MySQL como backend en lugar de BIND. Puede hacerlo editando el archivo /etc/pdns/pdns.conf:
nano /etc/pdns/pdns.conf
Elimine la línea launch=bind y agregue las siguientes líneas:
launch=gmysql gmysql-host=localhost gmysql-user=powerdns gmysql-password=password gmysql-dbname=powerdnsdb
Guarde y cierre el archivo, luego inicie el servicio PowerDNS y habilítelo para que se inicie en el arranque.
systemctl start pdns systemctl enable pdns
Paso 5:instalar PowerAdmin
Primero, descargue la última versión de PowerAdmin con el siguiente comando:
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
Una vez descargado, extraiga el archivo descargado con el siguiente comando:
tar xvf poweradmin-2.1.7.tgz
A continuación, mueva el directorio extraído al directorio raíz de Apache:
mv poweradmin-2.1.7 /var/www/html/poweradmin/
A continuación, cambie la propiedad del directorio poweradmin a apache con el siguiente comando:
chown -R apache:apache /var/www/html/poweradmin
Paso 6:acceda a la interfaz web de PowerAdmin
Ahora, abra su navegador web y acceda a la interfaz web de PowerAdmin usando la URL http://your-server-ip/poweradmin/install. Debería ver la siguiente página:
Seleccione el idioma deseado y haga clic en "Ir al paso 2. ” Deberías ver la siguiente página:
Ahora, haz clic en “Ir al paso 3. ” Deberías ver la siguiente página:
Proporcione los detalles de su base de datos PowerDNS y la contraseña de administrador y haga clic en "Ir al paso 4. ” Deberías ver la siguiente página:
Proporcione el usuario, la contraseña, el host y el servidor de nombres de PowerDNS y haga clic en "Ir al paso 5. ” Deberías ver la siguiente página:
Ahora, abra su terminal, inicie sesión en MySQL y otorgue al nuevo usuario todos los permisos necesarios con el siguiente comando:
GRANT SELECT, INSERT, UPDATE, DELETE ON powerdnsdb.* TO 'user1'@'localhost' IDENTIFIED BY 'password';
A continuación, haga clic en “Ir al paso 6. ” Deberías ver la siguiente página:
Ahora, cree un nuevo archivo llamado config.inc.php como se muestra a continuación:
nano /var/www/html/poweradmin/inc/config.inc.php
Pegue el contenido de la página web:
<?php $db_host = 'localhost'; $db_user = 'user1'; $db_pass = 'password'; $db_name = 'powerdnsdb'; $db_type = 'mysql'; $db_layer = 'PDO'; $session_key = 'MMK})04xlEHD[UpE1{^[email protected]+jlSIYilM3jRLI#NIJJac#'; $iface_lang = 'en_EN'; $dns_hostmaster = 'power.example.com'; $dns_ns1 = 'ns1.example.com'; $dns_ns2 = 'ns2.example.com';
Guarde y cierre el archivo, luego haga clic en “Ir al paso 7. ” Una vez que se haya completado la instalación, debería ver la siguiente página:
A continuación, abra su terminal y elimine el directorio de instalación con el siguiente comando:
rm -rf /var/www/html/poweradmin/install
Haga clic en Poweradmin . Debería ver la página de inicio de sesión de Poweradmin:
Proporcione su nombre de usuario y contraseña de administrador que creó anteriormente y haga clic en Ir botón. Debería ver el panel de Poweradmin en la siguiente página:
Conclusión
¡Felicidades! Ha instalado correctamente PowerDNS y Poweradmin en CentOS 8. Ahora puede crear y administrar fácilmente una nueva zona y registro a través de la interfaz web de Poweradmin. Para obtener más información, visite la documentación oficial de PowerDNS. ¡Comience hoy mismo con PowerDNS y Poweradmin en alojamiento VPS de Atlantic.Net!