Como configurar servidor bind9
www.onlinetis.com
Para configurar un servidor BIND9, sigue estos pasos:
Instala BIND9: Usa el gestor de paquetes de tu sistema.
Configura el archivo
named.conf.options
: Define las opciones globales del servidor, como la dirección IP de los servidores de reenvío (forwarders
).Configura el archivo
named.conf.local
: Declara las zonas directas e inversas para los dominios que BIND9 gestionará.Crea los archivos de zona: Define los registros de recursos (A, CNAME, MX, etc.) para cada una de las zonas declaradas en el paso anterior.
Verifica la configuración: Usa la herramienta
named-checkconf
ynamed-checkzone
para validar los archivos de configuración y de zona.Reinicia el servicio: Aplica los cambios reiniciando BIND9.
1. Instalación
El primer paso es instalar el paquete BIND9, que generalmente se llama bind9
o bind
.
En sistemas basados en Debian/Ubuntu:
sudo apt update
sudo apt install bind9 bind9utils
En sistemas basados en RHEL/CentOS:
sudo yum install bind bind-utils
2. Configuración Global (named.conf.options
)
Este archivo controla la configuración global del servidor. Es crucial definir los forwarders
, que son los servidores DNS a los que BIND9 reenviará las consultas que no puede resolver localmente.
sudo nano /etc/bind/named.conf.options
Dentro del archivo, busca el bloque options
y añade o modifica los forwarders
(usa los de Google, Cloudflare o tu ISP):
options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
forwarders {
8.8.8.8;
1.1.1.1;
};
dnssec-validation auto;
listen-on-v6 { any; };
};
directory
: Especifica la ruta de trabajo de BIND.recursion
: Permite al servidor resolver consultas recursivas para los clientes.allow-query
: Define qué clientes pueden hacer consultas.any
permite a cualquiera.dnssec-validation
: Habilita la validación de DNSSEC.
3. Declaración de Zonas (named.conf.local
)
Aquí es donde le dices a BIND9 qué dominios va a gestionar. Una zona es un área de control sobre una parte del espacio de nombres DNS.
sudo nano /etc/bind/named.conf.local
Ejemplo de zona directa (dominio):
// Zona directa para el dominio "midominio.com"
zone "midominio.com" {
type master;
file "/etc/bind/db.midominio.com";
allow-update { none; };
};
type master
: Indica que este servidor es la fuente autoritativa para el dominio.file
: Especifica la ruta al archivo que contiene los registros del dominio.
Ejemplo de zona inversa (IPs):
Una zona inversa permite resolver una dirección IP a un nombre de dominio (DNS inverso).
// Zona inversa para la red 192.168.1.0/24
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-update { none; };
};
Nota: El nombre de la zona inversa se construye invirtiendo los octetos de la red y añadiendo .in-addr.arpa
.
4. Creación de Archivos de Zona
Los archivos de zona contienen los registros de recursos que definen los nombres de host, direcciones IP y otros datos del dominio.
Archivo de zona directa (db.midominio.com
):
sudo nano /etc/bind/db.midominio.com
$TTL 604800
@ IN SOA ns1.midominio.com. root.midominio.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.midominio.com.
ns1 IN A 192.168.1.10
www IN A 192.168.1.11
mail IN A 192.168.1.12
@ IN MX 10 mail.midominio.com.
$TTL
: Tiempo de vida predeterminado para los registros.SOA
: Start of Authority, define el servidor autoritativo y los tiempos de actualización.NS
: Name Server, especifica los servidores DNS para la zona.A
: Address, mapea un nombre de host a una dirección IPv4.MX
: Mail eXchange, define el servidor de correo.
Archivo de zona inversa (db.192
):
sudo nano /etc/bind/db.192
$TTL 604800
@ IN SOA ns1.midominio.com. root.midominio.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.midominio.com.
10 IN PTR ns1.midominio.com.
11 IN PTR www.midominio.com.
12 IN PTR mail.midominio.com.
PTR
: Pointer, mapea una dirección IP a un nombre de host.
5. Verificación y Reinicio
Antes de reiniciar, es crucial verificar la sintaxis de tus archivos.
Verificar named.conf.local
:
sudo named-checkconf /etc/bind/named.conf.local
Verificar los archivos de zona:
sudo named-checkzone midominio.com /etc/bind/db.midominio.com
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
Si no hay errores, reinicia el servicio BIND9:
sudo systemctl restart bind9
sudo systemctl enable bind9
Finalmente, puedes verificar el estado del servicio:
sudo systemctl status bind9