Pseudo second level domain DNSSEC: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
= DNSSEC für die Second-Level-Zone it213.int und 213.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 '''it213.int''' wird auf '''ns.it213.int''' gehostet.
+
*apt install bind9 bind9-utils
- Die Reverse-Zone '''213.88.10.in-addr.arpa''' wird ebenfalls auf '''ns.it213.int''' verwaltet.
 
- '''Ziel:''' DNSSEC-Signierung beider Zonen und Veröffentlichung der DS-Records in der Parent-Zone.
 
  
== Schlüssel für it213.int generieren (auf ns.it213.int) ==
+
=Auf den Nameservern=
'''ZSK erzeugen'''
 
*KSK_IT=$(dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE -K /var/cache/bind it213.int)
 
*ZSK_IT=$(dnssec-keygen -a RSASHA256 -b 2048 -n ZONE -K /var/cache/bind it213.int)
 
  
== Schlüssel für 213.88.10.in-addr.arpa generieren (auf ns.it213.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 213.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 213.88.10.in-addr.arpa)
+
*echo 'include "/etc/bind/trust-anchors.conf";' >> named.conf
  
== Schlüssel in die Zonendateien eintragen (auf ns.it213.int) ==
+
==Optionen==
'''it213.int'''
+
*cat /etc/bind/named.conf.options
*echo "\$INCLUDE /var/cache/bind/$KSK_IT.key" >> /var/cache/bind/it213.int
+
<pre>
*echo "\$INCLUDE /var/cache/bind/$ZSK_IT.key" >> /var/cache/bind/it213.int
+
options {
 +
        directory "/var/cache/bind";
  
'''213.88.10.in-addr.arpa'''
+
        forwarders { 192.168.X.88; };
*echo "\$INCLUDE /var/cache/bind/$KSK_REV.key" >> /var/cache/bind/213.88.10.in-addr.arpa
+
        empty-zones-enable no;
*echo "\$INCLUDE /var/cache/bind/$ZSK_REV.key" >> /var/cache/bind/213.88.10.in-addr.arpa
 
  
== Zonen signieren (auf ns.it213.int) ==
+
        recursion yes;
'''it213.int'''
+
        dnssec-validation yes;
*dnssec-signzone -A -N INCREMENT -o it213.int -t /var/cache/bind/it213.int
 
  
'''213.88.10.in-addr.arpa'''
+
        allow-query { any; };
*dnssec-signzone -A -N INCREMENT -o 213.88.10.in-addr.arpa -t /var/cache/bind/213.88.10.in-addr.arpa
+
};
 +
</pre>
  
== Bind konfigurieren, um die signierten Zonen zu verwenden (auf ns.it213.int) ==
+
==Zonenfestlegung==
In der Datei '''/etc/bind/named.conf.local''':
+
*cat /etc/bind/named.conf.local
 
<pre>
 
<pre>
zone "it213.int" {
+
zone "it213.int" IN {
    type master;
+
    type master;
    file "/var/cache/bind/it213.int.signed";
+
    file "it213.int.signed";
    allow-transfer { any; };
 
    allow-query { any; };
 
 
};
 
};
  
zone "213.88.10.in-addr.arpa" {
+
zone "213.88.10.in-addr.arpa" IN {
    type master;
+
    type master;
    file "/var/cache/bind/213.88.10.in-addr.arpa.signed";
+
    file "213.88.10.in-addr.arpa";
    allow-transfer { any; };
 
    allow-query { any; };
 
 
};
 
};
 
</pre>
 
</pre>
==dnssec-validation auf yes stellen==
 
*cat  /etc/bind/named.conf.options
 
options {
 
directory "/var/cache/bind";
 
dnssec-validation '''yes''';
 
listen-on-v6 { none; };
 
        forwarders { 192.168.3.88; };
 
        empty-zones-enable no;
 
};
 
  
== Konfiguration übernehmen und testen ==
+
=Zonen selbst (unsigniert)=
'''Bind9 neustarten und Zonenstatus prüfen'''
+
 
 +
*cat /var/cache/bind/it213.int
 +
<pre>
 +
$TTL 300
 +
@          IN SOA  ns.it213.int. technik.xinux.de. (
 +
                        2011090204
 +
                        14400
 +
                        3600
 +
                        3600000
 +
                        86400
 +
                    )
 +
        IN NS      ns
 +
        IN MX 10  mail
 +
 
 +
