lunes, 28 de noviembre de 2011

Configuración avanzada de un servidor DNS BIND

En una entrada anterior vimos cómo configurar a un servidor DNS BIND para contener un dominio, el loopback y una zona con los servidores raíz de Internet.

En esta ocasión veremos cómo activar el rndc y la actualización dinámica (DDNS).

Para esto utilizaré dos equipos Solaris 10, uno contendrá el servidor y otro lo utilizaremos como cliente.

Además del archivo con los servidores raíz (db.cache) y del loopback (db.127.0.0) voy a crear dos archivos más, uno para el dominio y otro para la resolución inversa de mi red local (192.168.100.0/24)

db.unixymas.com.mx

$TTL 3h
; Zona unixymas.com.mx
@       IN SOA draco.unixymas.com.mx. administrator.unixymas.com.mx. (
                01 ; serial
                3h ; refresh
                1h ; retry
                1w ; expire
                1h ) ; negative ttl
@       IN NS draco.unixymas.com.mx.
draco   IN A 192.168.100.10

db.192.168.100

$TTL 3h
; Zona 100.168.192.in-addr.arpa
@       IN SOA draco.unixymas.com.mx. administrator.unixymas.com.mx. (
                01 ; serial
                3h ; refresh
                1h ; retry
                1w ; expire
                1h ) ; negative ttl
@       IN NS draco.unixymas.com.mx.
10      IN PTR draco.unixymas.com.mx.

Observen que en realidad los dos archivos solo contienen los registros SOA y NS, esto es porque los vamos a actualizar en forma dinámica.

Para actualizar en forma dinámica una zona es necesario otorgarle la autoridad a la zona mediante la opción allow-update en el archivo de configuración /etc/named.conf . Se le puede otorgar la autoridad a una IP, a una lista; pero la forma más segura es por medio de una llave. Dicha llave es una cadena cifrada con el algoritmo HMAC-MD5.

Lo primero es crear la llave por medio del comando dnssec-keygen en la forma: dnssec-keygen –a HMAC-MD5 –b 128 –n HOST llave

# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST update-key
Kupdate-key.+157+04139

Con este comando generamos 2 archivos uno con terminación .key y otro con .private . En el caso de este algoritmo en realidad los dos archivos contienen información similar, vamos a revisar el .private

Kupdate-key.+157+04139.private

Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: onuHJl6U5lqKEk8/9mbMQw==
Bits: AAA=

La cadena señalada como key es la que vamos a utilizar.

El archivo de configuración queda de la siguiente forma:

options {
        directory "/var/named";
};

zone "." {
        type hint;
        file "db.cache";
};

zone "0.0.127.in.addr.arpa" {
        type master;
        file "db.127.0.0";
};

zone "unixymas.com.mx" {
        type master;
        file "db.unixymas.com.mx";
        allow-update { key "update-key"; };
};

zone "100.168.192.in-addr.arpa" {
        type master;
        file "db.192.168.100";
        allow-update { key "update-key"; };
};

key "update-key" {
        algorithm hmac-md5;
        secret "onuHJl6U5lqKEk8/9mbMQw==";
};

Ahora ya podemos iniciar el BIND, desde otro equipo, en el que ya configuramos al servidor draco.unixymas.com.mx como su servidor de dominio, vamos a agregar un nuevo nombre por medio del comando nsupdate en la formal: nsupdate –k archivo.key ó nsupdate –k archivo.private

Esto nos va a llevar al modo interactivo, desde el cual, podemos agregar o eliminar nombres con los siguientes comandos:

update add nombre ttl tipo dato

update delete nombre

En este ejemplo, vamos a agregar una dirección en el dominio unixymas.com.mx

# nsupdate -k Kupdate-key.+157+04139.private
> update add equuleus.unixymas.com.mx 10800 a 192.168.100.20
>

La línea en blanco al final, le indica que ejecute el cambio.

Para la resolución inversa la actualización es similar:

# nsupdate -k Kupdate-key.+157+04139.private
> update add 20.100.168.192.in-addr.arpa 10800 ptr equuleus.unixymas.com.mx
>

Ahora vamos a ver cómo se activa el rndc, necesitamos como requisito indispensable una llave, puede ser la misma para el DNS dinámico, pero en este ejemplo vamos a crear una nueva:

# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST rndc-key
Krndc-key.+157+11727

Ahora vamos a activarlo en el archivo de configuración con la opción controls, el archivo queda finalmente así:

/etc/named.conf

options {
        directory "/var/named";
};

zone "." {
        type hint;
        file "db.cache";
};

zone "0.0.127.in.addr.arpa" {
        type master;
        file "db.127.0.0";
};

zone "unixymas.com.mx" {
        type master;
        file "db.unixymas.com.mx";
        allow-update { key "update-key"; };
};

zone "100.168.192.in-addr.arpa" {
        type master;
        file "db.192.168.100";
        allow-update { key "update-key"; };
};

key "update-key" {
        algorithm hmac-md5;
        secret "onuHJl6U5lqKEk8/9mbMQw==";
};

controls {
        inet * allow { any; } keys { "rndc-key"; };
};

key "rndc-key" {
        algorithm hmac-md5;
        secret "5V73kf47NK6HjvygCjCJ9w==";
};

En el cliente, es necesario crear el archivo /etc/rndc.conf

/etc/rndc.conf

options {
        default-server 192.168.100.10;
        default-key "rndc-key";
};

key "rndc-key" {
        algorithm hmac-md5;
        secret "5V73kf47NK6HjvygCjCJ9w==";
};

Por último observen que los archivos de zona ya fueron actualizados por el BIND:

db.unixymas.com.mx

$ORIGIN .
$TTL 10800      ; 3 hours
unixymas.com.mx         IN SOA  draco.unixymas.com.mx. administrator.unixymas.com.mx. (
                                2          ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      draco.unixymas.com.mx.
$ORIGIN unixymas.com.mx.
draco                   A       192.168.100.10
equuleus                A       192.168.100.20

db.192.168.100

$ORIGIN .
$TTL 10800      ; 3 hours
100.168.192.in-addr.arpa IN SOA draco.unixymas.com.mx. administrator.unixymas.com.mx. (
                                2          ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      draco.unixymas.com.mx.
$ORIGIN 100.168.192.in-addr.arpa.
10                      PTR     draco.unixymas.com.mx.
20                      PTR     equuleus.unixymas.com.mx.

No hay comentarios.: