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
donechown -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