Configuración de DNSSEC

Daniel Eugenin M. -

Esta configuración ha sido probada bajo un servidor CentOS 6, utilizando Bind.

Este ejemplo es realizado con el dominio: zbox.cl

 

Habilitar en el named.conf, sección "options":

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

 

1) Crear el directorio

# mkdir /etc/pki/dnssec-keys/
# chown named.named /etc/pki/dnssec-keys/

 

2) Crear los archivos ZSK y KSK:

# cd /etc/pki/dnssec-keys/
# dnssec-keygen -r /dev/urandom -a RSASHA256 -b 2048 -n ZONE zbox.cl
# dnssec-keygen -r /dev/urandom -a RSASHA256 -b 4096 -n ZONE -f KSK zbox.cl
# chown named.named *

 

Esto anterior generó 4 archivos /etc/pki/dnssec-keys/:

.key          son las llaves públicas

.private    son las llaves privadas

Por ejemplo:

# ls -l /etc/pki/dnssec-keys/
total 16
-rw-r--r--. 1 named named 943 Jun 18 23:31 Kzbox.cl.+008+20266.key
-rw-------. 1 named named 3316 Jun 18 23:31 Kzbox.cl.+008+20266.private
-rw-r--r--. 1 named named 598 Jun 18 23:28 Kzbox.cl.+008+41673.key
-rw-------. 1 named named 1776 Jun 18 23:28 Kzbox.cl.+008+41673.private

 

3) Incluir estos archivos a la zona

Editar el archivo de zona. En este ejemplo es /var/named/chroot/var/named/ext/zbox.cl.zone

Y agregar al final:

; DNSSEC
$INCLUDE /etc/pki/dnssec-keys/Kzbox.cl.+008+41673.key
$INCLUDE /etc/pki/dnssec-keys/Kzbox.cl.+008+20266.key

 

4) Firmar:

# cd /var/named/chroot/var/named/ext/
# dnssec-signzone -S -K /etc/pki/dnssec-keys -e +3024000 -o zbox.cl -N INCREMENT zbox.cl.zone

 

Esto generará un archivo: zbox.cl.zone.signed

 

5) Modificar la zona

Editar el named.conf y modificar la zona:

zone "zbox.cl" IN {
   type master;
   file "ext/zbox.cl.zone.signed";
};

 

6) Reiniciar el servicio named

# service named restart

 

7) Contactar a NIC Chile https://www.nic.cl/dnssec/ y enviar sus llaves para la activación de este sistema desde NIC.

 

8) Dejar un cron mensual para la firma, puesto que dura 30 días.

 

8.1) Crear el archivo /usr/local/sbin/firma_zonas

Nota1: se asume que ls zonas están en el directorio /var/named/chroot/var/named/ext

Nota2: se asume que los nombres de los archivos son, por ejemplo: zbox.cl.zone, zimbra.cl.zone

#!/bin/sh

SIGNZONE="/usr/sbin/dnssec-signzone"
DNSSEC_KEYS="/etc/pki/dnssec-keys"
ZONEFILES="/var/named/chroot/var/named/ext"

 

cd $ZONEFILES
for i in *.signed; do
   ZONE=`echo $i | /bin/cut -d. -f1-2`
   $SIGNZONE -S -K $DNSSEC_KEYS -e +3024000 -o $ZONE -N INCREMENT $ZONE.zone
done

chown -R named.named $ZONEFILES
/sbin/service named reload

 

8.2) Permisos

# chmod 755 /usr/local/sbin/firma_zonas

 

8.3) Dejarlo en cron: /etc/cron.monthly/update_firmas

#!/bin/bash

/usr/local/sbin/firma_zonas

 

8.4) Permisos

# chmod 755  /etc/cron.monthly/update_firmas

 

 

 

Herramientas de chequeo de DNSSEC:

http://dnssec-debugger.verisignlabs.com/

http://dnsviz.net/

 

 

Referencias:

https://www.crc.id.au/configuring-dnssec-on-el6-and-bind-9/

 

0 Comentarios

Inicie sesión para dejar un comentario.
Tecnología de Zendesk