El Servidor de Nombres de Dominio (DNS) es un componente crítico de la infraestructura de internet, y construir tu propio servidor DNS puede ser desafiante. Bueno, eso no ocurre con BIND, donde puedes crear tu servidor DNS BIND en poco tiempo. BIND tiene una excelente reputación entre los administradores por su flexibilidad y soporte de alta disponibilidad.
En este artículo, aprenderás cómo instalar y configurar un servidor DNS BIND seguro y verificar que los subdominios se resuelvan a la dirección IP correcta.
Sigue leyendo y ¡crea tu servidor DNS sin complicaciones!
Requisitos previos
Este tutorial será una demostración práctica. Para seguir, asegúrate de tener lo siguiente.
- A Linux server – This example uses the Ubuntu 20.04 server.
- A non-root user with root privileges or root/administrator user.
- A domain name pointed to the server IP address – This demo uses the atadomain.io domain and server IP address 172.16.1.10.
Instalación de paquetes BIND
El repositorio predeterminado de Ubuntu proporciona paquetes BIND, pero no se instala automáticamente en tu sistema. Puedes instalar BIND como el servidor DNS principal o solo autoritativo. BIND ofrece funciones potentes, como soporte para instalación maestro-esclavo, soporte DNSSEC y listas de control de acceso (ACL) incorporadas.
Para comenzar con BIND DNS, primero debes instalar los paquetes BIND en tu máquina con el gestor de paquetes apt.
1. Abre tu terminal e inicia sesión en tu servidor.
2. A continuación, ejecuta el comando apt update
a continuación para actualizar y refrescar el índice de paquetes del repositorio. Este comando asegura que estás instalando la última versión de los paquetes.

3. Una vez actualizado, ejecuta el siguiente comando apt install
para instalar los paquetes BIND para el servidor Ubuntu.
Los paquetes bind9-utils y bind9-dnsutils proporcionan herramientas adicionales de línea de comandos para BIND. Estos paquetes son útiles para probar y administrar el servidor DNS BIND.

4. Por último, ejecuta el comando systemctl
a continuación para verificar el servicio BIND.
El paquete BIND viene con el servicio named y se inicia automáticamente y se habilita durante la instalación del paquete BIND.
Ahora deberías ver que el servicio BIND named está habilitado con el estado activo (en ejecución). En este punto, el servicio BIND se ejecutará automáticamente al inicio del sistema.

Configuración del Servidor DNS BIND
Ahora has instalado los paquetes de BIND en el servidor Ubuntu, así que es hora de configurar la instalación de BIND en tu servidor Ubuntu. ¿Cómo? Editando las configuraciones de BIND y del servicio named
.
Toda la configuración para BIND está disponible en el directorio /etc/bind/, y las configuraciones para el servicio named
en /etc/default/named.
1. Edita la configuración /etc/default/named usando tu editor preferido y agrega la opción -4
en la línea OPTIONS
, como se muestra a continuación. Esta opción ejecutará el servicio named
solo en IPv4.
Guarda los cambios que hiciste y cierra el archivo.

2. A continuación, edita el archivo /etc/bind/named.conf.options y completa la siguiente configuración debajo de la línea directory "/var/cache/bind";
.
Esta configuración establece que el servicio BIND se ejecute en el puerto UDP 53 predeterminado en el localhost del servidor y en la dirección IP pública (172.16.1.10). Al mismo tiempo, permite consultas desde cualquier host al servidor DNS BIND utilizando Cloudflare DNS 1.1.1.1 como remitente.
Al final, comenta la línea listen-on-v6 { any; };
, como se muestra a continuación, para deshabilitar que el servicio named
se ejecute en IPv6.

3. Por último, ejecuta el siguiente comando para verificar la configuración de BIND.
Si no hay ninguna salida, las configuraciones BIND son correctas sin errores.

Configuración de Zonas DNS
En este punto, has configurado la configuración básica del servidor DNS BIND. Estás listo para crear un servidor DNS con tu dominio y agregar otros subdominios para tus aplicaciones. Deberás definir y crear una nueva configuración de zonas DNS para hacerlo.
En este tutorial, crearás un nuevo Servidor de Nombres (ns1.atadomain.io) y subdominios (www.atadomain.io, mail.atadomain.io, vault.atadomain.io).
1. Edita el archivo /etc/bind/named.conf.local con tu editor preferido y agrega la siguiente configuración.
Esta configuración define la zona de avance (/etc/bind/zones/forward.atadomain.io) y la zona inversa (/etc/bind/zones/reverse.atadomain.io) para el nombre de dominio atadomain.io.
Guarda los cambios y cierra el archivo.

2. A continuación, ejecuta el siguiente comando para crear un nuevo directorio (/etc/bind/zones
) para las configuraciones de zonas DNS.
3. Ejecuta cada comando a continuación para copiar la configuración predeterminada de las zonas de avance y reversa al directorio /etc/bind/zones
.

