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.