Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dns_isc_bind_archlinux

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:dns_isc_bind_archlinux [2021/11/28 18:22] – [DNSSec: /etc/named.conf] klaustachtler:dns_isc_bind_archlinux [2023/08/09 12:58] (aktuell) – [Vorbereitung: CSK] klaus
Zeile 30: Zeile 30:
  
 Folgender Befehl ist zur Installation auszuführen: Folgender Befehl ist zur Installation auszuführen:
 +<code>
 +# pacman --noconfirm -S bind
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pacman --noconfirm -S bind # pacman --noconfirm -S bind
Zeile 62: Zeile 66:
 ==> root: 19 ==> root: 19
 </code> </code>
 +++++
  
 :!: **HINWEIS** - **Evtl. erschien ein Hinweis, das das Paket ''bind'' bereits installiert war, welcher ignoriert werden kann!** :!: **HINWEIS** - **Evtl. erschien ein Hinweis, das das Paket ''bind'' bereits installiert war, welcher ignoriert werden kann!**
  
 Mit nachfolgendem Befehl kann überprüft werden, was der Inhalt des Pakets ''bind'' war und was und vor allem wo installiert wurde: Mit nachfolgendem Befehl kann überprüft werden, was der Inhalt des Pakets ''bind'' war und was und vor allem wo installiert wurde:
 +<code>
 +# pacman -Qil bind
 +</code> 
 +++++ Installierte Dateien |
 <code> <code>
 # pacman -Qil bind # pacman -Qil bind
Zeile 506: Zeile 515:
 bind /var/named/localhost.zone bind /var/named/localhost.zone
 </code> </code>
 +++++
  
 Falls nicht durch die Installation bereits erfolgt, müssen nachfolgende **Besitz**- und **Datei**rechte für das Verzeichnis Falls nicht durch die Installation bereits erfolgt, müssen nachfolgende **Besitz**- und **Datei**rechte für das Verzeichnis
Zeile 1499: Zeile 1509:
 } }
 </code> </code>
- 
-:!: **FIXME** - **Hier erfolgen noch Ergänzugen ...** 
  
 === Statistics-Channel === === Statistics-Channel ===
Zeile 2006: Zeile 2014:
 </code> </code>
  
-===== DNSsec =====+===== DNSsec - Variante KSK & ZSK =====
  
 DNSSEC gibt es bereits 1997 mit einer ersten Definition der Domain Name System Security Extensions (DNSsec) im [[http://www.ietf.org/rfc/rfc4034.txt|RFC 4034]]. Diese Fassung funktionierte jedoch nur in kleinen Netzen; bei großen überforderte das geschwätzige Protokoll die Domain Name Server. Nach verschiedenen Überarbeitungen liegt seit **März 2005 die aktuelle Version vor**, bekannt auch unter der Bezeichnung DNSsec-bis. DNSSEC gibt es bereits 1997 mit einer ersten Definition der Domain Name System Security Extensions (DNSsec) im [[http://www.ietf.org/rfc/rfc4034.txt|RFC 4034]]. Diese Fassung funktionierte jedoch nur in kleinen Netzen; bei großen überforderte das geschwätzige Protokoll die Domain Name Server. Nach verschiedenen Überarbeitungen liegt seit **März 2005 die aktuelle Version vor**, bekannt auch unter der Bezeichnung DNSsec-bis.
Zeile 2027: Zeile 2035:
 (Quelle: [[https://www.heise.de/ct/artikel/Domain-Name-System-absichern-mit-DNSSEC-903318.html|Heise.de - Artikel - Domain Name System absichern mit DNSsec]]) (Quelle: [[https://www.heise.de/ct/artikel/Domain-Name-System-absichern-mit-DNSSEC-903318.html|Heise.de - Artikel - Domain Name System absichern mit DNSsec]])
  
-==== Vorbereitung ====+==== Vorbereitung: KSK und ZSK ====
  
 Zuerst ist es erforderlich nachfolgendes Verzeichnis anzulegen, welches den KSK (Key Signing Key) und den ZSK (Zone Signing Key) aufnehmen wird, was mit nachfolgendem Befehl durchgeführt werden kann: Zuerst ist es erforderlich nachfolgendes Verzeichnis anzulegen, welches den KSK (Key Signing Key) und den ZSK (Zone Signing Key) aufnehmen wird, was mit nachfolgendem Befehl durchgeführt werden kann:
Zeile 2161: Zeile 2169:
 </code> </code>
  
-==== DNSSec: /etc/named.conf ====+==== DNSSec KSK und ZSK: /etc/named.conf ====
  
 Es gibt die Möglichkeit den DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] so zu konfigurieren, das dieser die DNSsec Verwaltung voll automatisch übernimmt. Es gibt die Möglichkeit den DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] so zu konfigurieren, das dieser die DNSsec Verwaltung voll automatisch übernimmt.
Zeile 2177: Zeile 2185:
 Nachfolgende Anpassungen der Konfigurationsdatei ''/etc/named.conf'' müssen durchgeführt werden um DNSsec **__voll automatisiert__** durch den DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] einzurichten. Nachfolgende Anpassungen der Konfigurationsdatei ''/etc/named.conf'' müssen durchgeführt werden um DNSsec **__voll automatisiert__** durch den DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] einzurichten.
  
-Nachfolgende **drei** Konfigurationszeilen müssen bei der **__jeweiligen Zonen-Definition__** hinzugefügt werden:+Nachfolgende **zwei** Konfigurationszeilen müssen bei der **__jeweiligen Zonen-Definition__** hinzugefügt werden:
 <code> <code>
 ... ...
                 inline-signing yes;                 inline-signing yes;
                 auto-dnssec maintain;                 auto-dnssec maintain;
-                key-directory "keys"; 
 ... ...
 </code> </code>
Zeile 2426: Zeile 2433:
                 inline-signing yes;                 inline-signing yes;
                 auto-dnssec maintain;                 auto-dnssec maintain;
-                key-directory "keys"; 
  };  };
  zone "0.168.192.in-addr.arpa" IN {  zone "0.168.192.in-addr.arpa" IN {
Zeile 2433: Zeile 2439:
                 inline-signing yes;                 inline-signing yes;
                 auto-dnssec maintain;                 auto-dnssec maintain;
-                key-directory "keys"; 
  };  };
  zone "tachtler.net" IN {  zone "tachtler.net" IN {
Zeile 2440: Zeile 2445:
                 inline-signing yes;                 inline-signing yes;
                 auto-dnssec maintain;                 auto-dnssec maintain;
-                key-directory "keys"; 
  };  };
  zone "167.171.217.88.in-addr.arpa" IN {  zone "167.171.217.88.in-addr.arpa" IN {
Zeile 2447: Zeile 2451:
                 inline-signing yes;                 inline-signing yes;
                 auto-dnssec maintain;                 auto-dnssec maintain;
-                key-directory "keys"; 
  };  };
 }; };
Zeile 2476: Zeile 2479:
                 inline-signing yes;                 inline-signing yes;
                 auto-dnssec maintain;                 auto-dnssec maintain;
-                key-directory "keys"; 
  };  };
  zone "167.171.217.88.in-addr.arpa" IN {  zone "167.171.217.88.in-addr.arpa" IN {
Zeile 2483: Zeile 2485:
                 inline-signing yes;                 inline-signing yes;
                 auto-dnssec maintain;                 auto-dnssec maintain;
-                key-directory "keys"; 
  };  };
 }; };
 </code> </code>
  
-==== DNSSec: Überprüfung ====+==== DNSSec KSK und ZSK: Überprüfung ====
  
 Mit nachfolgendem Befehl kann die **syntaktische Richtigkeit** der Konfigurationsdatei: Mit nachfolgendem Befehl kann die **syntaktische Richtigkeit** der Konfigurationsdatei:
Zeile 2501: Zeile 2502:
 intra.tachtler.net IN internal master intra.tachtler.net IN internal master
 0.168.192.in-addr.arpa IN internal master 0.168.192.in-addr.arpa IN internal master
 +tachtler.net IN internal master
 +167.171.217.88.in-addr.arpa IN internal master
 localhost IN external master localhost IN external master
 0.0.127.in-addr.arpa IN external master 0.0.127.in-addr.arpa IN external master
Zeile 2506: Zeile 2509:
 . IN external hint . IN external hint
 tachtler.net IN external master tachtler.net IN external master
-171.217.88.in-addr.arpa IN external master+167.171.217.88.in-addr.arpa IN external master
 </code> </code>
  
-==== DNSSec: Neustart ====+==== DNSSec KSK und ZSK: Neustart ====
  
 Falls die **Basis-Konfiguration** wie oben beschrieben durchgeführt wurde, sollte dem einem **Neustart** nichts im Wege stehen und dies mit nachfolgendem Befehl durchgeführt werden: Falls die **Basis-Konfiguration** wie oben beschrieben durchgeführt wurde, sollte dem einem **Neustart** nichts im Wege stehen und dies mit nachfolgendem Befehl durchgeführt werden:
Zeile 2516: Zeile 2519:
 </code> </code>
  
-==== Überprüfung DNSsec ====+==== Überprüfung KSK und ZSK: DNSsec ====
  
 Folgende Abfrage sollte nun eine Ausgabe in etwa wie die nachfolgende zur Anzeige bringen: Folgende Abfrage sollte nun eine Ausgabe in etwa wie die nachfolgende zur Anzeige bringen:
Zeile 2576: Zeile 2579:
 Wie **''no-auth''**, wenn in der Anfrage eine Rekursion verlangt wird (RD=1), oder dasselbe wie ''no'', wenn keine Rekursion verlangt wird. Wie **''no-auth''**, wenn in der Anfrage eine Rekursion verlangt wird (RD=1), oder dasselbe wie ''no'', wenn keine Rekursion verlangt wird.
  
-<code ini>+<code>
 # dig @127.0.0.1 rechner10.intra.tachtler.net +dnssec +multi # dig @127.0.0.1 rechner10.intra.tachtler.net +dnssec +multi
  
Zeile 2620: Zeile 2623:
  
 Nachfolgende Abfrage bringt den **DNSKEY** zum Vorschein: Nachfolgende Abfrage bringt den **DNSKEY** zum Vorschein:
-<code ini>+<code>
 # dig @127.0.0.1 +cd +multi intra.tachtler.net dnskey # dig @127.0.0.1 +cd +multi intra.tachtler.net dnskey
  
