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