Pseudo second level domain DNSSEC: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= DNSSEC für die Second-Level-Zone it113.int und 113.88.10.in-addr.arpa =
+
=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
  
== Übersicht ==
+
=Installation=
- Die Toplevel-Domain '''int.''' ist bereits mit '''DNSSEC signiert''' und läuft auf '''dnsgw.gw'''.
+
*apt update
- Die Second-Level-Zone '''it113.int''' wird auf '''ns.it113.int''' gehostet.
+
*apt install bind9 bind9-utils
- Die Reverse-Zone '''113.88.10.in-addr.arpa''' wird ebenfalls auf '''ns.it113.int''' verwaltet.
 
- '''Ziel:''' DNSSEC-Signierung beider Zonen und Veröffentlichung der DS-Records in der Parent-Zone.
 
  
== Schlüssel für it113.int generieren (auf ns.it113.int) ==
+
=Auf den Nameservern=
'''ZSK erzeugen'''
 
*KSK_IT=$(dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE -K /var/cache/bind it113.int)
 
*ZSK_IT=$(dnssec-keygen -a RSASHA256 -b 2048 -n ZONE -K /var/cache/bind it113.int)
 
  
== Schlüssel für 113.88.10.in-addr.arpa generieren (auf ns.it113.int) ==
+
==Trust Anker einfügen==
'''ZSK erzeugen'''
+
*cd /etc/bind/
*KSK_REV=$(dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE -K /var/cache/bind 113.88.10.in-addr.arpa)
+
*wget http://192.168.X.88/trust-anchors.conf
*ZSK_REV=$(dnssec-keygen -a RSASHA256 -b 2048 -n ZONE -K /var/cache/bind 113.88.10.in-addr.arpa)
+
*echo 'include "/etc/bind/trust-anchors.conf";' >> named.conf
  
== Schlüssel in die Zonendateien eintragen (auf ns.it113.int) ==
+
==Optionen==
'''it113.int'''
+
*cat /etc/bind/named.conf.options
*echo "$INCLUDE /var/cache/bind/$KSK_IT113.key" >> /var/cache/bind/it113.int
+
<pre>
*echo "$INCLUDE /var/cache/bind/$ZSK_IT113.key" >> /var/cache/bind/it113.int
+
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;
 +
};
 +
 
 +
</pre>
  
'''113.88.10.in-addr.arpa'''
+
==Zonenfestlegung==
*echo "$INCLUDE /var/cache/bind/$KSK_REV.key" >> /var/cache/bind/113.88.10.in-addr.arpa
+
*cat /etc/bind/named.conf.local
*echo "$INCLUDE /var/cache/bind/$ZSK_REV.key" >> /var/cache/bind/113.88.10.in-addr.arpa
+
<pre>
 +
zone "it213.int" IN {
 +
    type master;
 +
    file "it213.int.signed";
 +
};
  
== Zonen signieren (auf ns.it113.int) ==
+
zone "213.88.10.in-addr.arpa" IN {
'''it113.int'''
+
    type master;
*dnssec-signzone -A -N INCREMENT -o it113.int -t /var/cache/bind/it113.int
+
    file "213.88.10.in-addr.arpa";
 +
};
 +
</pre>
  
'''113.88.10.in-addr.arpa'''
+
=Zonen selbst (unsigniert)=
*dnssec-signzone -A -N INCREMENT -o 113.88.10.in-addr.arpa -t /var/cache/bind/113.88.10.in-addr.arpa
 
  
== Bind konfigurieren, um die signierten Zonen zu verwenden (auf ns.it113.int) ==
+
*cat /var/cache/bind/it213.int
In der Datei '''/etc/bind/named.conf.local''':
 
 
<pre>
 
<pre>
zone "it113.int" {
+
$TTL 300
     type master;
+
@          IN SOA  ns.it213.int. technik.xinux.de. (
    file "/var/cache/bind/it113.int.signed";
+
                        2026031701
    allow-transfer { any; };
+
                        14400
    allow-query { any; };
+
                        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
 +
</pre>
 +
 
 +
*cat /var/cache/bind/213.88.10.in-addr.arpa
 +
<pre>
 +
$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.
 +
 
 +
</pre>
 +
 
 +
==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
  
zone "113.88.10.in-addr.arpa" {
+
;Erzeugt
    type master;
+
<pre>
    file "/var/cache/bind/113.88.10.in-addr.arpa.signed";
+
/var/cache/bind/it213.int.signed
    allow-transfer { any; };
 
    allow-query { any; };
 
};
 
 
</pre>
 
</pre>
  
== Konfiguration übernehmen und testen ==
+
*systemctl restart named
'''Bind9 neustarten und Zonenstatus prüfen'''
+
 
*systemctl restart bind9
+
=DS Record für Fake Root erzeugen=
*rndc reload
+
 
*rndc zonestatus it113.int
+
;DS aus signierter Zone erzeugen
*rndc zonestatus 113.88.10.in-addr.arpa
+
*dnssec-dsfromkey -f /var/cache/bind/it213.int.signed it213.int
  
== DS-Records an die Parent-Zonen übergeben ==
+
;DS Eintrag an Fake Root weitergeben
'''it113.int'''
+
;Im Fake Root in Zone int einfügen
*dnssec-dsfromkey -2 /var/cache/bind/$KSK_IT113.key > /var/cache/bind/dsset-it113.int
 
*dig +short DS it113.int
 
Den ausgegebenen DS-Record in die Parent-Zone '''int.''' auf '''dnsgw.gw''' eintragen.
 
  
'''113.88.10.in-addr.arpa'''
+
;Beispiel:
*dnssec-dsfromkey -2 /var/cache/bind/$KSK_REV.key > /var/cache/bind/dsset-113.88.10.in-addr.arpa
+
;it213      IN NS ns.it213.int.
*dig +short DS 113.88.10.in-addr.arpa
+
;ns.it213.int. IN A 10.88.213.21
Den ausgegebenen DS-Record in die übergeordnete Zone '''88.10.in-addr.arpa''' auf '''dnsgw.gw''' eintragen.
+
;it213.int. IN DS 12345 8 2 ABCDEF123456....
  
== Toplevel-Zone neu signieren (auf dnsgw.gw) ==
+
;Danach Fake Root neu signieren
*dnssec-signzone -A -N INCREMENT -o int -t /etc/bind/zones/int.zone
+
*cd /var/cache/bind
*dnssec-signzone -A -N INCREMENT -o 88.10.in-addr.arpa -t /etc/bind/zones/88.10.in-addr.arpa.zone
+
*dnssec-signzone -A -N INCREMENT -o int int
 +
*rndc reload
  
Neustart von BIND:
+
=Handling und Logging=
 
*systemctl restart bind9
 
*systemctl restart bind9
 +
*journalctl -fu bind9
 +
*journalctl -u bind9 -g it213.int
  
== Überprüfung (auf beliebigem Client) ==
+
=Validierungstest=
'''it113.int'''
 
*dig +dnssec it113.int
 
*dig +dnssec www.it113.int
 
  
'''113.88.10.in-addr.arpa'''
+
;Forward Validierung
*dig +dnssec 113.88.10.in-addr.arpa
+
*dig www.it213.int +dnssec
  
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