Transacciones firmadas (TSIG) con BIND 9 en Debian

Con BIND 9 es posible firmar las transacciones (TSIG) entre servidor primario y secundario con una llave encriptada. TSIG es usado primordialmente para restringir quien puede actualizar cambios en las zonas. De hecho, este es el método recomendado por BIND.


Generación de una llave TSIG

En el servidor DNS primario genera una llave TSIG,

# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST servidor.debian

Esto genera dos llaves del tipo,

Kservidor.debian.+aaa+iiiii.key
Kservidor.debian.+aaa+iiiii.private

en donde aaa es una representación numérica del algoritmo y iiiii es el identificador de la llave (huella). Mueve las llaves a /etc/bind,

# mv Kservidor.debian.+aaa+iiiii.* /etc/bind

Configuración en el servidor primario

Edita /etc/bind/named.conf.local e inserta la llave,

// TSIG Key
key servidor.debian. {
        algorithm hmac-md5;
        secret "+aLKMfTLKdfg6bKYj48gZv==";
};

La llave secreta se encuentra en el archivo .private,

Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: +aLKMfTLKdfg6bKYj48gZv==

Edita las zonas y modifica el instructivo allow-transfer modificando el número IP por la llave,

zone "ficticio.cl" {
        type master;
        file "/etc/bind/db.ficticio.cl";
        allow-query { any; };
        //allow-transfer { 100.10.10.11; };
        allow-transfer { key servidor.debian.; };
};

Esto da permiso a los servidores secundarios a actualizar la zona usando la llave TSIG.

Configuración en el servidor secundario

En el servidor secundario inserta la llave en /etc/bind/named.conf.local,

// TSIG Key
key servidor.debian. {
        algorithm hmac-md5;
        secret "+aLKMfTLKdfg6bKYj48gZv==";
};

server 100.10.10.10 {
        keys { servidor.debian.; };
};

El último instructivo asocia el número IP del servidor primario con la llave TSIG.

Reinicia BIND 9 en el servidor primario y secundario,

# /etc/init.d/bind9 restart

Configuraciones asociadas

Bind9TSIG (última edición 2011-02-24 23:58:11 efectuada por RicardoYanez)