Zeile 2648: Zeile 2651:
 ;; WHEN: Sat Nov 06 08:25:49 CET 2021 ;; WHEN: Sat Nov 06 08:25:49 CET 2021
 ;; MSG SIZE  rcvd: 171 ;; MSG SIZE  rcvd: 171
 +</code>
 +
 +:!: **HINWEIS** - Eine Abfrage kann nur auf eine Zone erfolgen, nicht auf einen einzelnen DNS-Eintrag.
 +
 +===== DNSsec - Variante CSK =====
 +
 +:!: **HINWEIS** - Ab [[https://www.isc.org/bind/|ISC BIND]] **Version 9.16** verfügbar!
 +
 +DNSSEC gibt es bereits 1997 mit einer ersten Definition der Domain Name System Security Extensions (DNSsec) im [[http://www.ietf.org/rfc/rfc4034.txt|RFC 4034]]. Diese Fassung funktionierte jedoch nur in kleinen Netzen; bei großen überforderte das geschwätzige Protokoll die Domain Name Server. Nach verschiedenen Überarbeitungen liegt seit **März 2005 die aktuelle Version vor**, bekannt auch unter der Bezeichnung DNSsec-bis.
 +
 +Mit DNSsec **signiert der Administrator einer Domain die Namenseinträge in seinem Nameserver kryptografisch.**
 +
 +Dafür werden zusätzliche Ressource Records angelegt, sodass DNSsec-Antworten länger sind als herkömmliche DNS-Antworten. Die zusätzlichen DNS-Records werden bei Anfragen als Bestandteile des DNS-Response versendet, sodass Empfänger zunächst prüfen können, ob der Response integer, also unverfälscht ist. Weil der Response auch ein Zertifikat enthält (einen signierten kryptografischen Schlüssel), kann der Empfänger in einem zweiten Schritt auch den Absender verifizieren und so feststellen, ob die im Paket enthaltene Information vertrauenswürdig ist.
 +
 +Mit [[https://www.isc.org/bind/|ISC BIND]] ab **Version 9.16** wurde eine neue Methode zur Aufrechterhaltung von DNSsec für Ihre Zonen eingeführt. Zusätzlich zu den Konfigurationsoptionen ''inline-signing'' und ''auto-dnssec'' gibt es jetzt **''dnssec-policy''**.
 +
 +Mit **''dnssec-policy''** können Sie eine **Key and Signing Policy (KASP)** angeben und alle KASP-bezogenen Konfigurationen gruppieren, wodurch Ihre benannte Konfiguration in Bezug auf DNSsec intuitiver wird und es einfacher wird, DNSsec für Ihre Zonen zu aktivieren.
 +
 +Dazu kommt nur noch ein Typ von Schlüsseln zum Einsatz,
 +  * ein **Combined Signing Key** (CSK) zur Weitergabe als DS-Record und zum Signieren der DNS-Records
 +als privat und öffentlich Schlüssel erstellt.
 +
 +Mithin hat eine Domain somit nur noch mindestens zwei Schlüssel. Um den gleitenden Wechsel von einem abgelaufenen zu einem neuen Schlüssel zu gewährleisten, hat eine Domain in der Regel sogar mehrere Exemplare gleichzeitig, auch mehrere CSK (können sinnvoll sein, um unterschiedliche Signieralgorithmen nutzen zu können)
 +
 +Wenn der **Domain-Betreiber seinen aktuellen CSK dem Administrator der übergeordneten Domain bekannt gegeben hat, kann er mit diesem anschließend alle Schlüssel der eigenen Zone signieren und nutzen.**
 +
 +Alle anderen Daten der Zone werden ebenfalls mit dem CSK signiert. **Ist ein Nameserver auf DNSsec umgestellt, liefert er ausschließlich signierte Antworten.**
 +
 +(Quelle: [[https://kb.isc.org/docs/dnssec-key-and-signing-policy|isc.org - Knowledgebase - DNSSEC Key and Signing Policy]])
 +
 +==== Vorbereitung: CSK ====
 +
 +Die **standardmässige** DNSsec-Policy, welche unter dem Namen **''"default"''** vorhanden ist, hat den Nachteil, das "**__nur__**" **NSEC** und nicht **NSEC3** zur Konfiguration von nicht existierenden DNS-Einträgen verwendet wird.
 +
 +Deshalb soll die **''dnssec-policy''** wie folgt abgeändert werden, was auch die Vergabe eines eigenen Namens bedingt.
 +
 +Die Vergabe und Konfiguration eine eigenen **''dnssec-policy''** erfolgt in der Konfigurationsdatei
 +  * ''/etc/named.conf''
 +und kann wie folgt aussehen:
 +
 +(**Nur relevanter Ausschnitt**)
 +<code ini>
 +dnssec-policy "defaultnsec3" {
 +    keys {
 +         csk key-directory lifetime unlimited algorithm ecdsa256;
 +    };
 +    nsec3param iterations 0 optout no salt-length 0;
 +
 +    // Key timings
 +    dnskey-ttl PT1H;
 +    publish-safety PT1H;
 +    retire-safety PT1H;
 +    purge-keys P90D;
 +
 +    // Signature timings
 +    signatures-refresh P5D;
 +    signatures-validity P14D;
 +    signatures-validity-dnskey P14D;
 +    
 +    // Zone parameters
 +    max-zone-ttl P1D;
 +    zone-propagation-delay PT5M;
 +    parent-ds-ttl P1D;
 +    parent-propagation-delay PT1H;
 +};
 +</code>
 +
 +**__Erklärungen__**:
 +
 +  * <code ini>nsec3param iterations 0 optout no salt-length 0;</code>
 +
 +Dies ist die einzige Änderung bzw. Ergänzung zum **''dnssec-policy''** - **''"default"''**, die Ergänzung des ''nsec3param''. Die **Optionen** des ''nsec3param'' lauten wie folgt:
 +  * Interationen bei der Erstellung 
 +  * Anzeige der Ausgabe
 +  * "Salt" zur Zufallsgenerierung
 +
 +:!: **HINWEIS** - **Nachfolgende Seiten geben über den aktuellen Stand der Benutzung von NSEC3 Auskunft:**
 +  * https://kb.isc.org/docs/dnssec-key-and-signing-policy
 +  * https://bind9.readthedocs.io/en/latest/dnssec-guide.html
 +  * https://www.rfc-editor.org/rfc/rfc9276.html
 +
 +==== DNSSec CSK: /etc/named.conf ====
 +
 +Es gibt die Möglichkeit den DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] so zu konfigurieren, das dieser die DNSsec Verwaltung voll automatisch übernimmt.
 +
 +Dafür gibt es die Option
 +  * ''dnssec-policy''
 +
 +Bei der Einstellung ''dnssec-policy'' muss noch die entsprechende zu verwendende **Policy** als Parameter definiert werden, so dass der DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] das angegeben Schlüssel-Verzeichnis durchsucht um die passenden Schlüssel zu finden, oder diese **__automatisch__ erstellt, falls diese __nicht__ vorhanden sein sollten** und diese zur Zone hinzufügen um diese dann anschließend auch zu signieren **__vollkommen automatisiert__**.
 +
 +Nachfolgende Anpassungen der Konfigurationsdatei ''/etc/named.conf'' müssen durchgeführt werden um DNSsec **__voll automatisiert__** durch den DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] einzurichten.
 +
 +Nachfolgende **zwei** Konfigurationszeilen müssen bei der **__jeweiligen Zonen-Definition__** hinzugefügt werden:
 +<code>
 +...
 +                inline-signing yes;
 +                dnssec-policy defaultnsec3;
 +...
 +</code>
 +
 +:!: **ACHTUNG** - **Falls ''inline-signing yes;'' __nicht__ gesetzt wird werden die Zonen-Dateien umgeschrieben!**
 +
 +:!: **HINWEIS** - Der DNS-Server [[http://www.isc.org|ISC (Internet System Consortium)]] wird nach den entsprechenden Schlüsseln unter dem angegeben Pfad selbständig suchen!
 +
 +Nachfolgend die Konfigurationsdatei mit den durchgeführten Anpassungen, welche von den Standardeinstellungen abweichen bzw. explizit gesetzt wurden, auch wenn diese den Standardeinstellungen entsprechen (**komplette Konfigurationsdatei**): 
 +<code ini>
 +# egrep -v '(.*//|.*/\*|.*\*/|.*\{\%|.*\%\}|^$)' /etc/named.conf
 +acl primary_v4 {
 + 192.168.0.20;
 +};
 +acl interfaces_v4 {
 + 192.168.0.20;
 + 127.0.0.1;
 +};
 +acl home_v4 {
 + 192.168.0.0/24;
 +};
 +acl home_v6 {
 + fd00:0:0:192::/64;
 +};
 +controls {
 + inet 127.0.0.1 port 953
 + allow { 127.0.0.1; } keys { "tachtler.net-key"; };
 +};
 +include "//etc/rndc.key";
 +logging {
 + channel default_log {
 + file "/var/log/named/default" versions 4 size 20m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel auth_servers_log {
 + file "/var/log/named/auth_servers" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel dnssec_log {
 + file "/var/log/named/dnssec" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel zone_transfers_log {
 + file "/var/log/named/zone_transfers" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel ddns_log {
 + file "/var/log/named/ddns" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel client_security_log {
 + file "/var/log/named/client_security" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel rate_limiting_log {
 + file "/var/log/named/rate_limiting" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel rpz_log {
 +  file "/var/log/named/rpz" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel dnstap_log {
 + file "/var/log/named/dnstap" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel queries_log {
 + file "/var/log/named/queries" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity info;
 + };
 + channel query-errors_log {
 + file "/var/log/named/query-errors" versions 4 size 2m;
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + severity dynamic;
 + };
 + channel default_syslog {
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + syslog daemon;
 + severity info;
 + };
 + channel default_debug {
 + print-time yes;
 + print-category yes;
 + print-severity yes;
 + file "/var/log/named/named.run";
 + severity dynamic;
 + };
 + category default { default_syslog; default_debug; default_log; };
 + category config { default_syslog; default_debug; default_log; };
 + category dispatch { default_syslog; default_debug; default_log; };
 + category network { default_syslog; default_debug; default_log; };
 + category general { default_syslog; default_debug; default_log; };
 + category zoneload { default_syslog; default_debug; default_log; };
 + category resolver { auth_servers_log; default_debug; };       
 + category cname { auth_servers_log; default_debug; };       
 + category delegation-only { auth_servers_log; default_debug; };
 + category edns-disabled { auth_servers_log; default_debug; };
 + category dnssec { dnssec_log; default_debug; };
 + category notify { zone_transfers_log; default_debug; };       
 + category xfer-in { zone_transfers_log; default_debug; };       
 + category xfer-out { zone_transfers_log; default_debug; };
 + category update{ ddns_log; default_debug; };
 + category update-security { ddns_log; default_debug; };
 + category client{ client_security_log; default_debug; };       
 + category security { client_security_log; default_debug; };
 + category rate-limit { rate_limiting_log; default_debug; };       
 + category spill { rate_limiting_log; default_debug; };       
 + category database { rate_limiting_log; default_debug; };
 + category rpz { rpz_log; default_debug; };
 + category dnstap { dnstap_log; default_debug; };
 + category queries { queries_log; };
 + category query-errors { query-errors_log; };
 +};
 +options {
 +    directory "/var/named";
 + geoip-directory none;
 + key-directory "/var/named/keys";
 + managed-keys-directory "/var/named/managedkeys";
 + new-zones-directory "/var/named/zones";
 + dump-file "/var/named/data/named_dump.db";
 + memstatistics-file "/var/named/data/named.memstats";
 + pid-file "/var/run/named/named.pid"; 
 + recursing-file "/var/named/data/named.recursing";
 + statistics-file "/var/named/data/named.stats";
 + bindkeys-file "/etc/bind.keys";
 + secroots-file "/var/named/data/named.secroots";
 + session-keyalg hmac-sha512;
 + session-keyfile "/var/run/named/session.key";
 + port 53;
 + dnssec-update-mode maintain;
 + allow-new-zones no;
 + memstatistics yes;
 + recursion yes;
 + cookie-algorithm aes;
 + auto-dnssec off;
 + dnssec-validation yes;
 + querylog no;
 + check-names primary warn;
 + allow-notify {
 + localhost;
 + primary_v4;
 + };
 + allow-query {
 + localhost; localnets;
 + home_v4;
 + };
 + allow-query-on {
 + localhost;
 + primary_v4;
 + };
 + allow-query-cache {
 + localhost; localnets;
 + home_v4;
 + };
 + allow-query-cache-on {
 + localhost; localnets;
 + home_v4;
 + };
 + allow-recursion {
 + localhost; localnets;
 + home_v4;
 + };
 + allow-recursion-on {
 + localhost;
 + primary_v4;
 + };
 + allow-update { none; };
 + allow-update-forwarding { none; };
 + allow-transfer {
 + localhost;
 + primary_v4;
 + };
 + listen-on port 53 { interfaces_v4; };
 + query-source address * port *;
 + max-cache-size 60%;
 + lame-ttl 0;
 + max-rsa-exponent-size 4096;
 + version none;
 + hostname none;
 + server-id none;
 +};
 +statistics-channels {
 + inet 192.168.0.20 port 80 allow {
 + primary_v4; interfaces_v4; home_v4;
 + };
 +};
 +view "internal" IN {
 + match-clients {
 + localhost; localnets;
 + home_v4;
 + };
 + zone "localhost" IN {
 + type master;
 + file "localhost.zone";
 + };
 + zone "0.0.127.in-addr.arpa" IN {
 + type master;
 + file "127.0.0.zone";
 + };
 + zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
 + type master;
 + file "localhost.ip6.zone";
 + };
 + zone "." IN {
 + type hint;
 + file "named.root";
 + };
 + zone "intra.tachtler.net" IN {
 + type master;
 + file "zones/intra.tachtler.net.zone";
 + dnssec-policy defaultnsec3;
 + };
 + zone "0.168.192.in-addr.arpa" IN {
 + type master;
 + file "zones/0.168.192.in-addr.arpa.zone";
 + dnssec-policy defaultnsec3;
 +                inline-signing yes;
 + };
 + zone "tachtler.net" IN {
 + type master;
 + file "zones/tachtler.net.zone";
 + dnssec-policy defaultnsec3;
 +                inline-signing yes;
 + };
 + zone "167.171.217.88.in-addr.arpa" IN {
 + type master;
 + file "zones/167.171.217.88.in-addr.arpa.zone";
 + dnssec-policy defaultnsec3;
 +                inline-signing yes;
 + };
 +};
 +view "external" IN {
 + match-clients {
 + localhost; localnets;
 + !home_v4;
 + };
 + zone "localhost" IN {
 + type master;
 + file "localhost.zone";
 + };
 + zone "0.0.127.in-addr.arpa" IN {
 + type master;
 + file "127.0.0.zone";
 + };
 + zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
 + type master;
 + file "localhost.ip6.zone";
 + };
 + zone "." IN {
 + type hint;
 + file "named.root";
 + };
 + zone "tachtler.net" IN {
 + type master;
 + file "zones/tachtler.net.zone";
 + dnssec-policy defaultnsec3;
 +                inline-signing yes;
 + };
 + zone "167.171.217.88.in-addr.arpa" IN {
 + type master;
 + file "zones/167.171.217.88.in-addr.arpa.zone";
 + dnssec-policy defaultnsec3;
 +                inline-signing yes;
 + };
 +};
 +</code>
 +
 +==== DNSSec CSK: Überprüfung ====
 +
 +Mit nachfolgendem Befehl kann die **syntaktische Richtigkeit** der Konfigurationsdatei:
 +  * ''/etc/named.conf''
 +durchgeführt werden und sollte keine Meldungen ausgeben, wenn die Konfigurationsdatei **syntaktische richtig** ist:
 +<code>
 +# named-checkconf -l -z
 +localhost IN internal master
 +0.0.127.in-addr.arpa IN internal master
 +1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa IN internal master
 +. IN internal hint
 +intra.tachtler.net IN internal master
 +0.168.192.in-addr.arpa IN internal master
 +tachtler.net IN internal master
 +167.171.217.88.in-addr.arpa IN internal master
 +localhost IN external master
 +0.0.127.in-addr.arpa IN external master
 +1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa IN external master
 +. IN external hint
 +tachtler.net IN external master
 +167.171.217.88.in-addr.arpa IN external master
 +</code>
 +
 +==== DNSSec CSK: Neustart ====
 +
 +Falls die **Basis-Konfiguration** wie oben beschrieben durchgeführt wurde, sollte dem einem **Neustart** nichts im Wege stehen und dies mit nachfolgendem Befehl durchgeführt werden:
 +<code>
 +# systemctl restart named.service
 +</code>
 +
 +==== DNSSec CSK: Schlüsselerstellung ====
 +
 +Nachdem kein Schlüsselmaterial erstellt worden ist, erscheinen nachfolgende Fehlermeldungen beim ersten Start im Log, welches mit nachfolgendem Befehl durchsucht werden kann:
 +<code>
 +Jun 17 14:27:58 vml020 named[2832]: 17-Jun-2022 18:27:58.611 general: error: zone intra.tachtler.net/
 +IN/internal: could not get zone keys for secure dynamic update
 +Jun 17 14:27:58 vml020 named[2832]: 17-Jun-2022 18:27:58.621 general: error: zone 0.168.192.in-addr.arpa/
 +IN/internal: could not get zone keys for secure dynamic update
 +Jun 17 14:27:58 vml020 named[2832]: 17-Jun-2022 18:27:58.631 general: error: zone tachtler.net/
 +IN/internal: could not get zone keys for secure dynamic update
 +Jun 17 14:27:58 vml020 named[2832]: 17-Jun-2022 18:27:58.641 general: error: zone tachtler.net/
 +IN/external: could not get zone keys for secure dynamic update
 +Jun 17 14:27:58 vml020 named[2832]: 17-Jun-2022 18:27:58.641 general: error: zone 167.171.217.88.in-
 +addr.arpa/IN/internal: could not get zone keys for secure dynamic update
 +Jun 17 14:27:58 vml020 named[2832]: 17-Jun-2022 18:27:58.651 general: error: zone 167.171.217.88.in-
 +addr.arpa/IN/external: could not get zone keys for secure dynamic update
 +</code>
 +
 +Dies ist nur das Ergebnis der Feststellung, das kein Schlüsselmaterial vorhanden ist und [[https://www.isc.org/bind/|ISC BIND]] sich um die Schlüsselerstellung selbst noch kümmern muss.
 +
 +Das Ergebnis der **__automatischen__ Schlüsselerstellung** kann durch Auflistung des Verzeichnisses:
 +  * ''/var/named/keys''
 +überprüft werden uns sollte verschiedenes Schlüsselmaterial in etwa wie folgt zur Anzeige bringen:
 +<code>
 +# ls -l /var/named/keys
 +total 48
 +-rw-r--r-- 1 named named 425 Jun 17 18:27 K0.168.192.in-addr.arpa.+013+21339.key
 +-rw------- 1 named named 215 Jun 17 18:27 K0.168.192.in-addr.arpa.+013+21339.private
 +-rw-r--r-- 1 named named 653 Jun 17 18:27 K0.168.192.in-addr.arpa.+013+21339.state
 +-rw-r--r-- 1 named named 435 Jun 17 18:27 K167.171.217.88.in-addr.arpa.+013+16299.key
 +-rw------- 1 named named 215 Jun 17 18:27 K167.171.217.88.in-addr.arpa.+013+16299.private
 +-rw-r--r-- 1 named named 658 Jun 17 18:27 K167.171.217.88.in-addr.arpa.+013+16299.state
 +-rw-r--r-- 1 named named 417 Jun 17 18:27 Kintra.tachtler.net.+013+42607.key
 +-rw------- 1 named named 215 Jun 17 18:27 Kintra.tachtler.net.+013+42607.private
 +-rw-r--r-- 1 named named 649 Jun 17 18:27 Kintra.tachtler.net.+013+42607.state
 +-rw-r--r-- 1 named named 405 Jun 17 18:27 Ktachtler.net.+013+15659.key
 +-rw------- 1 named named 215 Jun 17 18:27 Ktachtler.net.+013+15659.private
 +-rw-r--r-- 1 named named 643 Jun 17 18:27 Ktachtler.net.+013+15659.state
 +</code>
 +
 +==== Überprüfung CSK: DNSsec ====
 +
 +Folgende Abfrage sollte nun eine Ausgabe in etwa wie die nachfolgende zur Anzeige bringen:
 +<code>
 +# dig @127.0.0.1 rechner10.intra.tachtler.net +dnssec +multi
 +
 +; <<>> DiG 9.18.3 <<>> @127.0.0.1 rechner10.intra.tachtler.net +dnssec +multi
 +; (1 server found)
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26205
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
 +
 +;; OPT PSEUDOSECTION:
 +; EDNS: version: 0, flags: do; udp: 1232
 +; COOKIE: c15dc5b0231f0a5d7f46930b62ac764403fd2807928addb2 (good)
 +;; QUESTION SECTION:
 +;rechner10.intra.tachtler.net. IN A
 +
 +;; ANSWER SECTION:
 +rechner10.intra.tachtler.net. 10800 IN A 192.168.0.10
 +rechner10.intra.tachtler.net. 10800 IN RRSIG A 13 4 10800 (
 + 20220626045317 20220617112758 42607 intra.tachtler.net.
 + q6rSagtdy9bb69ED/ngjyRVgf7mTwAKx6lzjUZ/QhtlB
 + fqAgkDgeV7I+K+4NfUW+Y+LAaSHNwAtPoLwqstLuoQ== )
 +
 +;; Query time: 0 msec
 +;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
 +;; WHEN: Fri Jun 17 18:40:36 CEST 2022
 +;; MSG SIZE  rcvd: 215
 +
 +</code>
 +
 +:!: **HINWEIS** - Das ''Flag: **ad**'' ist bei Authoritativen DNS-Servern **__NICHT__** gesetzt! Nur bei **rekursiven "resolvern"** ist das ''Flag: **ad**'' gesetzt, da nur diese die "Kette des Vertrauens" abfragen und auflösen können!
 +
 +Eine erweitere Ansicht kann durch Änderung nachfolgender **Option** erzeugt werden:
 +<code ini>
 + // This option controls the addition of records to the authority and
 + // additional sections of responses. The default is no-auth-recursive.
 + minimal-responses no;
 +</code>
 +
 +**__Nachfolgende Optionen sind möglich__**:
 +
 +  * <code ini>no</code>
 +
 +Der Server ist bei der Erstellung von Antworten so vollständig wie möglich.
 +
 +  * <code ini>yes</code>
 +
 +Der Server fügt nur dann Datensätze zu den Autoritäts- und Zusatzabschnitten hinzu, wenn solche Datensätze vom DNS-Protokoll verlangt werden (z. B. bei der Rückgabe von Delegationen oder negativen Antworten). Dies bietet die beste Serverleistung, kann aber zu mehr Client-Abfragen führen.
 +
 +  * <code ini>no-auth</code>
 +
 +Der Server lässt Datensätze aus dem "Authority"-Abschnitt weg, es sei denn, sie sind erforderlich, aber er kann trotzdem Datensätze zum "Additional"-Abschnitt hinzufügen.
 +
 +  * <code ini>no-auth-recursive</code>
 +
 +Wie **''no-auth''**, wenn in der Anfrage eine Rekursion verlangt wird (RD=1), oder dasselbe wie ''no'', wenn keine Rekursion verlangt wird.
 +
 +<code>
 +# dig @127.0.0.1 rechner10.intra.tachtler.net +dnssec +multi
 +
 +; <<>> DiG 9.18.3 <<>> @127.0.0.1 rechner10.intra.tachtler.net +dnssec +multi
 +; (1 server found)
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10575
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
 +
 +;; OPT PSEUDOSECTION:
 +; EDNS: version: 0, flags: do; udp: 1232
 +; COOKIE: 6e4a0a4e229380d7c64f7fae62ac76e0189e8716e37022f0 (good)
 +;; QUESTION SECTION:
 +;rechner10.intra.tachtler.net. IN A
 +
 +;; ANSWER SECTION:
 +rechner10.intra.tachtler.net. 10800 IN A 192.168.0.10
 +rechner10.intra.tachtler.net. 10800 IN RRSIG A 13 4 10800 (
 + 20220626045317 20220617112758 42607 intra.tachtler.net.
 + q6rSagtdy9bb69ED/ngjyRVgf7mTwAKx6lzjUZ/QhtlB
 + fqAgkDgeV7I+K+4NfUW+Y+LAaSHNwAtPoLwqstLuoQ== )
 +
 +;; AUTHORITY SECTION:
 +intra.tachtler.net. 10800 IN NS ns1.intra.tachtler.net.
 +intra.tachtler.net. 10800 IN RRSIG NS 13 3 10800 (
 + 20220626045317 20220617112758 42607 intra.tachtler.net.
 + 7AzDTZE5JcJ+RCu6S8bq4OSuk4HEgdht5yM+0841oC+b
 + fOaZ8aVSVzG+Dmp744YsOJmFRSJ18HAGJmlGkJ/eww== )
 +
 +;; ADDITIONAL SECTION:
 +ns1.intra.tachtler.net. 10800 IN A 192.168.0.20
 +ns1.intra.tachtler.net. 10800 IN RRSIG A 13 4 10800 (
 + 20220626045317 20220617112758 42607 intra.tachtler.net.
 + 0dBJWwufYcPPMiphUhF3hOQxBRABxfuRpJtHMZMgftBp
 + 9+ucj7ksGtVguiekxPdvUy9ekxqKkN0QdDlh1IHb0A== )
 +
 +;; Query time: 10 msec
 +;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
 +;; WHEN: Fri Jun 17 18:43:12 CEST 2022
 +;; MSG SIZE  rcvd: 477
 +
 +</code>
 +
 +Nachfolgende Abfrage bringt den **DNSKEY** zum Vorschein:
 +<code>
 +# dig @127.0.0.1 +cd +multi intra.tachtler.net dnskey
 +
 +; <<>> DiG 9.18.3 <<>> @127.0.0.1 +cd +multi intra.tachtler.net dnskey
 +; (1 server found)
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59227
 +;; flags: qr aa rd ra cd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 +
 +;; OPT PSEUDOSECTION:
 +; EDNS: version: 0, flags:; udp: 1232
 +; COOKIE: 159da8d05abb887dc1ed847562ac77046457c9a3b5751b4f (good)
 +;; QUESTION SECTION:
 +;intra.tachtler.net. IN DNSKEY
 +
 +;; ANSWER SECTION:
 +intra.tachtler.net. 3600 IN DNSKEY 257 3 13 (
 + cwuwXubEW8if4s/vo/2jdWhGolvHBVFr2i4fNkEHlyx6
 + dObg3GD3KN+KQLkRQE5QMxcP86il8GWWGeEYIv1lfw==
 + ) ; KSK; alg = ECDSAP256SHA256 ; key id = 42607
 +
 +;; Query time: 0 msec
 +;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
 +;; WHEN: Fri Jun 17 14:43:48 CEST 2022
 +;; MSG SIZE  rcvd: 155
 +
 +
 </code> </code>
  
Zeile 2694: Zeile 3297:
 # ddns-confgen -q -a hmac-sha512 -z 0.168.192.in-addr.arpa > /var/named/managedkeys/ddns-key.0.168.192.in-addr.arpa.key # ddns-confgen -q -a hmac-sha512 -z 0.168.192.in-addr.arpa > /var/named/managedkeys/ddns-key.0.168.192.in-addr.arpa.key
 # ddns-confgen -q -a hmac-sha512 -z tachtler.net > /var/named/managedkeys/ddns-key.tachtler.net.key # ddns-confgen -q -a hmac-sha512 -z tachtler.net > /var/named/managedkeys/ddns-key.tachtler.net.key
-# ddns-confgen -q -a hmac-sha512 -z 171.217.88.in-addr.arpa > /var/named/managedkeys/ddns-key.171.217.88.in-addr.arpa.key+# ddns-confgen -q -a hmac-sha512 -z 167.171.217.88.in-addr.arpa > /var/named/managedkeys/ddns-key.171.217.88.in-addr.arpa.key
 </code> </code>
  
Zeile 2702: Zeile 3305:
 total 16 total 16
 -rw-r--r-- 1 root root 167 Nov  6 09:33 ddns-key.0.168.192.in-addr.arpa.key -rw-r--r-- 1 root root 167 Nov  6 09:33 ddns-key.0.168.192.in-addr.arpa.key
--rw-r--r-- 1 root root 168 Nov  6 09:33 ddns-key.171.217.88.in-addr.arpa.key+-rw-r--r-- 1 root root 168 Nov  6 09:33 ddns-key.167.171.217.88.in-addr.arpa.key
 -rw-r--r-- 1 root root 163 Nov  6 09:33 ddns-key.intra.tachtler.net.key -rw-r--r-- 1 root root 163 Nov  6 09:33 ddns-key.intra.tachtler.net.key
 -rw-r--r-- 1 root root 157 Nov  6 09:33 ddns-key.tachtler.net.key -rw-r--r-- 1 root root 157 Nov  6 09:33 ddns-key.tachtler.net.key
Zeile 2721: Zeile 3324:
 total 16 total 16
 -rw-r----- 1 root named 167 Nov  6 09:33 ddns-key.0.168.192.in-addr.arpa.key -rw-r----- 1 root named 167 Nov  6 09:33 ddns-key.0.168.192.in-addr.arpa.key
--rw-r----- 1 root named 168 Nov  6 09:33 ddns-key.171.217.88.in-addr.arpa.key+-rw-r----- 1 root named 168 Nov  6 09:33 ddns-key.167.171.217.88.in-addr.arpa.key
 -rw-r----- 1 root named 163 Nov  6 09:33 ddns-key.intra.tachtler.net.key -rw-r----- 1 root named 163 Nov  6 09:33 ddns-key.intra.tachtler.net.key
 -rw-r----- 1 root named 157 Nov  6 09:33 ddns-key.tachtler.net.key -rw-r----- 1 root named 157 Nov  6 09:33 ddns-key.tachtler.net.key
Zeile 2735: Zeile 3338:
  secret "g8A4ASCMGOfTLw2+LJxWjE1b9J1zSK2puKC4SHyMpUQ4QJLK2E1s4PNrIAdZVAfscd/1KcwUrQMq8D7w1O/oHw==";  secret "g8A4ASCMGOfTLw2+LJxWjE1b9J1zSK2puKC4SHyMpUQ4QJLK2E1s4PNrIAdZVAfscd/1KcwUrQMq8D7w1O/oHw==";
 }; };
-key "171.217.88.in-addr.arpa" {+key "167.171.217.88.in-addr.arpa" {
  algorithm hmac-sha512;  algorithm hmac-sha512;
  secret "ysfIqXOP/RdsuRa4UwFvfuDBiF5A2EgqxUi2HMg1ipullLmtGGWHUDYWxBr+DJAAIkxoICBNOgrbQM8S1g99JQ==";  secret "ysfIqXOP/RdsuRa4UwFvfuDBiF5A2EgqxUi2HMg1ipullLmtGGWHUDYWxBr+DJAAIkxoICBNOgrbQM8S1g99JQ==";
Zeile 2756: Zeile 3359:
 include "/var/named/managedkeys/ddns-key.intra.tachtler.net.key" include "/var/named/managedkeys/ddns-key.intra.tachtler.net.key"
 include "/var/named/managedkeys/ddns-key.0.168.192.in-addr.arpa.key" include "/var/named/managedkeys/ddns-key.0.168.192.in-addr.arpa.key"
-include "/var/named/managedkeys/ddns-key.intra.tachtler.net.key" +include "/var/named/managedkeys/ddns-key.tachtler.net.key" 
-include "/var/named/managedkeys/ddns-key.0.168.192.in-addr.arpa.key"+include "/var/named/managedkeys/ddns-key.167.171.217.88.in-addr.arpa.key"
 ... ...
 ... ...
Zeile 2767: Zeile 3370:
                 allow-update { key "ddns-key.tachtler.net"; };                 allow-update { key "ddns-key.tachtler.net"; };
 ... ...
-                allow-update { key "ddns-key.171.217.88.in-addr.arpa"; };+                allow-update { key "ddns-key.167.171.217.88.in-addr.arpa"; };
 ... ...
 </code> </code>
Zeile 2917: Zeile 3520:
 DNS-Server Zonenkonfigurationsdatei auf Fehler überprüfen: DNS-Server Zonenkonfigurationsdatei auf Fehler überprüfen:
  
-**Zonen**-Datei für die **Forward**-Auflösung - ''/var/named/zones/intra.tachtler.net.zone.db''+**Zonen**-Datei für die **Forward**-Auflösung - ''/var/named/zones/intra.tachtler.net.zone''
 <code> <code>
-# named-checkzone intra.tachtler.net /var/named/zones/intra.tachtler.net.zone.db+# named-checkzone intra.tachtler.net /var/named/zones/intra.tachtler.net.zone
 </code> </code>
  
-**Zonen**-Datei für die **Reverse**-Auflösung - ''/var/named/zones/0.168.192.zone.db''+**Zonen**-Datei für die **Reverse**-Auflösung - ''/var/named/zones/0.168.192.zone''
 <code> <code>
-# named-checkzone 0.168.192 /var/named/zones/2.168.192.zone.db+# named-checkzone 0.168.192 /var/named/zones/0.168.192.zone
 </code> </code>
  
tachtler/dns_isc_bind_archlinux.1638120165.txt.gz · Zuletzt geändert: 2021/11/28 18:22 von klaus