Mostrando las entradas con la etiqueta rndc. Mostrar todas las entradas
Mostrando las entradas con la etiqueta rndc. Mostrar todas las entradas

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.