Introducción
El Servicio de Nombres de Dominio (DNS) es una parte fundamental de la infraestructura de internet, ya que traduce nombres de dominio legibles para humanos en direcciones IP que las computadoras utilizan para identificar y comunicarse entre sí. En un entorno de servidor, la correcta configuración y gestión del servicio DNS es esencial para garantizar la resolución de nombres de manera eficiente y confiable. Este artículo cubre los pasos necesarios para configurar y gestionar un servidor DNS en Ubuntu Server.
Instalación del Servidor DNS (BIND9)
BIND9 es una de las implementaciones de servidor DNS más populares y robustas disponibles. Vamos a instalar y configurar BIND9 en Ubuntu Server.
Paso 1: Actualización del Sistema
Antes de instalar cualquier software, es una buena práctica actualizar el sistema para asegurarse de que todos los paquetes están al día.
sudo apt update
sudo apt upgrade
Paso 2: Instalación de BIND9
Para instalar BIND9, utilizamos el gestor de paquetes apt
:
sudo apt install bind9 bind9utils bind9-doc
Paso 3: Configuración Básica de BIND9
Una vez instalado BIND9, es necesario configurarlo. Los archivos de configuración principales de BIND9 están ubicados en /etc/bind
.
Configuración del archivo named.conf.options
Editamos el archivo /etc/bind/named.conf.options
para configurar las opciones globales de BIND9.
sudo nano /etc/bind/named.conf.options
Asegúrate de que el archivo contenga las siguientes opciones básicas:
options {
directory "/var/cache/bind";
// Restrict queries to local network (change to match your network)
allow-query { any; };
// If you have a forwarder, uncomment and set it here
// forwarders {
// 8.8.8.8;
// 8.8.4.4;
// };
// Uncomment to enable IPv6
// listen-on-v6 { any; };
// Disable DNSSEC validation for now
dnssec-validation no;
auth-nxdomain no; # conform to RFC1035
listen-on { any; };
};
Configuración de una Zona DNS
Editamos el archivo /etc/bind/named.conf.local
para añadir las zonas DNS que deseamos gestionar. Por ejemplo, para una zona llamada example.com
:
sudo nano /etc/bind/named.conf.local
Añadimos la configuración de la zona:
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168.0";
};
Paso 4: Creación de los Archivos de Zona
Creamos los archivos de zona necesarios en el directorio /etc/bind/zones/
.
Archivo de Zona Directa
sudo mkdir -p /etc/bind/zones
sudo nano /etc/bind/zones/db.example.com
Contenido del archivo db.example.com
:
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
@ IN A 192.168.0.2
ns1 IN A 192.168.0.2
www IN A 192.168.0.3
Archivo de Zona Inversa
sudo nano /etc/bind/zones/db.192.168.0
Contenido del archivo db.192.168.0
:
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
2 IN PTR ns1.example.com.
3 IN PTR www.example.com.
Paso 5: Comprobación de la Configuración
Antes de iniciar BIND9, es crucial verificar que no haya errores en la configuración:
sudo named-checkconf
sudo named-checkzone example.com /etc/bind/zones/db.example.com
sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/zones/db.192.168.0
Paso 6: Iniciar y Habilitar BIND9
Una vez verificada la configuración, podemos iniciar BIND9 y habilitarlo para que se ejecute al inicio del sistema.
sudo systemctl start bind9
sudo systemctl enable bind9
Administración del Servidor DNS
Verificación del Servicio
Para asegurarnos de que BIND9 está funcionando correctamente, podemos utilizar la herramienta dig
para realizar consultas DNS.
dig @localhost example.com
Reiniciar BIND9
Si realizas cambios en los archivos de configuración, es necesario reiniciar BIND9 para aplicar los cambios:
sudo systemctl restart bind9
Verificar el Estado del Servicio
Para comprobar el estado del servicio BIND9:
sudo systemctl status bind9
Seguridad y Buenas Prácticas
- Configurar un Firewall:
Asegúrate de que solo las direcciones IP permitidas puedan acceder al servidor DNS.
sudo ufw allow from 192.168.0.0/24 to any port 53
- Habilitar DNSSEC:
Para mejorar la seguridad, considera habilitar DNSSEC en tu configuración de BIND9. - Monitoreo y Logs:
Mantén un monitoreo constante del rendimiento y los logs del servidor DNS para detectar posibles problemas o ataques.
Conclusión
Configurar y gestionar un servidor DNS en Ubuntu Server con BIND9 es un proceso que requiere atención a los detalles, pero que resulta en una infraestructura de red más robusta y eficiente. Siguiendo los pasos descritos en este artículo, deberías ser capaz de instalar, configurar y mantener un servidor DNS que responda de manera eficiente a las solicitudes de nombres de dominio en tu red.
