Publicado en

Guía paso a paso para instalar y configurar un servidor DNS con BIND en Linux

La gestión de servidores DNS es esencial para los administradores de sistemas que necesitan garantizar que los servicios de red sean estables y accesibles. BIND (Berkeley Internet Name Domain) es uno de los servidores DNS más utilizados en sistemas Linux debido a su fiabilidad y flexibilidad. En este artículo, te ofrecemos una guía detallada para instalar y configurar BIND en tres de las distribuciones de Linux más populares: Debian, Fedora y CentOS. Sigue estos pasos para tener tu servidor DNS funcionando de manera eficiente.

1. Preparativos previos

Antes de comenzar la instalación, es recomendable actualizar los paquetes de tu sistema. Dependiendo de la distribución de Linux que estés utilizando, ejecuta los siguientes comandos:

Para Debian y derivados (como Ubuntu):

sudo apt update
sudo apt upgrade -y

Para Fedora:

sudo dnf update -y

Para CentOS:

sudo yum update -y

2. Instalar BIND en tu sistema

BIND es fácil de instalar en cualquier distribución de Linux. Los pasos varían ligeramente dependiendo de la distribución.

En Debian/Ubuntu:

Para instalar BIND en una distribución basada en Debian, utiliza el siguiente comando:

sudo apt install bind9 bind9utils bind9-doc -y

En Fedora:

En Fedora, puedes instalar BIND utilizando dnf:

sudo dnf install bind bind-utils -y

En CentOS:

Para instalar BIND en CentOS, usa yum:

sudo yum install bind bind-utils -y

3. Verificar la instalación de BIND

Una vez instalado BIND, es importante verificar que el servicio esté funcionando correctamente. Para hacerlo, puedes utilizar el siguiente comando en todas las distribuciones:

sudo systemctl status bind9

Este comando te mostrará si el servicio está activo y en funcionamiento. Si está todo en orden, deberías ver un mensaje que indica que bind9 está activo.

4. Configurar BIND para que funcione como servidor DNS

BIND utiliza varios archivos de configuración que se encuentran en el directorio /etc/bind en Debian/Ubuntu, /etc/named en CentOS y Fedora, y son responsables de definir cómo se resolverán las consultas DNS.

Archivos principales de configuración:

  • named.conf: Este es el archivo principal de configuración.
  • named.conf.options: Aquí puedes definir las opciones globales, como las opciones de escucha.
  • named.conf.local: En este archivo puedes agregar las configuraciones específicas de las zonas DNS.

Configuración básica

Para configurar BIND, primero debes abrir el archivo named.conf.options con el siguiente comando:

sudo nano /etc/bind/named.conf.options  # Debian/Ubuntu
sudo nano /etc/named.conf.options # CentOS/Fedora

En este archivo podrás definir las opciones de seguridad, como permitir que solo ciertas direcciones IP hagan consultas a tu servidor DNS. Un ejemplo básico de configuración sería:

options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
allow-recursion { localnets; };
forwarders {
8.8.8.8;
8.8.4.4;
};
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
};

Esta configuración permite la recursión y especifica los servidores de reenvío, en este caso, los servidores DNS de Google.

Luego, deberás configurar las zonas DNS. Para ello, abre el archivo named.conf.local con el siguiente comando:

sudo nano /etc/bind/named.conf.local  # Debian/Ubuntu
sudo nano /etc/named.conf.local # CentOS/Fedora

Un ejemplo de configuración de una zona directa sería:

zone "midominio.com" {
type master;
file "/etc/bind/db.midominio.com"; # Ubicación del archivo de la zona
};

5. Configurar el archivo de zona

El siguiente paso es configurar el archivo de zona, donde definirás los registros DNS (A, MX, CNAME, etc.). Crea el archivo de zona con el nombre correspondiente en /etc/bind/ (Debian/Ubuntu) o /var/named/ (CentOS/Fedora).

sudo nano /etc/bind/db.midominio.com  # Debian/Ubuntu
sudo nano /var/named/db.midominio.com # CentOS/Fedora

Ejemplo de archivo de zona:

$TTL    604800
@ IN SOA ns1.midominio.com. admin.midominio.com. (
2023040501 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.midominio.com.
@ IN A 192.168.1.1
ns1 IN A 192.168.1.2

Este archivo define los registros SOA, NS, y A, que permiten resolver el nombre de dominio midominio.com.

6. Reiniciar y verificar la configuración

Una vez que hayas configurado todo, es importante reiniciar el servicio de BIND para aplicar los cambios:

sudo systemctl restart bind9  # Debian/Ubuntu
sudo systemctl restart named # CentOS/Fedora

Verifica que el servidor DNS esté funcionando correctamente utilizando el siguiente comando:

dig @localhost midominio.com

Este comando realiza una consulta DNS a tu servidor local para verificar si responde correctamente.

7. Configurar el firewall

Asegúrate de permitir el tráfico DNS a través del firewall. En Debian/Ubuntu, puedes usar ufw:

sudo ufw allow 53

En CentOS/Fedora, utiliza firewalld:

sudo firewall-cmd --zone=public --add-port=53/tcp --permanent
sudo firewall-cmd --zone=public --add-port=53/udp --permanent
sudo firewall-cmd --reload

Conclusión

Ahora tienes un servidor DNS configurado con BIND en tu sistema Linux. Ya sea que uses Debian, Fedora o CentOS, los pasos de instalación y configuración son similares, y BIND te permite ofrecer un servicio DNS robusto y flexible. Recuerda que la seguridad de tu servidor DNS es crucial, así que no olvides configurar adecuadamente las restricciones de acceso y mantener el sistema actualizado para protegerlo contra posibles vulnerabilidades.

Deja una respuesta

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