Configuración Avanzada de Servicios de Red: DNS, DHCP y DDNS para Servidores y Dominios

Clasificado en Informática

Escrito el en español con un tamaño de 11,61 KB

Configuración de Servidor DNS con BIND/Named

Este apartado detalla la configuración de un servidor DNS utilizando BIND/Named, ideal para gestionar un dominio propio (por ejemplo, adquirido en OVH).

1. Instalación y Verificación de BIND

Para comenzar, instalaremos el servicio DNS BIND. Primero, actualice los paquetes del sistema:

sudo apt update

Luego, instale el servicio BIND9:

sudo apt install bind9

Para verificar que el servicio se está ejecutando correctamente, utilice el siguiente comando:

systemctl status named

Asegúrese de permitir el servicio en el firewall (UFW):

sudo ufw allow bind9

2. Configuración de Forwarders

Acceda al archivo de configuración de los forwarders, named.conf.options, y añada las direcciones IP de los servidores DNS que desee utilizar (por ejemplo, los de Google):

// Ejemplo de configuración en named.conf.options
options {
    directory "/var/cache/bind";
    // ... otras opciones ...
    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    // ...
};

Guarde los cambios y salga del editor. Verifique la sintaxis del archivo con:

named-checkconf

3. Configuración de Zonas DNS

A continuación, cree copias de los ficheros de zona de ejemplo db.local y db.empty. Necesitará configurar dos zonas directas y una zona inversa para la resolución de nombres. Acceda a estos ficheros y modifíquelos según sus necesidades.

Una vez configuradas las zonas, añada sus definiciones y rutas dentro del archivo named.conf.local:

// Ejemplo de configuración en named.conf.local
zone "su-dominio.com" {
    type master;
    file "/etc/bind/db.su-dominio.com";
};

zone "1.168.192.in-addr.arpa" { // Ejemplo para red 192.168.1.0/24
    type master;
    file "/etc/bind/db.192";
};

Verifique la configuración de cada zona con named-checkzone:

named-checkzone su-dominio.com /etc/bind/db.su-dominio.com
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192

Finalmente, compruebe que la resolución DNS funciona correctamente utilizando nslookup:

nslookup su-dominio.com

Registro y Configuración de Dominio Gratuito con No-IP

Para obtener y configurar un dominio gratuito en internet, puede utilizar servicios como No-IP.

1. Registro en No-IP

Diríjase a la página oficial de No-IP. Una vez allí, introduzca el nombre de dominio que desee, por ejemplo, ivan.hopto.org, y proceda con el registro.

2. Configuración del Hostname Dinámico

Tras crear su cuenta en No-IP, navegue a la sección de DNS Dinámico y luego a No-IP Hostname. Aquí, podrá modificar el nombre de host y asociarlo a la dirección IP pública de su router.

Verificación de Soporte DDNS en Routers Domésticos

El DDNS (Dynamic DNS) es un servicio esencial que permite actualizar automáticamente los registros DNS cuando la dirección IP pública de su conexión a internet cambia.

1. Cómo Comprobar el Soporte DDNS

Para verificar si su router doméstico soporta DDNS, acceda a la interfaz de administración del router. Esto se hace generalmente introduciendo una de las siguientes direcciones IP en su navegador web:

  • 192.168.1.1
  • 192.168.0.1
  • 192.168.0.2
  • O la dirección IP de su puerta de enlace predeterminada.

Una vez dentro de la configuración del router, busque una sección o una opción relacionada con "DDNS", "DNS Dinámico" o "Dynamic DNS". Si encuentra esta opción, su router es compatible con DDNS; de lo contrario, no lo es.

Configuración de DDNS en Router Doméstico y CNAME para Dominio Propio

Si su router soporta DDNS, puede configurarlo para que su dominio gratuito de No-IP apunte siempre a su IP pública actual. Además, puede configurar un CNAME para su dominio propio (por ejemplo, de OVH) que apunte a este DDNS.

1. Obtención de Credenciales DDNS en No-IP

Acceda a la página de No-IP y, dentro de la sección de DNS Dinámico, diríjase a DDNS Keys / Groups. Aquí encontrará las claves necesarias para configurar el DDNS.

Primero, agregue un nuevo grupo y asígnele un nombre. Luego, asocie el hostname que registró previamente en No-IP a este grupo. El sistema le proporcionará un nombre de usuario y una clave (key) que deberá introducir en la configuración de su router.

2. Configuración del DDNS en el Router

Diríjase a la interfaz de administración de su router. Busque la sección de DDNS e introduzca el nombre de usuario y la clave obtenidos de No-IP. Guarde los cambios.

3. Verificación de la Configuración DDNS

Para verificar que la configuración es correcta, puede utilizar una herramienta como nslookup.io. Busque su hostname (por ejemplo, ivan.hopto.org) y debería mostrar la dirección IP pública actual de su router.

4. Configuración de CNAME para Dominio Propio (OVH)

Si tiene un dominio propio (por ejemplo, en OVH) y desea que un subdominio apunte a su DDNS, puede crear un registro CNAME en la configuración DNS de su proveedor de dominio. Por ejemplo, si su DDNS es ivan.hopto.org y su dominio propio es su-dominio.com, puede crear un CNAME como:

casa.su-dominio.com CNAME ivan.hopto.org.