4. Ahora, edita la configuración de la zona de avance (/etc/bind/zones/forward.atadomain.io) con tu editor preferido y completa la configuración a continuación.
La configuración de la zona de avance es donde defines el nombre de tu dominio y la dirección IP del servidor. Esta configuración traducirá el nombre de dominio a la dirección IP correcta del servidor.
La configuración a continuación crea el siguiente servidor de nombres y subdominios:
ns1.atadomain.io
– El servidor de nombres principal para tu dominio con la dirección IP172.16.1.10
.
- Registro MX para el dominio
atadomain.io
que es gestionado pormail.atadomain.io
. El registro MX se utiliza para el servidor de correo.
- Subdominios para aplicaciones:
www.atadomain.io
,mail.atadomain.io
, yvault.atadomain.io
.
Guarda los cambios y cierra el archivo.

5. Al igual que con la zona de avance, edita el archivo de configuración de la zona inversa (/etc/bind/zones/reverse.atadomain.io) y completa la siguiente configuración.
La zona inversa traduce la dirección IP del servidor al nombre de dominio. La zona inversa o registro PTR es esencial para servicios como el servidor de correo, lo que afecta a la reputación del servidor de correo.
El registro PTR utiliza el último bloque de la dirección IP, como el registro PTR con el número 10 para la dirección IP del servidor 172.16.1.10.
Esta configuración crea la zona inversa o registro PTR para los siguientes dominios:
- Servidor de nombres
ns1.atadomain.io
con la zona inversa o registro PTR172.16.1.10
.
- Registro PTR para el dominio
mail.atadomain.io
a la dirección IP del servidor172.16.1.20
.
Guarda los cambios y cierra el archivo.

6. Ahora, ejecuta los siguientes comandos para verificar las configuraciones de BIND.
Cuando tu configuración sea correcta, verás una salida similar a continuación.

7. Por último, ejecuta el comando systemctl
a continuación para reiniciar y verificar el servicio named
. Haciendo esto se aplican los nuevos cambios al servicio named
.
A continuación, puedes ver que el estado del servicio named está activo (en ejecución).

Abriendo el Puerto DNS con el Firewall UFW
En este punto, has completado la instalación del Servidor DNS BIND. Pero aún debes asegurar tu Servidor DNS. Configurarás el firewall UFW y abrirás el puerto DNS para cualquier consulta al servidor. Haciendo esto permite que los clientes realicen una consulta al servidor DNS BIND.
Por razones de seguridad, se recomienda ejecutar y habilitar el firewall UFW en tu servidor Ubuntu.
1. Ejecuta el comando ufw
a continuación para verificar las aplicaciones disponibles en el firewall UFW.
Deberías ver el Bind9 en la lista de aplicaciones de la aplicación UFW a continuación.

2. Ahora ejecuta el siguiente comando para permitir
el Bind9
en el firewall UFW.

3. Por último, ejecuta el siguiente comando para verificar las reglas habilitadas en el firewall UFW.
Deberías ver la aplicación Bind9 en la lista como en la captura de pantalla a continuación.

Verificación de la Instalación del Servidor DNS BIND
Ahora has completado la instalación de BIND DNS y configurado el firewall UFW. Pero, ¿cómo verificas la instalación de tu servidor DNS? El comando dig
hará el truco.
Dig es una utilidad de línea de comandos para solucionar problemas de instalación del servidor DNS. dig
realiza una búsqueda de DNS para el nombre de dominio dado y muestra respuestas detalladas para el objetivo del nombre de dominio. En el sistema Ubuntu, dig
es parte del paquete bind9-dnsutil
.
Para verificar la instalación de tu servidor DNS BIND:
1. Ejecuta cada comando dig
a continuación para verificar los subdominios www.atadomain.io
, mail.atadomain.io
y vault.atadomain.io
.
Si la instalación de su servidor DNS es exitosa, cada subdominio se resolverá a la dirección IP correcta según la configuración de forward.atadomain.io.
A continuación se muestra la salida del subdominio www.atadomain.io resuelto a la dirección IP del servidor 172.16.1.10.

A continuación se muestra el subdominio mail.atadomain.io resuelto a la dirección IP del servidor 172.16.1.20.

Y a continuación se muestra el subdominio vault.atadomain.io resuelto a la dirección IP del servidor 172.16.1.50.

2. A continuación, ejecute el comando dig
a continuación para verificar el registro MX para el dominio atadomain.io
.
Debería ver que el dominio atadomain.io tiene el registro MX mail.atadomain.io.

3. Por último, ejecute los siguientes comandos para verificar el registro PTR o la zona inversa para las direcciones IP del servidor 172.16.1.10
y 172.16.1.20
.
Si la instalación de BIND es exitosa, cada dirección IP se resolverá al nombre de dominio definido en la configuración reverse.atadomain.io.
Puede ver a continuación que la dirección IP del servidor 172.16.1.10 se resuelve al nombre de dominio ns1.atadomain.io.

Como puede ver a continuación, la dirección IP del servidor 172.16.1.20 se resuelve al nombre de dominio mail.atadomain.io.

Conclusión
A lo largo de este tutorial, has aprendido cómo crear y configurar un servidor DNS BIND seguro en tu servidor Ubuntu. También has creado la zona forward y reverse para agregar tu dominio y has verificado los servidores DNS mediante la ejecución de comandos dig
.
Ahora, ¿cómo puedes implementar un servidor DNS BIND en tu entorno? ¿Quizás implementar BIND como un servidor autoritario? ¿O configurar alta disponibilidad con una instalación maestro-esclavo de BIND?