Configuración de un servidor DNS con BIND9

Configuración de un servidor DNS con BIND9

BIND9 es uno de los servidores DNS más utilizados en entornos Linux y Unix. Permite gestionar zonas, reenviadores, seguridad DNSSEC, vistas por cliente y mucho más. En este artículo veremos, paso a paso, cómo instalar, configurar y asegurar un servidor DNS autoritativo y recursivo basado en BIND9.

1. Introducción y requisitos

  • Sistema operativo: Debian/Ubuntu (o derivadas).
  • Usuario: root o con privilegios sudo.
  • Conexión a Internet: para pruebas de resolución recursiva.
  • Puertos: UDP/TCP 53 abiertos.

2. Instalación de BIND9

  1. Actualiza los repositorios:
    # sudo apt update
  2. Instala BIND9:
    # sudo apt install bind9 bind9utils bind9-doc
  3. Verifica el servicio:
    # systemctl status bind9

3. Estructura de archivos y directorios

Ruta Descripción
/etc/bind/named.conf Archivo principal que incluye otros archivos de configuración.
/etc/bind/named.conf.options Opciones globales (forwarders, recursion, listen-on).
/etc/bind/named.conf.local Declaración de zonas locales (autoritativas).
/var/cache/bind Archivos de zona cargados y archivos temporales.
/etc/bind/rndc.key Clave TSIG para control remoto con rndc.

4. Configuración básica

4.1. named.conf.options

options {
    directory /var/cache/bind
    recursion yes                 // Permitir resolución recursiva
    allow-query { any }          // Permitir consultas DNS
    listen-on { 127.0.0.1          // Dirección local
                192.168.1.10 }    // IP del servidor DNS
    forwarders {
        8.8.8.8                   // Google DNS
        1.1.1.1                   // Cloudflare DNS
    }
    dnssec-validation auto        // Activar DNSSEC
    auth-nxdomain no              // Respuesta estándar para NXDOMAIN
    listen-on-v6 { any }
}

4.2. named.conf.local: Zonas autoritativas

zone ejemplo.com {
    type master
    file /etc/bind/zones/db.ejemplo.com
    allow-transfer { 192.168.1.11 } // Servidor esclavo
}

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

4.3. Archivos de zona

TTL  86400
@   IN  SOA  ns1.ejemplo.com. admin.ejemplo.com. (
        2023081501   Serial
        3600         Refresh
        1800         Retry
        604800       Expire
        86400 )      Negative caching TTL

 Servidores de nombres
    IN  NS   ns1.ejemplo.com.
    IN  NS   ns2.ejemplo.com.

 Registros A
ns1 IN  A    192.168.1.10
ns2 IN  A    192.168.1.11
www IN  A    192.168.1.12

 Alias
ftp IN  CNAME www

5. Configuración avanzada

5.1. Vistas (views) por red o cliente

Permiten servir diferentes zonas o políticas según la IP origen.

view interna {
    match-clients { 192.168.1.0/24 }
    recursion yes
    zone ejemplo.com {
        type master
        file /etc/bind/zones/db.ejemplo.com.int
    }
}

view externa {
    match-clients { any }
    recursion no
    zone ejemplo.com {
        type master
        file /etc/bind/zones/db.ejemplo.com.ext
    }
}

5.2. Control remoto con rndc y TSIG

  1. Genera la clave:
    # rndc-confgen -a -b 512
  2. Reinicia el servicio para aplicar la nueva rndc.key.
  3. Prueba el control remoto:
    # rndc status

6. Seguridad y buenas prácticas

  • DNSSEC: Protege de manipulaciones. Genera claves con dnssec-keygen y firma zonas con dnssec-signzone.
  • ACLs: Define en named.conf.options quién puede consultar o transferir zonas.
  • Chroot: Ejecuta BIND en un entorno aislado si tu distribución lo soporta.
  • Actualizaciones: Mantén el paquete bind9 al día con apt upgrade.
  • Monitoreo: Utiliza herramientas como rndc dumpdb o dnstop para analizar tráfico.

7. Resolución y diagnósticos

  • dig: Consulta directa:
     dig @192.168.1.10 www.ejemplo.com
  • nslookup:
     nslookup www.ejemplo.com 192.168.1.10
  • Registro de BIND: /var/log/syslog o ficheros específicos según logging en named.conf.

8. Integración con VPN

Para ambientes aislados o multi-sede, se recomienda usar VPNs para que los servidores DNS internos sean accesibles de forma segura. Por ejemplo:

  • WireGuard: ligero, alto rendimiento y moderno.
  • OpenVPN: ampliamente adoptado y con muchas opciones de autentificación.

9. Conclusión

La implementación de un servidor DNS autoritativo y recursivo con BIND9 permite un control total sobre la resolución de nombres en tu red. Siguiendo estas pautas de configuración básica, avanzada y de seguridad tendrás un servicio robusto, eficiente y preparado para entornos de producción.

Para profundizar, consulta la documentación oficial de ISC BIND.

Download TXT




Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *