Pseudo second level domain DNSSEC: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(29 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Zonen ohne DNSSEC=
+
=Klonen des Templates=
*cat /etc/bind/named.conf.options  
+
;Erstellen eines Nameservers laut Plan
 +
;Name ns.it213.int
 +
;Vorläufiger DNS ist der 192.168.X.88
 +
;Der Server ist autoritativ UND rekursiv validierend
 +
 
 +
=Installation=
 +
*apt update
 +
*apt install bind9 bind9-utils
 +
 
 +
=Auf den Nameservern=
 +
 
 +
==Trust Anker einfügen==
 +
*cd /etc/bind/
 +
*wget http://192.168.X.88/trust-anchors.conf
 +
*echo 'include "/etc/bind/trust-anchors.conf";' >> named.conf
 +
 
 +
==Optionen==
 +
*cat /etc/bind/named.conf.options
 
<pre>
 
<pre>
 
options {
 
options {
directory "/var/cache/bind";
+
        directory "/var/cache/bind";
forwarders {
+
        forwarders { 192.168.X.88; };
192.168.178.88;
+
        empty-zones-enable no;
};
+
        recursion yes;       
empty-zones-enable no;
+
        allow-query { any; };
dnssec-validation auto;
+
        allow-transfer { 127.0.0.1; };
listen-on-v6 { none; };
+
        dnssec-validation yes;
 
};
 
};
 +
 
</pre>
 
</pre>
 +
 +
==Zonenfestlegung==
 +
*cat /etc/bind/named.conf.local
 
<pre>
 
<pre>
 
+
zone "it213.int" IN {
*cat /etc/bind/named.conf.local
 
zone it113.int IN {
 
 
     type master;
 
     type master;
     file "it113.int";
+
     file "it213.int.signed";
 
};
 
};
  
zone 113.88.10.in-addr.arpa IN {
+
zone "213.88.10.in-addr.arpa" IN {
 
     type master;
 
     type master;
     file "113.88.10.in-addr.arpa";
+
     file "213.88.10.in-addr.arpa";
 
};
 
};
 
</pre>
 
</pre>
*cat it113.int  
+
 
 +
=Zonen selbst (unsigniert)=
 +
 
 +
*cat /var/cache/bind/it213.int
 
<pre>
 
<pre>
 
 
$TTL 300
 
$TTL 300
@   IN SOA  ns technik.xinux.de. (
+
@           IN SOA  ns.it213.int. technik.xinux.de. (
                         2011090204  ;
+
                         2026031701
                         14400   ;
+
                         14400
                         3600   ;
+
                         3600
                         3600000 ;
+
                         3600000
                         86400   ;
+
                         86400
 
                     )
 
                     )
 
         IN NS      ns
 
         IN NS      ns
ns      IN A      10.88.113.2
+
        IN MX 10  mail
www     IN A      10.88.113.22
+
 
 +
ns       IN A      10.88.213.21
 +
www      IN A      10.88.213.11
 +
mail     IN A      10.88.213.3
 +
fw        IN A      10.88.213.1
 +
proxy     IN A      10.88.213.4
 +
checkmk  IN A      10.88.213.5
 +
revproxy  IN A      10.88.213.41
 +
nextcloud IN A      10.88.213.8
 +
docker    IN A      10.88.213.9
 
</pre>
 
</pre>
  
*cat 113.88.10.in-addr.arpa  
+
*cat /var/cache/bind/213.88.10.in-addr.arpa
 
<pre>
 
<pre>
 
 
$TTL 300
 
$TTL 300
@   IN SOA  ns.it113.int. technik.xinux.de. (
+
@           IN SOA  ns.it213.int. technik.xinux.de. (
                         2011090204  ;
+
                         2026031701
                         14400   ;
+
                         14400
                         3600   ;
+
                         3600
                         3600000 ;
+
                         3600000
                         86400   ;
+
                         86400
 
                     )
 
                     )
         IN NS      ns.it113.int.
+
         IN NS      ns.it213.int.
2 IN PTR ns.it113.int.
+
 
22 IN PTR www.it113.int.
+
1      IN PTR     fw.it213.int.
 +
21      IN PTR    ns.it213.int.
 +
11      IN PTR     www.it213.int.
 +
3      IN PTR    mail.it213.int.
 +
4      IN PTR    proxy.it213.int.
 +
5      IN PTR    checkmk.it213.int.
 +
8      IN PTR    nextcloud.it213.int.
 +
9      IN PTR    docker.it213.int.
 +
41      IN PTR    revproxy.it213.int.
 +
 
 
</pre>
 
</pre>
  
= DNSSEC für die Second-Level-Domain it113.int =
+
==Verzeichnis wechseln==
 +
*cd /var/cache/bind/
 +
 
 +
=DNSSEC Schlüssel erzeugen=
  
== Übersicht ==
+
;Forward Zone
* Die Toplevel-Domain '''int.''' ist bereits mit '''DNSSEC signiert''' und läuft auf '''dnsgw.gw'''.
+
*dnssec-keygen -a RSASHA256 -b 2048 -n ZONE it213.int
* Die Second-Level-Domain '''it113.int''' wird auf '''ns.it113.int''' gehostet.
+
*dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE it213.int
* '''Ziel:''' DNSSEC-Signierung von '''it113.int''' und Veröffentlichung des DS-Records in der Parent-Zone ''int.''.
 
  
== 1. Schlüssel für it113.int generieren (auf ns.it113.int) ==
+
=DNSKEY einbinden=
* '''dnssec-keygen -a RSASHA256 -b 2048 -f KSK -n ZONE it113.int'''
 
* '''dnssec-keygen -a RSASHA256 -b 1024 -n ZONE it113.int'''
 
  
== 2. Schlüssel in die Zonendatei eintragen (auf ns.it113.int) ==
+
;Forward
* '''cat K*.key >> /etc/bind/zones/it113.int.zone'''
+
*for k in Kit213.int.+*.key ; do echo "\$INCLUDE $k" >> /var/cache/bind/it213.int; done
  
== 3. Zone signieren (auf ns.it113.int) ==
+
=Zonen signieren=
* '''dnssec-signzone -A -N INCREMENT -o it113.int -t /etc/bind/zones/it113.int.zone'''
 
  
Ergebnis: Die signierte Datei '''it113.int.zone.signed'''.
+
*dnssec-signzone -A -N INCREMENT -o it213.int -t /var/cache/bind/it213.int
  
== 4. Bind konfigurieren, um die signierte Zone zu verwenden (auf ns.it113.int) ==
+
;Erzeugt
Zonendatei in ''/etc/bind/named.conf.local'' anpassen:
 
 
<pre>
 
<pre>
zone "it113.int" {
+
/var/cache/bind/it213.int.signed
    type master;
 
    file "/etc/bind/zones/it113.int.zone.signed";
 
    allow-transfer { any; };
 
    allow-query { any; };
 
};
 
 
</pre>
 
</pre>
  
Neustart von BIND:
+
*systemctl restart named
* '''systemctl restart bind9'''
 
  
== 5. DS-Records an die Toplevel-Domain übergeben (auf ns.it113.int) ==
+
=DS Record für Fake Root erzeugen=
* '''dig +short DS it113.int'''
 
  
Den ausgegebenen DS-Record in die Zonendatei von ''int.'' auf ''dnsgw.gw'' eintragen.
+
;DS aus signierter Zone erzeugen
 +
*dnssec-dsfromkey -f /var/cache/bind/it213.int.signed it213.int
  
== 6. DS-Record in der Toplevel-Domain veröffentlichen (auf dnsgw.gw) ==
+
;DS Eintrag an Fake Root weitergeben
In der Datei '''/etc/bind/zones/int.zone''':
+
;Im Fake Root in Zone int einfügen
<pre>
+
 
it113.int. IN DS 12345 8 2 49FD74D5C4A7AE7D15A57A15B22D...
+
;Beispiel:
</pre>
+
;it213      IN NS ns.it213.int.
 +
;ns.it213.int. IN A 10.88.213.21
 +
;it213.int. IN DS 12345 8 2 ABCDEF123456....
 +
 
 +
;Danach Fake Root neu signieren
 +
*cd /var/cache/bind
 +
*dnssec-signzone -A -N INCREMENT -o int int
 +
*rndc reload
  
== 7. Toplevel-Zone neu signieren (auf dnsgw.gw) ==
+
=Handling und Logging=
* '''dnssec-signzone -A -N INCREMENT -o int -t /etc/bind/zones/int.zone'''
+
*systemctl restart bind9
 +
*journalctl -fu bind9
 +
*journalctl -u bind9 -g it213.int
  
Neustart von BIND:
+
=Validierungstest=
* '''systemctl restart bind9'''
 
  
== 8. Überprüfung (auf beliebigem Client) ==
+
;Forward Validierung
* '''dig +dnssec it113.int'''
+
*dig www.it213.int +dnssec
* '''dig +dnssec www.it113.int'''
 
  
Falls alles korrekt ist, sollte das '''AD-Bit''' (Authentic Data) gesetzt sein.
+
;Antwort muss AD-Flag enthalten
}}
 

Aktuelle Version vom 18. März 2026, 07:14 Uhr

Klonen des Templates

Erstellen eines Nameservers laut Plan
Name ns.it213.int
Vorläufiger DNS ist der 192.168.X.88
Der Server ist autoritativ UND rekursiv validierend

Installation

  • apt update
  • apt install bind9 bind9-utils

Auf den Nameservern

Trust Anker einfügen

Optionen

  • cat /etc/bind/named.conf.options
options {
        directory "/var/cache/bind";
        forwarders { 192.168.X.88; };
        empty-zones-enable no;
        recursion yes;        
        allow-query { any; };
        allow-transfer { 127.0.0.1; };
        dnssec-validation yes;
};

Zonenfestlegung

  • cat /etc/bind/named.conf.local
zone "it213.int" IN {
     type master;
     file "it213.int.signed";
};

zone "213.88.10.in-addr.arpa" IN {
     type master;
     file "213.88.10.in-addr.arpa";
};

Zonen selbst (unsigniert)

  • cat /var/cache/bind/it213.int
$TTL 300
@           IN SOA  ns.it213.int. technik.xinux.de. (
                        2026031701
                        14400
                        3600
                        3600000
                        86400
                    )
        IN NS      ns
        IN MX 10   mail

ns        IN A       10.88.213.21
www       IN A       10.88.213.11
mail      IN A       10.88.213.3
fw        IN A       10.88.213.1
proxy     IN A       10.88.213.4
checkmk   IN A       10.88.213.5
revproxy  IN A       10.88.213.41
nextcloud IN A       10.88.213.8
docker    IN A       10.88.213.9
  • cat /var/cache/bind/213.88.10.in-addr.arpa
