Linux - Netzwerk und Serveradminstration DNS DNSEC: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 220: | Zeile 220: | ||
;Forward | ;Forward | ||
| − | *for k in | + | *for k in Kit2XX.int.+*.key ; do echo "\$INCLUDE $k" >> /var/cache/bind/it2XX.int; done |
=Zonen signieren= | =Zonen signieren= | ||
| − | *dnssec-signzone -A -N INCREMENT -o | + | *dnssec-signzone -A -N INCREMENT -o it2XX.int -t /var/cache/bind/it2XX.int |
;Erzeugt | ;Erzeugt | ||
Aktuelle Version vom 24. April 2026, 14:17 Uhr
Vorab Theorie
Pseudo Top-Level-Domain
Pseudo-Top-Level Domäne
- Um die Domänen der anderen Labore aufzulösen ist ein Forwarder nötig
- Dieser zeigt auf den entsprechenden DNS-Server der Domäne, sodass die Zonen nur einmal definiert werden müssen
Vorbereitungen
- VirtualBox Server-Vorlage klonen
- Der Host soll im DMZ-Netzwerk liegen
- statische IP-Adresse nach dem Netzwerkplan setzen (/etc/network/interfaces)
- SSH-Schlüssel des Kit Hosts für User kit hinterlegen
Netzkonfiguration DNS-Server (DMZ)
| Parameter | Wert | Erläuterung |
|---|---|---|
| Netzwerk (NIC) | DMZ | Interface-Zuweisung in VirtualBox |
| IP | 10.88.2XX.21 | Statische IP |
| CIDR | 24 | Classless Inter-Domain Routing Präfixlänge |
| GW | 10.88.2XX.1 | GATEWAY |
| NS | 192.168.HS.88 | Resolver |
| FQDN | ns.it2XX.int | Fully Qualified Domain Name |
| SHORT | ns | Short Name |
| DOM | it2XX.int | Domain Name |
- Anpassen des Templates
DNS Umsetzung
Installation
- apt install bind9
Stop
- systemctl stop named
Start
- systemctl start named
Restart
- systemctl restart named
Status
- systemctl status named
Hauptkonfiguration
Standardmäßig ist die Konfiguration von bind9 auf mehrere Dateien aufgeteilt:
/etc/bind/named.conf
#Diese Datei inkludiert einfach nur die anderen 3 Dateien
Allgemeine Option zum Nameserver
include "/etc/bind/named.conf.options";
Hier kommen die eignen Zonen rein
include "/etc/bind/named.conf.local";
Hier werden die Root Nameserver konfigurtiert
include "/etc/bind/named.conf.root-hints";
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
/etc/bind/named.conf.options
Berechtigungen und Einschränkungen
options {
directory "/var/cache/bind";
forwarders { <DNSGW>; };
empty-zones-enable no;
allow-query { 0.0.0.0/0; };
allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 127.0.0.1; };
allow-transfer {127.0.0.1; };
dnssec-validation yes;
listen-on-v6 { none; };
listen-on { any; };
};
Erklärungen
- directory "/var/cache/bind";
- Das ist das Basisverzeichnis der Zonen-Datein
- forwarders { <DNSGW>; };
- Wir richten alle Anfragen die wir nicht selbst beantworten können and er Forwarder
- empty-zones-enable no;
- Deaktiviert die eingebauten leeren Zonen für private IP-Bereiche (RFC 1918), damit PTR-Anfragen an den Forwarder weitergeleitet werden anstatt lokal mit NXDOMAIN beantwortet zu werden.
- allow-query { 0.0.0.0/0; };
- Diese Rechner dürfen den Nameserver nach dem von ihm verwalteten Zonen befragen.
- allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 127.0.0.1; };
- Diese Rechner dürfen den Nameserver nach Einträgen befragen die er nicht selbst beantworten kann.
- allow-transfer {127.0.0.1; };
- Diese Rechner dürfen einen axfr Abfrage durchführen.
- listen-on-v6 { none; };
- Wir schalten IPv6 ab
- listen-on { any; };
- Wir lauschen an allen Schnittstellen
- dnssec-validation yes;
- DNSSEC Validierung ist aktiviert
Restart
- systemctl restart named
Konfigurations
/etc/bind/named.conf.root-hints
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/usr/share/dns/root.hints";
};
/etc/bind/named.conf.local
//Standardmässig leer
//Hier werden die sogenanten Zonen angelegt.
zone "it2xx.int" {
type master;
file "it2xx.int.signed";
};
zone "2xx.88.10.in-addr.arpa" {
type master;
file "2xx.88.10.in-addr.arpa";
};
Erklärungen
- zone "it2xx.int" {
- Die beschreibt den authoritiven Bereich den ihr verwaltet
- type master;
- Wir befinden uns auf primären Nameserver
- file "it2xx.int.signed";
- In dieser Datei werden die signierten Zonendaten konfiguriert. Der Pfad ist relativ zur directory Direktive.
- };
- Abschluss des authoritiven Bereich.
Konfigurationsverzeichnis
/var/cache/bind
Forward Zonen Datei ohne Secundary DNS
- Die Zonendatei enthält die Informationen zu den Adressen, und sieht folgendermaßen aus:
- vi /var/cache/bind/it2xx.int
$TTL 1 ; 1 Sekunde
@ IN SOA ns.it2XX.int. technik.it2XX.int. (
2025062501 ; serial
14400 ; refresh (4 hours)
3600 ; retry (1 hour)
3600000 ; expire (5 weeks 6 days 16 hours)
300 ; minimum (5 min)
)
NS ns.it2xx.int.
MX 10 mail.it2xx.int.
fw IN A 10.88.2XX.1
ns IN A 10.88.2XX.21
sftp IN A 10.88.2XX.15
proxy IN A 10.88.2XX.4
mail IN A 10.88.2XX.3
www IN A 10.88.2XX.11
revproxy IN A 10.88.2XX.41
checkmk IN A 10.88.2XX.5
ntp IN A 10.88.2XX.17
nextcloud IN A 10.88.2XX.8
docker IN A 10.88.2XX.9
dhcp IN A 172.26.2XX.2
smb IN A 10.2XX.1.2
ldap IN A 10.2XX.1.3
Check
- named-checkzone it213.int /var/cache/bind/it213.int
zone it213.int/IN: loaded serial 2011090204 OK
Reverse Zonen Datei
- vi /var/cache/bind/2XX.88.10.in-addr.arpa
$TTL 1
@ IN SOA ns.it2XX.int. technik.it2XX.int. (
2025062501 ; serial
14400 ; refresh (4 hours)
3600 ; retry (1 hour)
3600000 ; expire (5 weeks 6 days 16 hours)
300 ; minimum (5 min)
)
IN NS ns.it2XX.int.
1 IN PTR fw.it2XX.int.
21 IN PTR ns.it2XX.int.
3 IN PTR mail.it2XX.int.
4 IN PTR proxy.it2XX.int.
17 IN PTR ntp.it2XX.int.
11 IN PTR www.it2XX.int.
15 IN PTR sftp.it2XX.int.
41 IN PTR revproxy.it2XX.int.
5 IN PTR checkmk.it2XX.int.
8 IN PTR docker.it2XX.int.
9 IN PTR nexcloud.it2XX.int.
Check
- named-checkzone 2XX.88.10.in-addr.arpa /var/cache/bind/2XX.88.10.in-addr.arpa
zone 2XX.88.10.in-addr.arpa/IN: loaded serial 2011090204 OK
Verzeichnis wechseln
- cd /var/cache/bind/
DNSSEC Schlüssel erzeugen
- Forward Zone
- dnssec-keygen -a RSASHA256 -b 2048 -n ZONE it2XX.int
- dnssec-keygen -a RSASHA256 -b 4096 -f KSK -n ZONE it2XX.int
DNSKEY einbinden
- Forward
- for k in Kit2XX.int.+*.key ; do echo "\$INCLUDE $k" >> /var/cache/bind/it2XX.int; done
Zonen signieren
- dnssec-signzone -A -N INCREMENT -o it2XX.int -t /var/cache/bind/it2XX.int
- Erzeugt
/var/cache/bind/it2XX.int.signed
- systemctl restart named
DS Record für Fake Root erzeugen
- DS aus signierter Zone erzeugen
- dnssec-dsfromkey -f /var/cache/bind/it2XX.int.signed it2XX.int
- DS Eintrag an Fake Root weitergeben
- Im Fake Root in Zone int einfügen
- Beispiel
- it2XX IN NS ns.it2XX.int.
- ns.it2XX.int. IN A 10.88.2XX.21
- it2XX.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 it2XX.int
Validierungstest
- Forward Validierung
- dig www.it2XX.int +dnssec
- Antwort muss AD-Flag enthalten
Status
- systemctl status named
Logs
- Aktualisierte Log von named
- journalctl -fu named
- Die letzten 20 Log Zeilen vom named
- journalctl -n 20 -u named
- Aktualisierte Log von named plus grepen nach it2XX
- journalctl -fu named -g it2XX
Sind die Ports geöffnet
- ss -lntpu | grep named
