Guía paso a paso para configurar un servidor DNS con BIND9

Artículos Guías Manuales Sistemas Linux Windows Binario 0

BIND9 es una herramienta potente para configurar servidores DNS. A continuación, se describe cómo configurarlo desde cero, incluyendo comandos y archivos de configuración.

1. Instalar BIND9

En una distribución basada en Debian/Ubuntu:

sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y

En una distribución basada en RHEL/CentOS:

sudo yum install bind bind-utils -y

2. Configurar los archivos principales de BIND9

Los principales archivos de configuración de BIND9 suelen estar en /etc/bind/ (Debian/Ubuntu) o /etc/named/ (RHEL/CentOS).

  • Archivo principal: /etc/bind/named.conf (Ubuntu) o /etc/named.conf (CentOS).
  • Subarchivos comunes:
    • named.conf.options: Configuraciones globales.
    • named.conf.local: Zonas locales.
    • named.conf.default-zones: Zonas por defecto.

3. Configurar las opciones globales

Edita named.conf.options:

sudo nano /etc/bind/named.conf.options

Agrega o modifica:

options {
directory "/var/cache/bind";

// Direcciones permitidas
allow-query { any; };

// Configurar reenviadores (opcional)
forwarders {
8.8.8.8; // Google DNS
8.8.4.4;
};

dnssec-validation auto;

listen-on port 53 { any; };
listen-on-v6 { any; };
};

Guarda y cierra el archivo.

4. Definir zonas locales

Edita named.conf.local:

sudo nano /etc/bind/named.conf.local

Ejemplo de zona para un dominio llamado example.com:

zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

Ejemplo de zona inversa para la red 192.168.1.0/24:

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};

Guarda y cierra el archivo.

5. Crear archivos de zona

  • Zona directa:
    Crea el archivo /etc/bind/db.example.com:
sudo nano /etc/bind/db.example.com

Contenido:

$TTL    604800
@ IN SOA ns.example.com. admin.example.com. (
2023120301 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL

; Servidores DNS
@ IN NS ns.example.com.

; Registros A
ns IN A 192.168.1.10
www IN A 192.168.1.20
  • Zona inversa:
    Crea el archivo /etc/bind/db.192.168.1:
sudo nano /etc/bind/db.192.168.1

Contenido:

$TTL    604800
@ IN SOA ns.example.com. admin.example.com. (
2023120301 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL

; Servidores DNS
@ IN NS ns.example.com.

; Registros PTR
10 IN PTR ns.example.com.
20 IN PTR www.example.com.

Guarda ambos archivos.

6. Revisar la configuración

Verifica errores en la configuración con:

sudo named-checkconf

Verifica las zonas:

sudo named-checkzone example.com /etc/bind/db.example.com
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192.168.1

7. Reiniciar el servicio

Reinicia BIND9 para aplicar los cambios:

sudo systemctl restart bind9

Verifica el estado del servicio:

sudo systemctl status bind9

8. Configurar el firewall

Asegúrate de que el puerto 53 (TCP y UDP) esté abierto:

sudo ufw allow 53
sudo ufw reload

9. Probar el servidor DNS

Usa dig o nslookup para verificar que las configuraciones son correctas.

Consulta directa:

dig @192.168.1.10 www.example.com

Consulta inversa:

dig -x 192.168.1.10

Con estos pasos, tu servidor BIND9 debería estar funcionando correctamente como un servidor DNS autoritativo para tus zonas configuradas. Si necesitas agregar más zonas o registros, simplemente sigue el patrón descrito.