GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Konfigurieren von DNSSEC auf Bind 9.8.2 auf CentOS, RHEL, Ubuntu und Debian

Dieses Tutorial hilft Ihnen bei der Konfiguration von DNSSEC auf Bind9 (Version 9.8.2) auf dem CentOS-Betriebssystem. Das Verfahren funktioniert jedoch auch auf RedHat Enterprise Linux Server, Ubuntu und Debian. Ich werde behandeln, wie Sie DNSSEC auf Ihren autoritativen Nameservern aktivieren, Schlüssel erstellen, Zonen signieren und Vertrauensanker mithilfe von DNSSEC Lookaside-Validierung und -Tests hinzufügen.

Wenn Sie neu in der Bind-Konfiguration sind, lesen Sie diese Anleitung, um mehr über die BIND-Konfiguration zu erfahren. Wenn Sie sich nicht sicher sind, was DNSSEC ist und warum Sie es aktivieren sollten? dann klicken Sie hier.

Haftungsausschluss: Ich teile das Verfahren, das ich gelernt und auf meinem Testbed ausprobiert habe, und es gibt keine Garantie dafür, dass es in Ihrer Umgebung funktioniert. Sie können es jedoch auf Ihrem Testbed ausprobieren, bevor Sie es sofort auf Ihren Produktionssystemen konfigurieren.

Sollen wir weitermachen?

Machen Sie Ihre DNS-Umgebung bereit mit der Bind-Konfiguration.

Da dieses Tutorial über DNSSEC auf Bind sprechen wird, stellen Sie sicher, dass Sie über eine funktionierende Bind-Umgebung verfügen. Folgen Sie dieser einfachen Anleitung, um Bind zu installieren und zu konfigurieren.

Voraussetzungen:

Schritt 1: Laden Sie das Paket dnssec-tools herunter und installieren Sie es. Wir verwenden dieses Paket, um Ihre Zonen zu signieren.

$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

Unter Debian und Ubuntu können Sie es über apt-get installieren.

$apt-get install dnssec-tools

Schritt 2: Aktivieren Sie DNSSEC, Validierung und Lookaside

$vi /etc/named.conf

Allerdings der Pfad von named.conf kann je nach Umgebung variieren. Sie suchen danach unter /etc/named/named.conf oder /var/named/named.conf .

Achten Sie auf „Optionen“. ‘-Direktive in named.conf . Wenn Sie es dort nicht finden, finden Sie es möglicherweise unter named.options Datei. Wie auch immer, es macht keinen Unterschied.

Ändern Sie unter der Options-Direktive die folgenden Attribute.

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

In Ordnung! So sieht meine Options-Direktive aus,

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

bindkeys-Datei :Diese Zeile ist nur erforderlich, wenn sich die Bindungsschlüssel an einem anderen Ort befinden. Wie auch immer, wir werden später darüber sprechen.

dnssec-lookaside auto :Diese Einstellung weist Bind an, den DLV-Schlüssel (DNSSEC Lookaside-Validierung) aus bind.keys zu lesen zum ersten Mal wird es ausgeführt. Der aktuelle DLV ist dlv.isc.org Schlüssel.

Zum besseren Verständnis:Um eine Vertrauenskette aufzubauen, sollte der gesamte DNS-Pfad von der Root-Zone bis hinunter zur eigenen Zone signiert werden. Betrachten Sie beispielsweise die Domain techglimpse.com. Die Stammzone für techglimpse.com ist  .com  die signiert werden muss und dann techglimpse.com, die Zone sollte signiert werden. Aber nicht alle Top Level Domains (TLDs) sind signiert (zum Zeitpunkt der Erstellung dieses Artikels). Wenn das übergeordnete Element nicht signiert ist, ist die Vertrauenskette unterbrochen und Sie können den Schlüssel der Root-Zone nicht als Vertrauensanker in der BIND-Konfiguration verwenden.

Aus diesem Grund DNSSEC Lookaside Validation (DLV) wurde vorgestellt. Es ist eigentlich ein alternatives Repository für vertrauenswürdige Schlüssel, wo man seine Zonenschlüssel einreichen kann, wenn es keinen vollständig signierten Pfad von der Root-Zone hinunter zu Ihrer eigenen Zone gibt. Die funktionale DLV-Registrierung ist dlv.isc.org. Standardmäßig sind der Stammzonenschlüssel und der dlv.isc.org-Schlüssel in /etc/named.iscdlv.key enthalten und das geht als Wert in die bindkeys-Datei -Attribut in Optionen Direktive. Falls Sie diese nicht automatisch in named.conf finden oder named.options , aktualisieren Sie Ihre Bindung (yum install bind9 ) und überprüfen Sie es erneut.

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-Validierung automatisch: Diese Option ist erst ab Bind 9.8, 9.9 verfügbar.  Bind 9.7 unterstützt auto nicht Option für DNSSEC-Validierung, stattdessen verwenden wir DNSSEC-Validierung:Ja  was bedeutet, dass der Root-Zonenschlüssel nicht geladen ist. Um das Problem zu lösen, können wir bind.keys verwenden Datei.

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

Dann können Sie die bind.keys einbinden in named.conf oder named.options.

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

Hinweis:Überprüfen Sie den korrekten Pfad von bind.keys

Wenn Sie fertig sind, starten Sie Bind neu.

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

In Ordnung! Jetzt haben wir DNSSEC auf Bind aktiviert. Als Nächstes sehen wir uns an, wie eine Zone signiert wird.

Wie signiere ich eine Zone in DNSSEC?

Um eine Zone zu signieren, verwenden wir dnsssec-tools, die wir zu Beginn dieses Tutorials installiert haben. dnssec-tools enthält Zone Signer-Befehle, die ein Wrapper für dnssec-keygen und dnssec-signzone sind.

Weitere Informationen finden Sie auf der Manpage von zonesigner.

$man zonesigner

Speicherort der dnssec-tools-Konfigurationsdatei: /usr/local/etc/dnssec-tools/dnssec-tools.conf . Der Pfad kann jedoch auf Ihrem System variieren.

Um die Zone zu signieren, lautet der Befehl wie folgt:

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.

Checken Sie das Verzeichnis aus, um die Schlüsseldateien zu überprüfen.

$ 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

Überprüfen Sie, ob beim Signieren alles geklappt hat.

$ 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

Ersetzen Sie nun die signierte Zone (techglimpse.com) in named.conf

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

Starten Sie Bind wie unten beschrieben neu,

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

DNSSEC-Setup mit dig testen

Das Format des dig-Befehls sieht folgendermaßen aus.

$dig @<dns_server> +dnssec <domain_name>

Suchen Sie in der Ausgabe nach „ad ‘ in Flaggen.

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

Anzeige steht für Authenticated Data Flag, das nur gesetzt wird, wenn der Resolver die vom autoritativen Nameserver erhaltene Antwort validiert hat.

Das ist es! Wenn alles gut gelaufen ist, haben Sie grundlegendes DNSSEC auf Bind 9.8.2 erfolgreich eingerichtet.

LESEN:Leitfaden für Anfänger zu DNSSEC

LESEN:Wie erkennt man, ob eine Domain DNSSEC-signiert ist oder nicht?


Ubuntu
  1. So installieren Sie den Ioncube-Loader unter CentOS, Debian und Ubuntu

  2. Installieren Sie Node.js in Ubuntu und Debian

  3. Installieren Sie Real Player 11 auf CentOS, RHEL, Fedora und Ubuntu

  4. So installieren Sie VMware Player auf CentOS/RHEL und Ubuntu

  5. Beheben Sie OpenSSL-Schwachstellen auf CentOS, Debian, Ubuntu und RHEL! [1.0.1e-fips]

So installieren Sie TeamViewer 15 auf Fedora/RHEL/CentOS und Debian/Ubuntu

So installieren Sie VestaCP auf Ubuntu/Debian und RHEL/Centos

Installieren und konfigurieren Sie OwnCloud auf Ubuntu 21 / Debian 11

So installieren und konfigurieren Sie Smartctl unter CentOS/RHEL 8 und Ubuntu 20.04

So installieren Sie Zabbix auf RHEL/CentOS und Debian/Ubuntu

So installieren Sie TeamViewer 15 auf RHEL/CentOS/Fedora und Debian/Ubuntu