De esta manera, casa.su-dominio.com siempre resolverá a la IP pública actualizada por su servicio DDNS.

Configuración de Servidor DHCP con ISC-DHCP-Server

El servicio DHCP (Dynamic Host Configuration Protocol) permite asignar automáticamente direcciones IP y otros parámetros de red a los dispositivos conectados. Utilizaremos ISC-DHCP-Server para esta configuración.

1. Instalación y Configuración de Interfaz

Instale el paquete isc-dhcp-server:

sudo apt install isc-dhcp-server

A continuación, configure la interfaz de red por la que desea que el servicio DHCP funcione. Edite el archivo de configuración de ISC-DHCP-Server (la ubicación puede variar, a menudo es /etc/default/isc-dhcp-server o similar) y especifique la interfaz. Por ejemplo, si utiliza un puente de red:

# En /etc/default/isc-dhcp-server
INTERFACESv4="br0" # Reemplace 'br0' con su interfaz o puente

2. Configuración de Rangos y Opciones DHCP

Ahora, edite el archivo principal de configuración de DHCP, /etc/dhcp/dhcpd.conf. Aquí definirá los rangos de IP, la red, la máscara de subred, los servidores DNS, la IP del router (puerta de enlace), la dirección de broadcast, y los tiempos de concesión por defecto y máximo para las direcciones IP.

Ejemplo de configuración en /etc/dhcp/dhcpd.conf:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option broadcast-address 192.168.1.255;
    default-lease-time 600;
    max-lease-time 7200;
}

3. Reserva de IP Estática

Dentro del mismo archivo dhcpd.conf, puede reservar una dirección IP específica para un dispositivo, como un servidor Windows, utilizando su dirección MAC:

host windows-server {
    hardware ethernet 00:11:22:33:44:55; # Reemplace con la MAC real
    fixed-address 192.168.1.50;
}

4. Reinicio del Servicio

Finalmente, reinicie el servicio DHCP para aplicar los cambios:

sudo systemctl restart isc-dhcp-server

Opciones Adicionales de DHCP para Arranque PXE

Para habilitar el arranque de red (PXE) a través de su servidor DHCP, debe añadir o descomentar ciertas opciones en el archivo /etc/dhcp/dhcpd.conf.

1. Configuración de Opciones PXE

Dentro de la declaración de su subred en dhcpd.conf, asegúrese de que las siguientes opciones estén configuradas:

  • Descomente o añada el parámetro authoritative si su servidor DHCP es el único en la red.
  • Añada el parámetro allow booting; para permitir el arranque desde la red.
  • Asegúrese de que la opción option domain-name-servers esté configurada con las IPs de sus servidores DNS.
  • Defina el filename del archivo de arranque PXE (comúnmente pxelinux.0).
  • Especifique el next-server, que es la dirección IP del servidor TFTP donde se encuentra el archivo de arranque PXE.

Ejemplo de configuración en /etc/dhcp/dhcpd.conf:

subnet 192.168.1.0 netmask 255.255.255.0 {
    # ... otras opciones DHCP ...
    authoritative;
    allow booting;
    allow new-leases;
    option domain-name-servers 8.8.8.8, 8.8.4.4; # O la IP de su servidor DNS local
    filename "pxelinux.0";
    next-server 192.168.1.10; # IP del servidor TFTP
}

Recuerde reiniciar el servicio DHCP después de realizar estos cambios.

Actualización Dinámica de DNS y Gestión de DNSSEC (Ejemplo OVH)

La actualización dinámica de registros DNS es crucial para mantener la coherencia de los nombres de dominio con IPs cambiantes. Este proceso puede automatizarse, y es importante considerar la seguridad con DNSSEC.

1. Generación de Claves API en OVH

Para automatizar la actualización de registros DNS en un proveedor como OVH, necesitará generar claves API. Acceda a su panel de control de OVH y cree unas API Keys con los permisos necesarios (generalmente GET, PUT y POST para la gestión de DNS).

2. Creación y Configuración del Script de Actualización

Desarrolle un script (por ejemplo, en Python o Bash) que utilice estas API Keys para interactuar con el servicio DNS de OVH. El script deberá ser configurado con los siguientes campos:

  • domain: Su nombre de dominio.
  • appKey: La clave de aplicación generada.
  • appSecret: El secreto de la aplicación.
  • consumerKey: La clave de consumidor.

Este script se encargará de obtener su IP pública actual y actualizar el registro DNS correspondiente en OVH si detecta un cambio.

3. Programación de la Ejecución con Cron

Una vez que el script esté configurado y probado, programe su ejecución periódica utilizando crontab. Esto asegurará que sus registros DNS se mantengan actualizados automáticamente. Por ejemplo, para ejecutar el script cada 5 minutos:

*/5 * * * * /ruta/a/su/script.sh

Nota sobre DNSSEC: Aunque el texto original menciona DNSSEC en el título, la descripción se centra en la actualización dinámica de DNS a través de API. DNSSEC es un conjunto de extensiones de seguridad para DNS que proporciona autenticación de origen de datos y la integridad de los datos. Su implementación generalmente se realiza a nivel del registrador de dominio y del servidor DNS autoritativo, y no es directamente parte del proceso de actualización dinámica de IP, aunque es fundamental para la seguridad general del dominio.

Entradas relacionadas: