GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar PowerDNS en Ubuntu Linux

¿Tiene dificultades para crear un servidor DNS que admita alta disponibilidad y redundancia, pero con funciones potentes y modernas? PowerDNS es la mejor solución. PowerDNS (pdns) es un software de servidor DNS gratuito y de código abierto para sistemas operativos similares a Unix.

En este artículo, aprenderá cómo instalar y configurar PowerDNS con la base de datos MariaDB en el sistema Debian/Ubuntu Linux.

¿Listo para tener un servidor DNS completamente funcional? ¡Salta directamente!

Requisitos

Este tutorial es una demostración práctica, asegúrese de contar con lo siguiente:

  • Una máquina Linux:este tutorial utiliza la versión más reciente de Debian 11 Bullseye.
  • Un usuario con privilegios de raíz.

Instalación y configuración de la base de datos MariaDB

De forma predeterminada, PowerDNS admite muchos backends, como backends de bases de datos (PostgreSQL y MySQL/MariaDB), archivos de zona de enlace y API JSON. En este tutorial, utilizará la base de datos MariaDB como backend de la base de datos PowerDNS.

1. Primero, abra su terminal y SSH a su servidor.

2. A continuación, ejecute el apt install comando a continuación para instalar las dependencias básicas del paquete (software-properties-common dirmngr apt-transport-https ) a su sistema.

sudo apt install software-properties-common dirmngr apt-transport-https -y

3. Ejecute los siguientes comandos para agregar el repositorio de MariaDB y la clave GPG a su sistema. La configuración del repositorio de MariaDB se guarda en el /etc/apt/sources.list.d/ directorio, mientras que la clave GPG se guarda en el /etc/apt/trusted.gpg. directorio.

# Add MariaDB repository for Debian system
sudo add-apt-repository 'deb [arch=amd64,i386,arm64,ppc64el] https://mirror.23m.com/mariadb/repo/10.6/debian bullseye main'

# Add GPG key for MariaDB repository
wget -qO- https://mariadb.org/mariadb_release_signing_key.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/mariadb_release_signing_key.gpg

4. Ahora, ejecute los siguientes comandos para actualizar el repositorio e instalar el paquete (mariadb-server ).

El servicio MariaDB se inicia después de la instalación en las distribuciones Debian y Ubuntu y se ejecutará automáticamente en el arranque/inicio del sistema.

# refresh package index
sudo apt update

# install MariaDB database
sudo apt install mariadb-server -y

5. Ejecute el mysql_secure_installation Comando a continuación para asegurar su instalación de MariaDB. mysql_secure_installation

mysql_secure_installation

6. Presione Entrar en la pantalla del terminal cuando se le solicite que escriba el root contraseña para MariaDB ya que la instalación predeterminada de MariaDB viene sin contraseña.

7. Introduzca Y en el mensaje que se muestra a continuación para cambiar la autenticación predeterminada a unix_socket .

8. Introduzca Y nuevamente en el siguiente mensaje y escriba una nueva contraseña segura para el servidor MariaDB.

9. Ahora ingrese Y en el mensaje que se muestra a continuación. La instalación predeterminada de MariaDB viene con el usuario anónimo predeterminado en el nivel de producción, por lo que debe eliminar el usuario anónimo.

10. En el siguiente mensaje, ingrese Y para deshabilitar el inicio de sesión remoto para el usuario raíz. Debe deshabilitar MariaDB root usuario para iniciar sesión de forma remota desde otros servidores por razones de seguridad.

11. Escriba Y nuevamente para eliminar la base de datos de prueba predeterminada y eliminar todos los accesos y permisos.

12. Por último, escriba Y nuevamente para recargar todos los privilegios de las tablas y aplicar nuevos cambios al servidor MariaDB.

Una vez que se complete toda la configuración de MariaDB, recibirá un mensaje de confirmación como el de la siguiente captura de pantalla.

Instalando PowerDNS en Debian/Ubuntu Linux

