PowerDNS es un servidor de nombres de dominio (DNS) de alto rendimiento y código abierto. PowerDNS-Admin es una interfaz web intuitiva que facilita la gestión de tus zonas DNS. En este tutorial, aprenderás a instalar y configurar ambos en tu servidor VPS con Ubuntu 22.04.
Requisitos previos
- Un servidor VPS con Ubuntu 22.04.
- Acceso SSH al servidor con privilegios de root o sudo.
- Un nombre de dominio registrado (opcional, pero recomendado si planeas alojar zonas DNS públicas).
Pasos de instalación
-
Actualizar el sistema
sudo apt update sudo apt upgrade -y -
Instalar MariaDB
Instalaremos MariaDB como base de datos para PowerDNS:
sudo apt install mariadb-server mariadb-client -yAsegura la instalación de MariaDB:
sudo mysql_secure_installationSigue las indicaciones, estableciendo una contraseña segura para el usuario root de MySQL y respondiendo afirmativamente a las preguntas de seguridad.
-
Crear la base de datos para PowerDNS
Accede a la consola de MySQL:
sudo mysql -u root -pIntroduce la contraseña de root de MySQL que configuraste anteriormente.
Ejecuta los siguientes comandos para crear la base de datos y el usuario para PowerDNS:
CREATE DATABASE powerdns; CREATE USER 'powerdns'@'localhost' IDENTIFIED BY 'tu_contraseña_segura'; GRANT ALL PRIVILEGES ON powerdns.* TO 'powerdns'@'localhost'; FLUSH PRIVILEGES; exit;Reemplaza `tu_contraseña_segura` con una contraseña fuerte.
-
Instalar PowerDNS
Agrega el repositorio de PowerDNS e instala el servidor y su backend para MySQL:
sudo apt install software-properties-common -y sudo apt-add-repository ppa:powerdns/pdns -y sudo apt update sudo apt install pdns-server pdns-backend-mysql -y -
Configurar PowerDNS
Edita el archivo de configuración principal de PowerDNS:
sudo nano /etc/powerdns/pdns.confRealiza los siguientes cambios:
- Descomenta y configura la línea `launch=gmysql`.
- Descomenta la línea `gmysql-host=` y establece su valor en `localhost`.
- Descomenta la línea `gmysql-user=` y establece su valor en `powerdns`.
- Descomenta la línea `gmysql-password=` y establece su valor en la contraseña que elegiste para el usuario de la base de datos.
- Descomenta la línea `gmysql-dbname=` y establece su valor en `powerdns`.
Guarda los cambios y cierra el editor.
-
Crear las tablas de la base de datos
Ejecuta el siguiente comando para crear las tablas necesarias en la base de datos:
sudo mysql -u powerdns -p powerdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sqlIntroduce la contraseña del usuario `powerdns` cuando se te solicite.
-
Instalar y configurar PowerDNS-Admin
Instala las dependencias necesarias:
sudo apt install python3 python3-pip python3-venv nginx -yCrea un entorno virtual de Python y actívalo:
sudo python3 -m venv /opt/pdns-admin source /opt/pdns-admin/bin/activateClona el repositorio de PowerDNS-Admin e instala las dependencias:
cd /opt sudo git clone https://github.com/ngoduykhanh/PowerDNS-Admin cd PowerDNS-Admin pip install -r requirements.txtCopia el archivo de configuración de ejemplo y edítalo:
cp config.py.dist config.py sudo nano config.pyConfigura las opciones de la base de datos y otras configuraciones según tus necesidades. Guarda los cambios y cierra el editor.
Genera la base de datos de PowerDNS-Admin:
flask create_dbCrea un usuario administrador:
flask create_userSigue las indicaciones para proporcionar los detalles del usuario administrador.
-
Configurar Nginx como proxy inverso
Crea un nuevo archivo de configuración para Nginx:
sudo nano /etc/nginx/sites-available/powerdns-adminAgrega el siguiente contenido, reemplazando `tu_dominio` con tu nombre de dominio:
server { listen 80; server_name tu_dominio; location / { proxy_pass http://127.0.0.1:9191; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }Habilita el nuevo sitio y reinicia Nginx:
sudo ln -s /etc/nginx/sites-available/powerdns-admin /etc/nginx/sites-enabled/ sudo systemctl reload nginx -
Iniciar PowerDNS-Admin (opcional)
Puedes configurar PowerDNS-Admin para que se inicie automáticamente al arrancar el sistema. Consulta la documentación de PowerDNS-Admin para obtener instrucciones detalladas.
Conclusión
¡Felicidades! Has instalado y configurado PowerDNS y PowerDNS-Admin en tu servidor Ubuntu 22.04. Ahora puedes acceder a la interfaz web de PowerDNS-Admin en `http://tu_dominio` y comenzar a gestionar tus zonas DNS de manera eficiente.