GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configurazione di DNSSEC su Bind 9.8.2 su CentOS, RHEL, Ubuntu e Debian

Questo tutorial ti aiuterà a configurare DNSSEC su Bind9 (versione 9.8.2) sul sistema operativo CentOS. Tuttavia, la procedura funzionerà anche su RedHat Enterprise Linux Server, Ubuntu e Debian. Tratterò come abilitare DNSSEC sui tuoi server dei nomi autorevoli, creando chiavi, firmando zone, aggiungendo trust anchor utilizzando la convalida e il test DNSSEC Lookaside.

Se non conosci la configurazione di Bind, consulta questa guida per conoscere la configurazione di BIND. Inoltre, se non sei sicuro di cosa sia DNSSEC e perché dovresti abilitarlo? quindi clicca qui.

Disclaimer: Sto condividendo la procedura che ho imparato e provato sul mio banco di prova e non vi è alcuna garanzia che funzionerà nel vostro ambiente. Tuttavia, puoi provare sul tuo banco di prova prima di configurarlo subito sui tuoi sistemi di produzione.

Andiamo avanti?

Prepara il tuo ambiente DNS con la configurazione Bind.

Poiché questo tutorial parlerà di DNSSEC su Bind, assicurati di avere pronto l'ambiente Bind funzionante. Per installare e configurare Bind, segui questa semplice guida.

Prerequisiti:

Passaggio 1: Scarica e installa il pacchetto dnssec-tools. Utilizzeremo questo pacchetto per firmare le tue zone.

$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

Su Debian e Ubuntu, puoi installarlo tramite apt-get.

$apt-get install dnssec-tools

Passaggio 2: Abilita DNSSEC, Convalida e Lookaside

$vi /etc/named.conf

Tuttavia il percorso di named.conf potrebbe variare in base all'ambiente. Lo cerchi in /etc/named/named.conf o /var/named/named.conf .

Cerca "Opzioni". ' direttiva in named.conf . Se non lo trovi lì, potresti trovarlo named.options file. Ad ogni modo, non fa alcuna differenza.

Nella direttiva Opzioni, modifica gli attributi seguenti.

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

Ok! Ecco come appare la mia direttiva Options,

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";};

file-bindkeys :Questa riga è richiesta solo se le chiavi di collegamento si trovano in una posizione diversa. Ad ogni modo, ne parleremo più avanti.

dnssec-lookaside auto :questa impostazione indica a Bind di leggere la chiave DLV (DNSSEC Lookaside validation) da bind.keys per la prima volta viene eseguito. L'attuale DLV è dlv.isc.org chiave.

Per capirlo meglio:per creare una catena di attendibilità, è necessario firmare l'intero percorso DNS dalla zona radice fino alla propria zona. Ad esempio, considera il dominio techglimpse.com. La zona principale di techglimpse.com è .com  che deve essere firmato e quindi techglimpse.com, la zona deve essere firmata. Ma non tutti i Top Level Domains (TLD) sono firmati (al momento della stesura di questo articolo). Se il genitore non è firmato, la catena di fiducia è interrotta e non è possibile utilizzare la chiave della zona radice come ancoraggio di fiducia nella configurazione BIND.

Questo è il motivo per la convalida lookaside DNSSEC (DLV) è stato presentato. In realtà è un repository alternativo per chiavi attendibili, in cui è possibile inviare le proprie chiavi di zona, se non esiste un percorso completamente firmato dalla zona radice fino alla propria zona. Il registro DLV funzionale è dlv.isc.org. Per impostazione predefinita, la chiave della zona radice e la chiave dlv.isc.org sono incluse in /etc/named.iscdlv.key e questo va come valore per file-bindkeys attributo in Opzioni direttiva. Se non lo trovi automaticamente in named.conf o named.options , aggiorna il tuo bind (yum install bind9 ) e ricontrolla.

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/

convalida automatica dnssec: Questa opzione è disponibile solo da Bind 9.8, 9.9 in poi.  Bind 9.7 non supporta auto opzione per dnssec-validation, invece utilizziamo dnssec-validation:yes  il che significa che la chiave della zona radice non è stata caricata. Per risolvere il problema, possiamo utilizzare bind.keys file.

$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=";
};

Quindi puoi includere i bind.keys in named.conf o opzioni.nome.

include "/etc/bind/bind.keys";

Nota:verifica il percorso corretto di bind.keys

Al termine, riavvia Bind.

$service named restart
or
$/etc/init.d/bind9 restart
or
$rndc reload

Ok! Ora abbiamo abilitato DNSSEC su Bind. Successivamente, vedremo come firmare una zona.

Come si firma una zona in DNSSEC?

Per firmare una zona, useremo dnsssec-tools, che abbiamo installato all'inizio di questo tutorial. dnssec-tools viene fornito con comandi zone signer che è un wrapper su dnssec-keygen e dnssec-signzone.

Controlla la pagina man di zonesigner per ulteriori informazioni.

$man zonesigner

Posizione del file di configurazione dnssec-tools: /usr/local/etc/dnssec-tools/dnssec-tools.conf . Tuttavia, il percorso può variare sul tuo sistema.

Per firmare la zona, il comando è questo:

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.

Controlla la directory per verificare i file chiave.

$ 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 se tutto è andato a buon fine durante la firma.

$ 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

Ora sostituisci la zona firmata (techglimpse.com) in named.conf

zone "techglimpse.com" {
 type master;
 file "/var/named/zones/master/db.techglimpse.com.signed";
 };

Riavvia il collegamento come di seguito,

$service named restart
or
$/etc/init.d/bind9 restart

Test della configurazione DNSSEC utilizzando dig

Il formato del comando dig va in questo modo.

$dig @<dns_server> +dnssec <domain_name>

Nell'output cerca "annuncio ' nelle bandiere.

;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1

ANNUNCIO sta per Authenticated Data flag, che verrà impostato solo se il risolutore ha convalidato la risposta ricevuta dal server dei nomi autorevole.

Questo è tutto! Se tutto è andato bene, allora hai impostato correttamente DNSSEC di base su Bind 9.8.2.

LEGGI:​​Guida per principianti a DNSSEC

LEGGI:​​Come identificare un dominio che è firmato DNSSEC o meno?


Ubuntu
  1. Come installare il caricatore Ioncube su CentOS, Debian e Ubuntu

  2. Impostazione NTP su Centos e Ubuntu

  3. Come installare Ansible su CentOS 7 / RHEL 7 / Ubuntu 18.04 / 16.04 e Debian 9

  4. Installa Real Player 11 su CentOS, RHEL, Fedora e Ubuntu

  5. CentOS / RHEL 7:configurazione di un server NFS e un client NFS

Come installare TeamViewer 15 su Fedora/RHEL/CentOS e Debian/Ubuntu

Come installare VestaCP su Ubuntu/Debian e RHEL/Centos

Installa e configura OwnCloud su Ubuntu 21 / Debian 11

Come installare e configurare Smartctl su CentOS/RHEL 8 e Ubuntu 20.04

Come installare Zabbix su RHEL/CentOS e Debian/Ubuntu

Come installare TeamViewer 15 su RHEL/CentOS/Fedora e Debian/Ubuntu