ns      IN A      10.88.213.21
 +
www    IN A      10.88.213.22
 +
mail    IN A      10.88.213.23
 +
fw      IN A      10.88.213.1
 +
db      IN A      10.88.213.24
 +
app    IN A      10.88.213.25
 +
git    IN A      10.88.213.26
 +
monitor IN A      10.88.213.27
 +
</pre>
 +
 
 +
*cat /var/cache/bind/213.88.10.in-addr.arpa
 +
<pre>
 +
$TTL 300
 +
@          IN SOA  ns.it213.int. technik.xinux.de. (
 +
                        2011090204
 +
                        14400
 +
                        3600
 +
                        3600000
 +
                        86400
 +
                    )
 +
        IN NS      ns.it213.int.
 +
 
 +
1      IN PTR    fw.it213.int.
 +
21      IN PTR    ns.it213.int.
 +
22      IN PTR    www.it213.int.
 +
23      IN PTR    mail.it213.int.
 +
24      IN PTR    db.it213.int.
 +
25      IN PTR    app.it213.int.
 +
26      IN PTR    git.it213.int.
 +
27      IN PTR    monitor.it213.int.
 +
</pre>
 +
 
 +
=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
 +
<pre>
 +
/var/cache/bind/it213.int.signed
 +
</pre>
 +
 
 
*systemctl restart bind9
 
*systemctl restart bind9
*rndc reload
 
*rndc zonestatus it213.int
 
*rndc zonestatus 213.88.10.in-addr.arpa
 
  
== DS-Records an die Parent-Zonen übergeben ==
+
=DS Record für Fake Root erzeugen=
'''it213.int'''
+
 
*dnssec-dsfromkey -2 /var/cache/bind/$KSK_IT.key
+
;DS aus signierter Zone erzeugen
 +
*dnssec-dsfromkey -f /var/cache/bind/it213.int.signed it213.int
  
Den ausgegebenen DS-Record in die Parent-Zone '''int.''' auf '''dnsgw.gw''' eintragen.
+
;DS Eintrag an Fake Root weitergeben
 +
;Im Fake Root in Zone int einfügen
  
'''213.88.10.in-addr.arpa'''
+
;Beispiel:
*dnssec-dsfromkey -2 /var/cache/bind/$KSK_REV.key
+
;it213      IN NS ns.it213.int.
Den ausgegebenen DS-Record in die übergeordnete Zone '''88.10.in-addr.arpa''' auf '''dnsgw.gw''' eintragen.
+
;ns.it213.int. IN A 10.88.213.21
 +
;it213.int. IN DS 12345 8 2 ABCDEF123456....
  
== Toplevel-Zone neu signieren (auf dnsgw) ==
+
;Danach Fake Root neu signieren
*dnssec-signzone -A -N INCREMENT -o int -t /var/cache/bind/int
+
*cd /var/cache/bind
*dnssec-signzone -A -N INCREMENT -o 88.10.in-addr.arpa -t /var/cache/bind/88.10.in-addr.arpa
+
*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=
'''it213.int'''
 
*dig +dnssec it213.int
 
*dig +dnssec www.it213.int
 
  
'''213.88.10.in-addr.arpa'''
+
;Forward Validierung
*dig +dnssec 213.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

Version vom 9. März 2026, 15:10 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;
        dnssec-validation yes;

        allow-query { any; };
};

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. (
                        2011090204
                        14400
                        3600
                        3600000
                        86400
                    )
        IN NS      ns
        IN MX 10   mail

ns      IN A       10.88.213.21
www     IN A       10.88.213.22
mail    IN A       10.88.213.23
fw      IN A       10.88.213.1
db      IN A       10.88.213.24
app     IN A       10.88.213.25
git     IN A       10.88.213.26
monitor IN A       10.88.213.27
  • cat /var/cache/bind/213.88.10.in-addr.arpa
$TTL 300
@           IN SOA  ns.it213.int. technik.xinux.de. (
                        2011090204
                        14400
                        3600
                        3600000
                        86400
                    )
        IN NS      ns.it213.int.

1       IN PTR     fw.it213.int.
21      IN PTR     ns.it213.int.
22      IN PTR     www.it213.int.
23      IN PTR     mail.it213.int.
24      IN PTR     db.it213.int.
25      IN PTR     app.it213.int.
26      IN PTR     git.it213.int.
27      IN PTR     monitor.it213.int.

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 bind9

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