Skip to content

Configurar BIND9 para conectar con CertGuardian

Fuente: https://dev.to/haasal/set-up-your-own-ddns-server-with-bind9-and-go-193o

Esta guía explica cómo configurar BIND para permitir actualizaciones DNS dinámicas mediante el protocolo RFC 2136. Esto permite que CertGuardian pueda crear o modificar registros DNS automáticamente.

Instalar paquete rc2136

Instala las herramientas de BIND necesarias para trabajar con actualizaciones dinámicas mediante RFC 2136:

bash
apt-get install -y bind9utils

Generar clave rfc2136

Genera una clave TSIG que permitirá la comunicación segura entre CertGuardian y BIND:

bash
tsig-keygen ddnskey >> /secrets/ddnskey

Después, muestra el contenido de la clave generada:

bash
cat /secrets/ddnskey

Guarda esta información, ya que será necesaria para configurar la zona DNS.

Actualizar la configuración de la zona

Edita el archivo de configuración local de BIND:

bash
vi /etc/bind/named.conf.local

Añade la clave generada y permite que dicha clave pueda actualizar la zona correspondiente mediante allow-update. Ejemplo:

bind
key "ddnskey" { 
        algorithm hmac-sha256;
        secret "xxxxxxxxxxxxxxxxxxxxx";
};

zone "david.es" {
        type master;
        file "/etc/bind/db.zonad";
        allow-update { key "ddnskey"; };
};

INFO

Sustituye david.es, la ruta del archivo de zona y el valor de secret por los datos reales de tu configuración.

Reinicia el servicio de BIND para aplicar los cambios:

bash
systemctl restart bind9

Probar la actualización dinámica

Desde otra máquina, ejecuta nsupdate indicando la clave generada anteriormente:

bash
nsupdate -k /secrets/ddnskey

Se abrirá una consola interactiva. Introduce las siguientes líneas, adaptando el servidor, la zona y los registros a tu entorno:

bash
server 127.0.0.1
zone david.es
update add www.david.es 180 A 192.168.0.150
send

INFO

Sustituye david.es por los datos reales de tu configuración.

Si el comando send no devuelve ningún error, la actualización se habrá realizado correctamente. Para comprobarlo, ejecuta una consulta DNS con dig:

bash
dig @127.0.0.1 www.david.es A

INFO

Sustituye @127.0.0.1 por la dirección IP del servidor DNS que estás utilizando.

Si todo está configurado correctamente, la respuesta debería mostrar el registro A añadido.

Configuración en CertGuardian

Crear servidor DNS

wip

Crear claves DNS

wip

dns_rfc2136_server = 127.0.0.1
dns_rfc2136_port = 53
dns_rfc2136_name = ddnskey.
dns_rfc2136_secret = xxxxxxxxxx
dns_rfc2136_algorithm = HMAC-SHA256
dns_rfc2136_sign_query = false