$TTL 300
@           IN SOA  ns.it213.int. technik.xinux.de. (
                        2026031701
                        14400
                        3600
                        3600000
                        86400
                    )
        IN NS      ns.it213.int.

1       IN PTR     fw.it213.int.
21      IN PTR     ns.it213.int.
11      IN PTR     www.it213.int.
3       IN PTR     mail.it213.int.
4       IN PTR     proxy.it213.int.
5       IN PTR     checkmk.it213.int.
8       IN PTR     nextcloud.it213.int.
9       IN PTR     docker.it213.int.
41      IN PTR     revproxy.it213.int.

Verzeichnis wechseln

  • cd /var/cache/bind/

DNSSEC Schlüssel erzeugen

Forward Zone
  • dnssec-keygen -a RSASHA256 -b 2048 -n ZONE it213.int
  • dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE it213.int

DNSKEY einbinden

Forward
  • for k in Kit213.int.+*.key ; do echo "\$INCLUDE $k" >> /var/cache/bind/it213.int; done

Zonen signieren

  • dnssec-signzone -A -N INCREMENT -o it213.int -t /var/cache/bind/it213.int
Erzeugt
/var/cache/bind/it213.int.signed
  • systemctl restart named

DS Record für Fake Root erzeugen

DS aus signierter Zone erzeugen
  • dnssec-dsfromkey -f /var/cache/bind/it213.int.signed it213.int
DS Eintrag an Fake Root weitergeben
Im Fake Root in Zone int einfügen
Beispiel
it213 IN NS ns.it213.int.
ns.it213.int. IN A 10.88.213.21
it213.int. IN DS 12345 8 2 ABCDEF123456....
Danach Fake Root neu signieren
  • cd /var/cache/bind
  • dnssec-signzone -A -N INCREMENT -o int int
  • rndc reload

Handling und Logging

  • systemctl restart bind9
  • journalctl -fu bind9
  • journalctl -u bind9 -g it213.int

Validierungstest

Forward Validierung
  • dig www.it213.int +dnssec
Antwort muss AD-Flag enthalten