Instalar BIND DNs - Servidores Virtuales Privados

Inicio » Servidores Virtuales Privados


Esta guía explica cómo instalar y configurar el servidor DNS BIND9 en Ubuntu 24 y AlmaLinux 8, así como recomendaciones sobre lo que se debe y no se debe hacer para mantener la seguridad y estabilidad del servidor.


1. Consideraciones previas

  • Se recomienda instalar BIND en un servidor dedicado para DNS, evitando instalarlo junto con otros servicios críticos como correo o web en producción.
  • Verificar que el firewall permite las conexiones al puerto 53 TCP/UDP para consultas DNS.
  • No exponer un servidor DNS recursivo al público sin restricciones, para evitar ataques de amplificación DNS.
  • Hacer una copia de seguridad de los archivos de configuración antes de modificar cualquier cosa.

2. Instalación en Ubuntu 24

Paso 1: Actualizar el sistema

sudo apt update
sudo apt upgrade -y

Paso 2: Instalar BIND9

sudo apt install bind9 bind9utils bind9-doc -y

Paso 3: Habilitar y arrancar el servicio

sudo systemctl enable bind9
sudo systemctl start bind9

Paso 4: Verificar el estado

sudo systemctl status bind9

Paso 5: Configurar firewall (UFW)

sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw reload

Paso 6: Archivos de configuración principales

  • /etc/bind/named.conf – Archivo principal de configuración
  • /etc/bind/named.conf.options – Opciones globales como forwarders
  • /etc/bind/named.conf.local – Configuración de zonas locales
  • /var/cache/bind – Zona de caché y archivos temporales

Paso 7: Probar la configuración

sudo named-checkconf
sudo named-checkzone ejemplo.com /etc/bind/zones/db.ejemplo.com

3. Instalación en AlmaLinux 8

Paso 1: Actualizar el sistema

sudo dnf update -y

Paso 2: Instalar BIND

sudo dnf install bind bind-utils bind-doc -y

Paso 3: Habilitar y arrancar el servicio

sudo systemctl enable named
sudo systemctl start named

Paso 4: Verificar el estado

sudo systemctl status named

Paso 5: Configurar firewall (firewalld)

sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

Paso 6: Archivos de configuración principales

  • /etc/named.conf – Archivo principal
  • /var/named/ – Archivos de zonas
  • /etc/named.rfc1912.zones – Zonas locales de ejemplo

Paso 7: Probar la configuración

sudo named-checkconf
sudo named-checkzone ejemplo.com /var/named/ejemplo.com.db

4. Buenas prácticas

  • Usar forwarders confiables en named.conf.options para consultas externas.
  • No permitir consultas recursivas desde cualquier IP pública; limitar a la red interna.
  • Hacer copias de seguridad periódicas de las zonas y archivos de configuración.
  • Verificar los registros de BIND regularmente: /var/log/syslog en Ubuntu, /var/log/messages en AlmaLinux.
  • Actualizar BIND con regularidad para mantener la seguridad.

5. Lo que no se debe hacer

  • No ejecutar BIND con privilegios de root para servicios externos sin chroot o configuraciones de seguridad.
  • No abrir la recursión DNS al público sin protección, ya que puede ser usado para ataques DDoS.
  • No modificar los archivos de zona sin verificar la sintaxis antes de reiniciar el servicio.
  • No ignorar errores reportados por named-checkconf o named-checkzone.

6. Comandos útiles

  • Reiniciar BIND: sudo systemctl restart bind9 (Ubuntu) / sudo systemctl restart named (AlmaLinux)
  • Recargar zonas sin reiniciar: sudo rndc reload
  • Ver el estado del servicio: sudo systemctl status bind9 / sudo systemctl status named
  • Probar resolución local: dig @localhost ejemplo.com
  • Ver registros de errores: sudo tail -f /var/log/syslog o /var/log/messages
BOT