Una vez que completó la instalación de MariaDB para el backend de la base de datos de PowerDNS, está listo para instalar los paquetes de PowerDNS. Agregará el repositorio oficial de PowerDNS y la clave GPG e instalará los paquetes del servidor PowerDNS.

Para instalar los últimos paquetes de PowerDNS desde el repositorio oficial:

1. Ejecute los siguientes comandos para agregar el repositorio de PowerDNS y la clave GPG a su sistema.

# Download PowerDNS GPG Key
wget -qO- https://repo.powerdns.com/FD380FBB-pub.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/pdns.gpg

# Adding the PowerDNS Repository for Debian 11 Bullseye System
echo "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-auth-45 main" | sudo tee /etc/apt/sources.list.d/pdns.list

# Adding the PowerDNS Repository for Ubuntu 20.04 System
echo "deb [arch=amd64] http://repo.powerdns.com/ubuntu focal-auth-45 main" | sudo tee /etc/apt/sources.list.d/pdns.list

2. A continuación, cree un nuevo archivo de configuración llamado /etc/apt/preferences.d/pdns con su editor preferido, luego complete el archivo con la siguiente configuración.

Con la siguiente configuración, cualquier paquete que comience con el nombre pdns- se instalará automáticamente desde el repositorio de PowerDNS (repo.powerdns.com ) en lugar del repositorio de Debian/Ubuntu.

# all packages with first name pdns- will be installed from the repo.powerdns.com repository
Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600

3. Ejecute los siguientes comandos para actualizar y refrescar los repositorios, luego instale PowerDNS (pdns-server ) y backend de PowerDNS MariaDB/MySQL (pdns-backend-mysql ).

Después de la instalación, el servicio PowerDNS (pdns.service ) stats y se habilita automáticamente.

# refresh package index after adding new repository
sudo apt update

# install PowerDNS and PowerDNS MySQL/MariaDB backend
sudo apt install pdns-server pdns-backend-mysql -y

4. Por último, ejecuta el systemctl comando a continuación para verificar el status del servicio PowerDNS (pdns.service ).

sudo systemctl status pdns.service

Como puede ver a continuación, el servicio PowerDNS está activo (en ejecución) en el puerto TCP predeterminado 53 y se inicia como el servidor autorizado de PowerDNS .

Crear Base de Datos e Importar Esquema de Base de Datos para PowerDNS

Después de instalar PowerDNS, configurará MariaDB como un backend de base de datos para PowerDNS. Para hacerlo, creará una nueva base de datos y un nuevo usuario, luego importará el esquema de la base de datos de PowerDNS.

1. Ejecute el siguiente comando para iniciar sesión en MySQL shell como el usuario root . Ingrese su contraseña raíz de MariaDB cuando se le solicite.

mysql -u root -p

Después de iniciar sesión en el shell de MySQL, recibirá un mensaje de bienvenida como el de la siguiente captura de pantalla.

2. A continuación, ejecute las siguientes consultas para crear una nueva base de datos (pdns ) con un nombre de usuario de administrador establecido como pdnsadmin .

# creating database named pdns
create database pdns;

# create user pdnsadmin and grant privileges to the database pdns
grant all on pdns.* to [email protected] identified by 'StrongPdnsPasswd';

# reload database privileges to apply new changes
flush privileges;

# exit from the MySQL shell
exit

3. Ejecute el siguiente comando para importar el esquema de la base de datos de PowerDNS al pdns base de datos. Asegúrese de escribir la contraseña correcta para el pdnsadmin usuario.

La instalación predeterminada de PowerDNS MySQL backend incluye el esquema de la base de datos, que está disponible en el /usr/share/pdns-backend-mysql/schema/ directorio.

# import the schema.mysql.sql to the pdns database
mysql -u pdnsadmin -p pdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

4. Ahora, ejecute el siguiente mysqlshow comando para verificar el esquema de la base de datos del pdns base de datos. Este comando le muestra todas las tablas disponibles en el pdns base de datos.

# Check list of tables on the pdns database
mysqlshow pdns

A continuación, puede ver las tablas disponibles en el pdns base de datos.

Configuración de PowerDNS con el backend de MariaDB

Has configurado MariaDB y configurado tu base de datos. Pero, ¿cómo saber si PowerDNS está funcionando? Creará una nueva configuración de back-end de MariaDB para PowerDNS. El servicio PowerDNS utiliza esta configuración para conectarse a la base de datos MySQL y almacenar todos los datos DNS en la base de datos.

1. Ejecute el siguiente comando para stop el servicio PowerDNS (pdns.service ) antes de crear la configuración de back-end de PowerDNS.

sudo systemctl stop pdns.service

2. A continuación, cree un archivo llamado myself.conf en el /etc/powerdns/pdns.d/ directorio con su editor de texto y complete el archivo con la siguiente configuración.

Cambie el nombre de usuario y la contraseña de la base de datos con su información y guarde los cambios.

Todas las configuraciones adicionales para PowerDNS deben guardarse en el /etc/powerdns/pdns.d directorio.

# Define the gmysql backend
launch+=gmysql

# Details MariaDB database for PowerDNS
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-dbname=pdns
gmysql-user=pdnsadmin
gmysql-password=StrongPdnsPasswd
gmysql-dnssec=yes
# gmysql-socket=

3. Ejecute los siguientes comandos para cambiar el permiso y la propiedad del mysql.conf expediente. En este punto, se crea la configuración back-end de MySQL para PowerDNS.

# change the ownership to user and group pdns
sudo chown pdns:pdns /etc/powerdns/pdns.d/mysql.conf

# change permission of the file
sudo chmod 640 /etc/powerdns/pdns.d/mysql.conf

4. Ahora, ejecute los siguientes comandos para iniciar el servicio PowerDNS (pdns.service ), y verifique el servicio status .

# start PowerDNS service
sudo systemctl start pdns.service

# verify status of the PowerDNS service
sudo systemctl status pdns.service

Si su configuración de PowerDNS es correcta, recibirá el siguiente resultado que muestra que el estado del servicio de PowerDNS es active (running) .

5. Finalmente, ejecute el siguiente comando para verificar el syslog expediente. Este comando le permite asegurarse de que el módulo backend de MySQL esté cargado en el servidor PowerDNS.

grep -rin pdns_server /var/log/syslog

Creación de zonas DNS en PowerDNS

PowerDNS proporciona una utilidad de línea de comandos llamada pdnsutil para la gestión de Zonas y DNSSEC. El pdnsutil El comando se puede ejecutar de forma remota para realizar cambios en la base de datos backend de PowerDNS.

En esta demostración, creará una nueva zona DNS para el example.io dominio.

1. Ejecute el pdnsutil comando a continuación para crear una nueva zona DNS (create-zone ) llamado example.io .

pdnsutil create-zone example.io

2. A continuación, ejecute los siguientes comandos para crear un nuevo servidor de nombres y asigne el servidor de nombres a la dirección IP del servidor PowerDNS.

# define ns1 A record to IP address 172.16.5.10
pdnsutil add-record example.io ns1 A 172.16.5.10

# define nameserver for example.io to the ns1.example.io
pdnsutil add-record example.io @ NS ns1.example.io

3. Ejecute el siguiente comando para agregar el nuevo registro A para el example.io dominio. Este dominio utilizará la dirección IP 172.16.5.20 .

pdnsutil add-record example.io @ A 172.16.5.20

4. Ejecute los siguientes comandos para agregar nuevos subdominios para sus aplicaciones.

# add subdomain www
pdnsutil add-record example.io www A 172.16.5.20

# add subdomain storage with the target server 172.16.5.50
pdnsutil add-record example.io storage A 172.16.5.50

5. Ahora, ejecute el siguiente comando para agregar un registro MX. El registro MX maneja la entrega de correo electrónico para el dominio principal (example.io ).

pdnsutil add-record example.io @ MX "10 example.io"

