Comandos Clave - 331.4 DNS y Criptografía

DNSSEC - Generación de Claves

ComandoDescripción
dnssec-keygen -a RSASHA256 -b 2048 -n ZONE ejemplo.comGenerar ZSK (Zone Signing Key)
dnssec-keygen -a RSASHA256 -b 4096 -n ZONE -f KSK ejemplo.comGenerar KSK (Key Signing Key)
dnssec-keygen -a ECDSAP256SHA256 -n ZONE ejemplo.comGenerar ZSK con ECDSA
dnssec-keygen -a ECDSAP256SHA256 -n ZONE -f KSK ejemplo.comGenerar KSK con ECDSA

DNSSEC - Firma y Verificación

ComandoDescripción
dnssec-signzone -o ejemplo.com db.ejemplo.comFirmar zona (genera .signed)
dnssec-signzone -A -3 salt -N INCREMENT -o zona -t db.zonaFirmar con NSEC3 y auto-incremento
dnssec-signzone -3 "salt" -H 10 -o zona db.zonaFirmar con NSEC3, salt e iteraciones
dnssec-dsfromkey Kejemplo.com.+008+67890.keyGenerar registro DS desde KSK
dnssec-verify -o ejemplo.com db.ejemplo.com.signedVerificar zona firmada

DNSSEC - Diagnóstico

ComandoDescripción
dig +dnssec ejemplo.comConsulta DNS solicitando registros DNSSEC
dig DNSKEY ejemplo.comConsultar claves DNSKEY publicadas
dig DS ejemplo.com @servidor-padreConsultar registro DS en zona padre
dig +sigchase +trusted-key=./root.key ejemplo.comSeguir cadena de confianza
delv @servidor ejemplo.comValidación DNSSEC con detalle

TSIG

ComandoDescripción
tsig-keygen -a hmac-sha256 nombre-claveGenerar clave TSIG
ddns-confgen -k nombre-claveGenerar clave para actualizaciones dinámicas
dig -k /etc/named/transfer.key @servidor AXFR zonaTransferencia de zona con TSIG
nsupdate -k /etc/named/update.keyActualización dinámica con TSIG

DANE / TLSA

ComandoDescripción
dig TLSA _443._tcp.www.ejemplo.comConsultar registro TLSA
openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl dgst -sha256Generar hash para TLSA

Unbound (Resolver con validación DNSSEC)

Comando / ArchivoDescripción
unbound-checkconfVerificar configuración de Unbound
unbound-anchor -a /var/lib/unbound/root.keyObtener/actualizar trust anchor raíz
unbound-control statusEstado del servicio Unbound
unbound-control dump_cacheVolcado de la caché
/etc/unbound/unbound.confArchivo de configuración principal

Registros DNSSEC Importantes

RegistroPropósito
RRSIGFirma digital de un RRset
DNSKEYClave pública (ZSK o KSK)
DSHash de KSK en zona padre (delegación segura)
NSECPrueba de no existencia (secuencial)
NSEC3Prueba de no existencia (con hash)
NSEC3PARAMParámetros de NSEC3
TLSAAsociación de certificado TLS (DANE)

Configuración BIND para DNSSEC

zone "ejemplo.com" {
    type master;
    file "db.ejemplo.com.signed";
    key-directory "/var/named/keys";
    auto-dnssec maintain;
    inline-signing yes;
};