Pseudo second level domain DNSSEC: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
=Zonen ohne DNSSEC=
 
*cat /etc/bind/named.conf.options
 
<pre>
 
options {
 
directory "/var/cache/bind";
 
forwarders {
 
192.168.178.88;
 
};
 
empty-zones-enable no;
 
dnssec-validation auto;
 
listen-on-v6 { none; };
 
};
 
</pre>
 
<pre>
 
 
*cat /etc/bind/named.conf.local
 
zone it113.int IN {
 
    type master;
 
    file "it113.int";
 
};
 
 
zone 113.88.10.in-addr.arpa IN {
 
    type master;
 
    file "113.88.10.in-addr.arpa";
 
};
 
</pre>
 
*cat it113.int
 
<pre>
 
 
$TTL 300
 
@   IN SOA  ns technik.xinux.de. (
 
                        2011090204  ;
 
                        14400  ;
 
                        3600    ;
 
                        3600000 ;
 
                        86400  ;
 
                    )
 
        IN NS      ns
 
ns      IN A      10.88.113.2
 
www    IN A      10.88.113.22
 
</pre>
 
 
*cat 113.88.10.in-addr.arpa
 
<pre>
 
 
$TTL 300
 
@   IN SOA  ns.it113.int. technik.xinux.de. (
 
                        2011090204  ;
 
                        14400  ;
 
                        3600    ;
 
                        3600000 ;
 
                        86400  ;
 
                    )
 
        IN NS      ns.it113.int.
 
2 IN PTR ns.it113.int.
 
22 IN PTR www.it113.int.
 
</pre>
 
 
 
= DNSSEC für die Second-Level-Domain it113.int =
 
= DNSSEC für die Second-Level-Domain it113.int =
  
Zeile 64: Zeile 6:
 
* '''Ziel:''' DNSSEC-Signierung von '''it113.int''' und Veröffentlichung des DS-Records in der Parent-Zone ''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) ==
+
== Schlüssel für it113.int generieren (auf ns.it113.int) ==
 
* '''dnssec-keygen -a RSASHA256 -b 2048 -f KSK -n ZONE it113.int'''
 
* '''dnssec-keygen -a RSASHA256 -b 2048 -f KSK -n ZONE it113.int'''
 
* '''dnssec-keygen -a RSASHA256 -b 1024 -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) ==
+
== Schlüssel in die Zonendatei eintragen (auf ns.it113.int) ==
 
* '''cat K*.key >> /etc/bind/zones/it113.int.zone'''
 
* '''cat K*.key >> /etc/bind/zones/it113.int.zone'''
  
== 3. Zone signieren (auf ns.it113.int) ==
+
== Zone signieren (auf ns.it113.int) ==
 
* '''dnssec-signzone -A -N INCREMENT -o it113.int -t /etc/bind/zones/it113.int.zone'''
 
* '''dnssec-signzone -A -N INCREMENT -o it113.int -t /etc/bind/zones/it113.int.zone'''
  
 
Ergebnis: Die signierte Datei '''it113.int.zone.signed'''.
 
Ergebnis: Die signierte Datei '''it113.int.zone.signed'''.
  
== 4. Bind konfigurieren, um die signierte Zone zu verwenden (auf ns.it113.int) ==
+
== Bind konfigurieren, um die signierte Zone zu verwenden (auf ns.it113.int) ==
 
Zonendatei in ''/etc/bind/named.conf.local'' anpassen:
 
Zonendatei in ''/etc/bind/named.conf.local'' anpassen:
 
<pre>
 
<pre>
Zeile 90: Zeile 32:
 
* '''systemctl restart bind9'''
 
* '''systemctl restart bind9'''
  
== 5. DS-Records an die Toplevel-Domain übergeben (auf ns.it113.int) ==
+
== DS-Records an die Toplevel-Domain übergeben (auf ns.it113.int) ==
 
* '''dig +short DS it113.int'''
 
* '''dig +short DS it113.int'''
  
 
Den ausgegebenen DS-Record in die Zonendatei von ''int.'' auf ''dnsgw.gw'' eintragen.
 
Den ausgegebenen DS-Record in die Zonendatei von ''int.'' auf ''dnsgw.gw'' eintragen.
  
== 6. DS-Record in der Toplevel-Domain veröffentlichen (auf dnsgw.gw) ==
+
== DS-Records aller Second-Level-Zonen in die Toplevel-Domain eintragen ==
 +
Falls mehrere Second-Level-Zonen mit DNSSEC signiert werden sollen, müssen alle **DS-Records** dieser Zonen in die **int**-Zone eingetragen werden. Das bedeutet:
 +
* Falls du **alle 13 Second-Level-Zonen gleichzeitig signierst**, dann reicht **eine einzige Neusignierung** der **int**-Zone.
 +
* Falls du die DS-Records **zu unterschiedlichen Zeiten aktualisierst**, muss die **int**-Zone nach jeder Änderung neu signiert werden.
 +
 
 
In der Datei '''/etc/bind/zones/int.zone''':
 
In der Datei '''/etc/bind/zones/int.zone''':
 
<pre>
 
<pre>
 
it113.int. IN DS 12345 8 2 49FD74D5C4A7AE7D15A57A15B22D...
 
it113.int. IN DS 12345 8 2 49FD74D5C4A7AE7D15A57A15B22D...
</pre>
+
it114.int. IN DS 67890 8 2 28A1F3D4C5E7B890A67B22A3D4F9...
 +
...</pre>
 +
 
 +
== Warum muss die Toplevel-Zone neu signiert werden? ==
 +
Die **int**-Zone enthält die **DS-Records** für alle signierten Second-Level-Zonen. Sobald ein neuer **DS-Record** eingetragen oder geändert wird, muss die gesamte **int**-Zone neu signiert werden, damit die neuen Einträge verifiziert werden können.
 +
 
 +
== Wird die Toplevel-Zone bei jeder Änderung einer Second-Level-Zone neu signiert? ==
 +
Nein. Die **int**-Zone muss nur dann neu signiert werden, wenn sich ein **DS-Record** ändert, also z. B. ein neuer Key generiert wird. Andere Änderungen in ''it113.int'' oder anderen Second-Level-Zonen haben keine Auswirkungen auf die **int**-Zone**.
  
== 7. Toplevel-Zone neu signieren (auf dnsgw.gw) ==
+
== Toplevel-Zone neu signieren (auf dnsgw.gw) ==
 
* '''dnssec-signzone -A -N INCREMENT -o int -t /etc/bind/zones/int.zone'''
 
* '''dnssec-signzone -A -N INCREMENT -o int -t /etc/bind/zones/int.zone'''
  
Zeile 107: Zeile 60:
 
* '''systemctl restart bind9'''
 
* '''systemctl restart bind9'''
  
== 8. Überprüfung (auf beliebigem Client) ==
+
== Überprüfung (auf beliebigem Client) ==
 
* '''dig +dnssec it113.int'''
 
* '''dig +dnssec it113.int'''
 
* '''dig +dnssec www.it113.int'''
 
* '''dig +dnssec www.it113.int'''
  
 
Falls alles korrekt ist, sollte das '''AD-Bit''' (Authentic Data) gesetzt sein.
 
Falls alles korrekt ist, sollte das '''AD-Bit''' (Authentic Data) gesetzt sein.
}}
 

Version vom 13. März 2025, 05:40 Uhr

DNSSEC für die Second-Level-Domain it113.int

Übersicht

  • Die Toplevel-Domain int. ist bereits mit DNSSEC signiert und läuft auf dnsgw.gw.
  • Die Second-Level-Domain it113.int wird auf ns.it113.int gehostet.
  • Ziel: DNSSEC-Signierung von it113.int und Veröffentlichung des DS-Records in der Parent-Zone int..

Schlüssel für it113.int generieren (auf ns.it113.int)

  • dnssec-keygen -a RSASHA256 -b 2048 -f KSK -n ZONE it113.int
  • dnssec-keygen -a RSASHA256 -b 1024 -n ZONE it113.int

Schlüssel in die Zonendatei eintragen (auf ns.it113.int)

  • cat K*.key >> /etc/bind/zones/it113.int.zone

Zone signieren (auf ns.it113.int)

  • dnssec-signzone -A -N INCREMENT -o it113.int -t /etc/bind/zones/it113.int.zone

Ergebnis: Die signierte Datei it113.int.zone.signed.

Bind konfigurieren, um die signierte Zone zu verwenden (auf ns.it113.int)

Zonendatei in /etc/bind/named.conf.local anpassen:

zone "it113.int" {
    type master;
    file "/etc/bind/zones/it113.int.zone.signed";
    allow-transfer { any; }; 
    allow-query { any; };
};

Neustart von BIND:

  • systemctl restart bind9

DS-Records an die Toplevel-Domain übergeben (auf ns.it113.int)

  • dig +short DS it113.int

Den ausgegebenen DS-Record in die Zonendatei von int. auf dnsgw.gw eintragen.

DS-Records aller Second-Level-Zonen in die Toplevel-Domain eintragen

Falls mehrere Second-Level-Zonen mit DNSSEC signiert werden sollen, müssen alle **DS-Records** dieser Zonen in die **int**-Zone eingetragen werden. Das bedeutet:

  • Falls du **alle 13 Second-Level-Zonen gleichzeitig signierst**, dann reicht **eine einzige Neusignierung** der **int**-Zone.
  • Falls du die DS-Records **zu unterschiedlichen Zeiten aktualisierst**, muss die **int**-Zone nach jeder Änderung neu signiert werden.

In der Datei /etc/bind/zones/int.zone:

it113.int. IN DS 12345 8 2 49FD74D5C4A7AE7D15A57A15B22D...
it114.int. IN DS 67890 8 2 28A1F3D4C5E7B890A67B22A3D4F9...
...

Warum muss die Toplevel-Zone neu signiert werden?

Die **int**-Zone enthält die **DS-Records** für alle signierten Second-Level-Zonen. Sobald ein neuer **DS-Record** eingetragen oder geändert wird, muss die gesamte **int**-Zone neu signiert werden, damit die neuen Einträge verifiziert werden können.

Wird die Toplevel-Zone bei jeder Änderung einer Second-Level-Zone neu signiert?

Nein. Die **int**-Zone muss nur dann neu signiert werden, wenn sich ein **DS-Record** ändert, also z. B. ein neuer Key generiert wird. Andere Änderungen in it113.int oder anderen Second-Level-Zonen haben keine Auswirkungen auf die **int**-Zone**.

Toplevel-Zone neu signieren (auf dnsgw.gw)

  • dnssec-signzone -A -N INCREMENT -o int -t /etc/bind/zones/int.zone

Neustart von BIND:

  • systemctl restart bind9

Überprüfung (auf beliebigem Client)

  • dig +dnssec it113.int
  • dig +dnssec www.it113.int

Falls alles korrekt ist, sollte das AD-Bit (Authentic Data) gesetzt sein.