Seguridad en BIND 9

BIND 9 ofrece Firmas de transacciones (TSIG) y Firmas (SIG) como medidas de seguridad para named.

El servidor de nombres con BIND 9, por omisión, no permite actualizaciones dinámicas en zonas autorizadas, de forma similar a lo que sucede en BIND 8.

BIND 9 proporciona soporte principalmente a las Firmas de transacciones (TSIG) para la comunicación de servidor a servidor. Esto incluye los mensajes de consulta recursiva, notificación y transferencia de zona. TSIG también resulta útil para las actualizaciones dinámicas. Un servidor primario para una zona dinámica debe utilizar control de acceso para controlar las actualizaciones pero el control de acceso basado en IP resulta insuficiente.

Al utilizar el cifrado base de claves en lugar del método actual de listas de control de acceso, TSIG puede utilizarse para restringir quién puede actualizar las zonas dinámicas. A diferencia del método ACL (Lista de control de acceso) de las actualizaciones dinámicas, la clave TSIG puede distribuirse a otros actualizadores sin necesidad de modificar los archivos de configuración en el servidor de nombres, lo que significa que no es necesario que el servidor de nombres vuelva a leer los archivos de configuración.

Resulta importante observar que BIND 9 no tiene todas las palabras clave implementadas en BIND 8. En este ejemplo, utilizamos la configuración maestra simple de BIND 8.
Nota: Para utilizar named 9, es necesario volver a enlazar el enlace simbólico con el daemon named con named9 y nsupdate con nsupdate9 ejecutando los mandatos siguientes:
  1. ln -fs /usr/sbin/named9 /usr/sbin/named
  2. ln -fs /usr/sbin/nsupdate9 /usr/sbin/nsupdate
  1. Genere la clave utilizando el mandato dnssec-keygen:
    dnssec-keygen -a HMAC-MD5 -b 128 -n HOST keyname
    • HMAC-MD5 es el algoritmo utilizado para el cifrado
    • 128 es la longitud de la clave que debe utilizarse (o el número de bits)
    • HOST: HOST es la palabra clave de TSIG utilizada para generar una clave de sistema principal para un cifrado de clave compartido.
    El mandato
    dnssec-keygen -a HMAC-MD5 -b 128 -n HOST venus-batman.abc.aus.century.com
    generaría dos archivos de claves, como se indica a continuación:
    Kvenus-batman.abc.aus.century.com.+157+35215.key
    Kvenus-batman.abc.aus.century.com.+157+35215.private
    • 157 el algoritmo utilizado (HMAC-MD5)
    • 35215 es la huella, que resulta útil en DNNSEC porque se permiten varias claves por zona.
  2. Añada la entrada a named.conf en el servidor de nombres maestro:
    // TSIG Key
    key venus-batman.abc.aus.century.com. {
            algorithm hmac-md5;
            secret "+UWSvbpxHWFdNwEAdy1Ktw==";
    };

    Suponiendo que se utilice HMAC-MD5, ambos archivos de claves contendrán la clave compartida, que se almacena como la última entrada de los archivos. Halle una forma seguridad de copiar la clave secreta compartida en el cliente. No es necesario que copie el archivo de claves, simplemente la clave secreta compartida.

    A continuación se muestra la entrada para el archivoKvenus-batman.abc.aus.century.com.+157+35215.private:
    Private-key-format: v1.2
    Algorithm: 157 (HMAC_MD5)
    Key: +UWSvbpxHWFdNwEAdy1Ktw==
    A continuación se muestra un ejemplo del archivo named.conf para el servidor de nombres maestro. La zona abc.aus.century.com sólo permite la transferencia de zona y las actualizaciones dinámicas a los servidores con la clave venus-batman.abc.aus.century.com. Realice lo mismo con la zona inversa, que requiere que los actualizadores tengan la clave compartida.
    // TSIG Key
    key venus-batman.abc.aus.century.com. {
            algorithm hmac-md5;
            secret "+UWSvbpxHWFdNwEAdy1Ktw==";
    };
    
    options {
            directory "/usr/local/domain";
    };
    
    zone "abc.aus.century.com" in {
            type master;
            file "named.abc.data";
            allow-transfer { key venus-batman.abc.aus.century.com.;};
            allow-update{ key venus-batman.abc.aus.century.com.; };
    };

    Como las transferencias de zonas están ahora restringidas a aquellos que tengan una clave, el archivo del servidor de nombres esclavo named.conf también debe editarse. Todas las peticiones a 192.9.201.1 (venus.abc.aus.century.com) están firmadas mediante una clave. Observe que el nombre de la clave (venus-batman.abc.aus.century.com.) debe coincidir con la de los servidores que la utilizan.

    A continuación se muestra un ejemplo del archivo named.conf en el servidor de nombres esclavo:
    // TSIG Key
    key venus-batman.abc.aus.century.com. {
            algorithm hmac-md5;
            secret "+UWSvbpxHWFdNwEAdy1Ktw==";
    };
    
    server 192.9.201.1{
            keys { venus-batman.abc.aus.century.com.;};
    };
    
    options {
            directory "/usr/local/domain";
    };
    
    zone "abc.aus.century.com" IN {
        type slave;
        file "named.abc.data.bak";
        masters { 192.9.201.1; };
    };