6. Ejecute los siguientes comandos para configurar nano como editor predeterminado y abra el example.io expediente.

# setup default editor on the system temporary
export EDITOR=nano

# edit DNS zone example.io manually
pdnsutil edit-zone example.io

Modifique el registro SOA predeterminado en example.io archivo con la configuración a continuación. Después de hacerlo, guarde los cambios y salga del editor.

example.io      3600    IN      SOA     ns1.example.io admin.example.io 0 10800 3600 604800 3600

7. Escribe a y presione Entrar para confirmar la aplicación de los nuevos cambios, como se muestra a continuación.

8. Ahora, ejecute el siguiente comando para mostrar todos los registros DNS disponibles en el example.io zona.

pdnsutil list-zone example.io

Puede confirmar a continuación que el registro SOA que modificó (paso seis) se refleja en la lista de registros DNS.

9. Por último, ejecute el siguiente comando para verificar la configuración de las zonas de PowerDNS.

pdnsutil check-all-zones

A continuación, puede ver que hay siete registros en example.io zona sin ningún error y advertencia.

Verificando la Propagación de DNS

Ha creado correctamente la zona DNS para example.io dominio, ¡y eso es genial! Ahora, verificará la propagación DNS del example.io dominio usando la herramienta Domain Information Groper (DIG). El dig El comando es la herramienta de búsqueda de DNS que le permite verificar la propagación de DNS y solucionar problemas de su servidor DNS.

1. Ejecute el siguiente comando para install el dnsutils paquete en su sistema.

El dig El comando es parte del dnsutils paquete.

sudo apt install dnsutils -y

2. A continuación, ejecute el dig comando a continuación para verificar el registro A para el example.io dominio. En este ejemplo, la dirección IP del servidor PowerDNS es 172.16.5.10 .

dig example.io @172.16.5.10

En el ANSWER SECTION , verá un resultado similar al siguiente.

3. Además, ejecute los siguientes comandos para verificar otro subdominio, como www.example.io y storage.example.io .

# check subdomain www.example.io
dig www.example.io @172.16.5.10

# check subdomain storage.example.io
dig storage.example.io @172.16.5.10

Debajo, el www.example.io el subdominio se resuelve en el mismo servidor que el example.io dominio.

El storage.example.io el subdominio se resuelve en otro servidor con una dirección IP de 172.16.5.50 , Como se muestra abajo.

4. Por último, ejecuta el dig Comando a continuación para verificar el registro MX para el example.io dominio.

También puede consultar otros registros DNS, como TXT , MX , SOA , y así sucesivamente.

dig MX example.io @172.16.5.10

Conclusión

A lo largo de este tutorial, aprendió cómo configurar el backend de la base de datos PowerDNS y MariaDB en Debian/Ubuntu Linux. También se dio cuenta de que PowerDNS le permite crear y administrar servidores DNS con pocos recursos, a diferencia de otras aplicaciones de servidor DNS. Además, aprendió a verificar la configuración y propagación de DNS con el dig comando.

¿Cómo llevar PowerDNS al siguiente nivel? Quizás agregando PowerDNS recursor para habilitar la caché de DNS y configurar dnsdist como el equilibrador de carga de DNS? Ahora enloquezca y comience a crear servidores DNS distribuidos y de alta disponibilidad.


Linux
  1. Cómo instalar MariaDB 10.4 en Ubuntu 18.04

  2. Cómo instalar Java en Ubuntu Linux

  3. Cómo instalar usb-creator en Ubuntu Linux

  4. Cómo instalar MariaDB en Ubuntu 22.04

  5. Cómo instalar archivos .deb en Ubuntu Linux

Cómo instalar MariaDB en Ubuntu

Cómo instalar Java 14 en Linux, Ubuntu, CentOS

Cómo instalar Rust en Ubuntu Linux

Cómo instalar ClamAV en Ubuntu Linux

Cómo instalar Webmin en Ubuntu Linux

Cómo instalar iTunes en Ubuntu Linux