Este tutorial lo ayudará a configurar DNSSEC en Bind9 (versión 9.8.2) en el sistema operativo CentOS. Sin embargo, el procedimiento también funcionará en RedHat Enterprise Linux Server, Ubuntu y Debian. Cubriré cómo habilitar DNSSEC en sus servidores de nombres autorizados, creando claves, firmando zonas, agregando anclas de confianza usando la validación y prueba de DNSSEC Lookaside.
Si es nuevo en la configuración de Bind, consulte esta guía para conocer la configuración de BIND. Además, si no está seguro de qué es DNSSEC y por qué debería habilitarlo. luego haga clic aquí.
Descargo de responsabilidad: Estoy compartiendo el procedimiento que aprendí y probé en mi banco de pruebas y no hay garantía de que funcione en su entorno. Sin embargo, puede probarlo en su banco de pruebas antes de configurarlo de inmediato en sus sistemas de producción.
¿Seguimos adelante?
Prepare su entorno de DNS con la configuración de Bind.
Como este tutorial hablará sobre DNSSEC en Bind, asegúrese de tener listo el entorno de trabajo de Bind. Para instalar y configurar Bind, sigue esta sencilla guía.
Requisitos previos:
$wget http://www.dnssec-tools.org/download/dnssec-tools-2.0.tar.gz $tar xvzf dnssec-tools-2.0.tar.gz $cd dnssec-tools-2.0
En Debian y Ubuntu, puede instalarlo a través de apt-get.
$apt-get install dnssec-tools
$vi /etc/named.conf
Sin embargo, la ruta de named.conf puede variar en su entorno. Lo buscas en /etc/named/named.conf o /var/named/named.conf .
Busque 'Opciones ' directiva en named.conf . Si no lo encuentra allí, puede encontrarlo en named.options expediente. De todos modos, no hace ninguna diferencia.
Bajo la directiva Opciones, modifique los siguientes atributos.
dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto;
¡De acuerdo! Así es como se ve mi directiva de Opciones,
options { listen-on port 53 { 10.180.1.115; }; listen-on-v6 port 53 { ::1; }; version "not currently available"; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic";};
archivo de claves de enlace :esta línea es necesaria solo si las claves de vinculación se encuentran en una ubicación diferente. De todos modos, hablaremos de eso más tarde.
dnssec-lookaside automático :Esta configuración le dice a Bind que lea la clave DLV (validación DNSSEC Lookaside) de bind.keys por primera vez se ejecuta. El DLV actual es dlv.isc.org clave.
Para entenderlo mejor:para crear una cadena de confianza, se debe firmar toda la ruta DNS desde la zona raíz hasta su propia zona. Por ejemplo, considere el dominio techglimpse.com. La zona raíz de techglimpse.com es .com que se debe firmar y luego techglimpse.com, se debe firmar la zona. Pero no todos los dominios de nivel superior (TLD) están firmados (al momento de escribir este artículo). Si el padre no está firmado, la cadena de confianza se rompe y no puede usar la clave de la zona raíz como ancla de confianza en la configuración de BIND.
Esa es la razón por la validación lateral de DNSSEC (DLV) Fue presentado. En realidad, es un repositorio alternativo para claves confiables, donde uno puede enviar sus claves de zona, si no hay una ruta completamente firmada desde la zona raíz hasta su propia zona. El registro DLV funcional es dlv.isc.org. De forma predeterminada, la clave de la zona raíz y la clave dlv.isc.org se incluyen en /etc/named.iscdlv.key y eso va como un valor para bindkeys-file atributo en Opciones directiva. Si no encuentra esto automáticamente en named.conf o opciones.nombradas , actualice su enlace (yum install bind9 ) y verifique nuevamente.
Learn more about DLV registry: DLV Solution by ISC : https://www.isc.org/solutions/dlv DLV Background : https://dlv.isc.org/about/background Status of TLDs signed: http://stats.research.icann.org/dns/tld_report/
dnssec-validación automática: Esta opción solo está disponible desde Bind 9.8, 9.9 en adelante. Bind 9.7 no es compatible con auto opción para la validación de dnssec, en su lugar usamos validación de dnssec:sí lo que significa que la clave de la zona raíz no está cargada. Para resolver el problema, podemos usar bind.keys archivo.
$more bind.keys
managed-keys { # ISC DLV: See https://www.isc.org/solutions/dlv for details. # NOTE: This key is activated by setting "dnssec-lookaside auto;" # in named.conf. dlv.isc.org. initial-key 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh"; # ROOT KEY: See https://data.iana.org/root-anchors/root-anchors.xml # for current trust anchor information. # NOTE: This key is activated by setting "dnssec-validation auto;" # in named.conf. . initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0="; };
Luego puede incluir las bind.keys en named.conf o opciones.nombradas.
include "/etc/bind/bind.keys";
Nota:consulte la ruta correcta de bind.keys
Una vez hecho esto, reinicie Bind.
$service named restart or $/etc/init.d/bind9 restart or $rndc reload
¡De acuerdo! Ahora hemos habilitado DNSSEC en Bind. A continuación, veremos cómo firmar una zona.
¿Cómo firmar una zona en DNSSEC?
Para firmar una zona, usaremos dnsssec-tools, que instalamos al comienzo de este tutorial. dnssec-tools viene con comandos de firma de zona, que es un contenedor sobre dnssec-keygen y dnssec-signzone.
Consulte la página de manual de zonesigner para obtener más información.
$man zonesigner
Ubicación del archivo de configuración de herramientas dnssec: /usr/local/etc/dnssec-tools/dnssec-tools.conf . Sin embargo, la ruta puede variar en su sistema.
Para firmar la zona, el comando es así:
zonesigner -genkeys -usensec3 -zone <domain-name> <zone-file>
$zonesigner -genkeys -usensec3 -zone techglimpse.com db.techglimpse.com
if zonesigner appears hung, strike keys until the program completes (see the "Entropy" section in the man page for details)
Generating key pair......................................++++++ ..............++++++ Generating key pair......++++++ ..++++++ Generating key pair...................................+++ ..................................+++ Verifying the zone using the following algorithms: NSEC3RSASHA1. Zone signing complete: Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 1 stand-by, 0 revoked
zone signed successfully
techglimpse.com: KSK (cur) 47781 2048 11/14/13 (techglimpse.com-signset-00003) ZSK (cur) 06809 1024 11/14/13 (techglimpse.com-signset-00001) ZSK (pub) 26330 1024 11/14/13 (techglimpse.com-signset-00002)
zone will expire in 30 days DO NOT delete the keys until this time has passed.
Consulte el directorio para verificar los archivos clave.
$ ls -lrt -rw-r--r--. 1 root root 571 Oct 14 14:09 db.10.180.4 -rw-------. 1 root root 1015 Nov 14 11:45 Ktecglimpse.com.+007+06809.private -rw-r--r--. 1 root root 436 Nov 14 11:45 Ktechglimpse.com.+007+06809.key -rw-------. 1 root root 1015 Nov 14 11:45 Ktechglimpse.com.+007+26330.private -rw-r--r--. 1 root root 437 Nov 14 11:45 Ktechglimpse.com.+007+26330.key -rw-------. 1 root root 1779 Nov 14 11:45 Ktechglimpse.com.+007+47781.private -rw-r--r--. 1 root root 611 Nov 14 11:45 Ktechglimpse.com.+007+47781.key -rw-r--r--. 1 root root 777 Nov 14 11:45 db.techglimpse.com -rw-r--r--. 1 root root 173 Nov 14 11:45 dsset-techglimpse.com. -rw-r--r--. 1 root root 7183 Nov 14 11:45 db.techglimpse.com.signed -rw-r--r--. 1 root root 2172 Nov 14 11:45 techglimpse.com.krf
Verifica si todo salió bien mientras firmas.
$ donuts --level 8 -v db.techglimpse.com.signed techglimpse.com --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/check_nameserve rs.txt rules: MEMORIZE_NS_ADDRS DNS_SERVERS_MATCH_DATA --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dns.errors.txt rules: DNS_SOA_REQUIRED MEMORIZE_NS_CNAME_RECORDS DNS_NS_NO_CNAME --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dnssec.rules.tx t rules: DNSSEC_RRSIG_TTL_MATCH_ORGTTL DNSSEC_MEMORIZE_NS_RECORDS DNSSEC_CHECK _IF_NSEC3 DNSSEC_MISSING_NSEC_RECORD1 DNSSEC_MISSING_RRSIG_RECORD1 DNSSEC_RRSIG_ NOT_SIGNING_RRSIG DNSSEC_RRSIG_FOR_NS_GLUE_RECORD DNSSEC_NSEC_FOR_NS_GLUE_RECORD DNSSEC_RRSIG_SIGEXP DNSSEC_NSEC_TTL DNSSEC_NSEC3_TTL DNSSEC_DNSKEY_MUST_HAVE_SA ME_NAME DNSSEC_DNSKEY_PROTOCOL_MUST_BE_3 DNSSEC_BOGUS_NS_MEMORIZE DNSSEC_MISSING _RRSIG_RECORD2 DNSSEC_RRSIG_TTL_MUST_MATCH_RECORD DNSSEC_MISSING_NSEC_RECORD2 DN SSEC_RRSIG_SIGNER_NAME_MATCHES DNSSEC_NSEC_RRSEC_MUST_NOT_BE_ALONE DNSSEC_MEMORI ZE_KEYS DNSSEC_RRSIGS_VERIFY DNSSEC_TWO_ZSKS DNSSEC_OPENSSL_KEY_ISSUES --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/nsec_check.rule s.txt rules: DNSSEC_NSEC_MEMORIZE DNSSEC_NSEC3_MEMORIZE DNSSEC_NSEC3_CHECK DNSSEC_ NSEC_CHECK --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/parent_child.ru les.txt rules: DNS_MULTIPLE_NS DNSSEC_SUB_NOT_SECURE DNSSEC_DNSKEY_PARENT_HAS_VALID_ DS DNSSEC_DS_CHILD_HAS_MATCHING_DNSKEY --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/recommendations .rules.txt rules: DNS_REASONABLE_TTLS DNS_NO_DOMAIN_MX_RECORDS --- Analyzing individual records in db.techglimpse.com.signed --- Analyzing records for each name in db.techglimpse.com.signed techglimpse.com: Rule Name: DNS_MULTIPLE_NS Level: 6 Warning: Only 1 NS record(s) for techglimpse.com found, but at least 2 are suggested/required Details: Tests to see if at least two NS records exist for a delegated zone.
results on testing techglimpse.com: rules considered: 38 rules tested: 30 records analyzed: 33 names analyzed: 10 errors found: 0
Ahora reemplace la zona firmada (techglimpse.com) en named.conf
zone "techglimpse.com" { type master; file "/var/named/zones/master/db.techglimpse.com.signed"; };
Reinicie Bind como se indica a continuación,
$service named restart or $/etc/init.d/bind9 restart
Probar la configuración de DNSSEC usando dig
El formato del comando de excavación es así.
$dig @<dns_server> +dnssec <domain_name>
En el resultado, busque 'anuncio ' en banderas.
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1
ANUNCIO significa indicador de datos autenticados, que se establecerá solo si el resolutor validó la respuesta que recibió del servidor de nombres autorizado.
¡Eso es todo! Si todo salió bien, entonces configuró con éxito DNSSEC básico en Bind 9.8.2.
LEER:Guía para principiantes de DNSSEC
LEER:¿Cómo identificar si un dominio está firmado con DNSSEC o no?