Linux - Netzwerk und Serveradminstration DNS: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (88 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
= | =Vorab Theorie= | ||
{{#drawio: | * [[DNS Grundlagen]] | ||
= | * [[DNS Records]] | ||
{{#drawio: | * [[DNS Master - Slave - Forward]] | ||
=Schaubild= | |||
==Forward Zonen== | |||
{{#drawio:top-level-1}} | |||
==Reverse Zonen== | |||
{{#drawio:rev-top-level-1}} | |||
= Pseudo-Top-Level Domäne = | = Pseudo-Top-Level Domäne = | ||
| Zeile 8: | Zeile 15: | ||
* Dieser zeigt auf den entsprechenden DNS-Server der Domäne, sodass die Zonen nur einmal definiert werden müssen | * Dieser zeigt auf den entsprechenden DNS-Server der Domäne, sodass die Zonen nur einmal definiert werden müssen | ||
== Vorbereitungen == | == Vorbereitungen == | ||
* VirtualBox Server-Vorlage | * VirtualBox Server-Vorlage klonen | ||
* Der Host soll im ''DMZ''-Netzwerk liegen | * Der Host soll im ''DMZ''-Netzwerk liegen | ||
* statische IP-Adresse nach dem Netzwerkplan setzen (''/etc/network/interfaces'') | * statische IP-Adresse nach dem Netzwerkplan setzen (''/etc/network/interfaces'') | ||
* SSH-Schlüssel des Kit Hosts für User ''kit'' hinterlegen | * SSH-Schlüssel des Kit Hosts für User ''kit'' hinterlegen | ||
=== Netzkonfiguration DNS-Server (DMZ) === | === Netzkonfiguration DNS-Server (DMZ) === | ||
| Zeile 28: | Zeile 32: | ||
| '''GW''' || 10.88.2XX.1 || GATEWAY | | '''GW''' || 10.88.2XX.1 || GATEWAY | ||
|- | |- | ||
| '''NS''' || 192.168. | | '''NS''' || 192.168.HS.88 || Resolver | ||
|- | |- | ||
| '''FQDN''' || ns.it2XX.int || Fully Qualified Domain Name | | '''FQDN''' || ns.it2XX.int || Fully Qualified Domain Name | ||
| Zeile 34: | Zeile 38: | ||
| '''SHORT''' || ns || Short Name | | '''SHORT''' || ns || Short Name | ||
|- | |- | ||
| ''' | | '''DOM''' || it2XX.int|| Domain Name | ||
|} | |} | ||
;Anpassen des Templates | |||
*[[Anpassen des Debian Templates]] | |||
oder | |||
*debian-setup.sh -f ns.it2XX.int -a 10.88.2XX.21/24 -g 10.88.2XX.1 -n 192.168.HS.88 | |||
= | ==JumpHost== | ||
;Auf dem KIT Host anfügen | ;Auf dem KIT Host anfügen | ||
*vim ~/.ssh/config | *vim ~/.ssh/config | ||
Host | Host <span style="color:red">'''SHORT'''</span> | ||
Hostname | Hostname <span style="color:red">'''IP'''</span> | ||
ProxyJump | ProxyJump fw | ||
;PubKey Übertragung | ;PubKey Übertragung | ||
*ssh-copy-id | *ssh-copy-id <span style="color:red">'''SHORT'''</span> | ||
Danach könnt ihr euch mit '''ssh | Danach könnt ihr euch mit '''ssh''' <span style="color:red">'''SHORT'''</span> passswortlos einlogen | ||
=DNS Umsetzung= | =DNS Umsetzung= | ||
| Zeile 112: | Zeile 78: | ||
===Hier kommen die eignen Zonen rein=== | ===Hier kommen die eignen Zonen rein=== | ||
include "/etc/bind/named.conf.local"; | include "/etc/bind/named.conf.local"; | ||
===Hier die | ===Hier werden die Root Nameserver konfigurtiert=== | ||
include "/etc/bind/named.conf. | include "/etc/bind/named.conf.root-hints"; | ||
==/etc/bind/named.conf.options== | ==/etc/bind/named.conf.options== | ||
===Berechtigungen und Einschränkungen=== | ===Berechtigungen und Einschränkungen=== | ||
{{BindOptions}} | |||
} | |||
====Erklärungen==== | ====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; }; | ;allow-query { 0.0.0.0/0; }; | ||
*Diese Rechner dürfen den Nameserver nach dem von ihm verwalteten Zonen befragen. | *Diese Rechner dürfen den Nameserver nach dem von ihm verwalteten Zonen befragen. | ||
;allow-recursion { 10.88. | ;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. | *Diese Rechner dürfen den Nameserver nach Einträgen befragen die er nicht selbst beantworten kann. | ||
;allow-transfer {127.0.0.1; }; | ;allow-transfer {127.0.0.1; }; | ||
*Diese Rechner dürfen einen axfr Abfrage durchführen. | *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 | |||
=Testen= | =Testen= | ||
| Zeile 143: | Zeile 108: | ||
=Konfigurations= | =Konfigurations= | ||
==/etc/bind/named.conf. | ==/etc/bind/named.conf.root-hints== | ||
<pre> | <pre> | ||
// prime the server with knowledge of the root servers | |||
zone "." { | zone "." { | ||
type hint; | |||
file "/usr/share/dns/root.hints"; | |||
}; | }; | ||
</pre> | </pre> | ||
==/etc/bind/named.conf.local== | ==/etc/bind/named.conf.local== | ||
<pre> | <pre> | ||
//Standardmässig leer | |||
//Hier werden die sogenanten Zonen angelegt. | |||
zone "it2XX.int" { | |||
type master; | |||
file "it2XX.int"; | |||
}; | |||
zone "2XX.88.10.in-addr.arpa" { | |||
type master; | |||
file "2XX.88.10.in-addr.arpa"; | |||
}; | |||
</pre> | </pre> | ||
====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"; | |||
*In dieser Datei werden die Zonendaten konfiguriert. Der Pfad ist relativ zur '''directory''' Direktive. | |||
;}; | |||
*Abschluss des authoritiven Bereich. | |||
=Konfigurationsverzeichnis= | =Konfigurationsverzeichnis= | ||
| Zeile 186: | Zeile 145: | ||
=Forward Zonen Datei ohne Secundary DNS= | =Forward Zonen Datei ohne Secundary DNS= | ||
*Die Zonendatei enthält die Informationen zu den Adressen, und sieht folgendermaßen aus: | *Die Zonendatei enthält die Informationen zu den Adressen, und sieht folgendermaßen aus: | ||
*vi /var/cache/bind/ | *vi /var/cache/bind/it2XX.int | ||
{{it2XX.int}} | |||
=Check= | =Check= | ||
*named-checkzone | *named-checkzone it2XX.int /var/cache/bind/it2XX.int | ||
zone | zone it2XX.int/IN: loaded serial 2011090204 | ||
OK | OK | ||
=Reverse Zonen Datei= | =Reverse Zonen Datei= | ||
*vi /var/cache/bind/ | *vi /var/cache/bind/2XX.88.10.in-addr.arpa | ||
{{2XX.88.10.in-addr.arpa}} | |||
=Check= | =Check= | ||
| Zeile 245: | Zeile 166: | ||
=Finaler Check= | =Finaler Check= | ||
Asynchronous Full Zone Transfer | |||
;Zone | ;Zone | ||
*dig @127.0.0.1 it213.int -t axfr | *dig @127.0.0.1 it213.int -t axfr | ||
| Zeile 250: | Zeile 172: | ||
*dig @127.0.0.1 213.88.10.in-addr.arpa -t axfr | *dig @127.0.0.1 213.88.10.in-addr.arpa -t axfr | ||
=ändern der /etc/resolv.conf | =ändern der /etc/network/interfaces= | ||
dns-nameserver '''127.0.0.1''' | |||
;Danach aktivieren | |||
*ifdown enp0s3 && ifup enp0s3 | |||
;Kontrolle | |||
*cat /etc/resolv.conf | |||
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) | |||
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN | |||
nameserver 127.0.0.1 | nameserver 127.0.0.1 | ||
search | search it213.int | ||
=Status= | |||
*systemctl status named | |||
=Logs= | =Logs= | ||
;Aktualisierte Log von named | ;Aktualisierte Log von named | ||
| Zeile 258: | Zeile 191: | ||
;Die letzten 20 Log Zeilen vom named | ;Die letzten 20 Log Zeilen vom named | ||
*journalctl -n 20 -u named | *journalctl -n 20 -u named | ||
;Aktualisierte Log von named plus grepen nach it213 | |||
*journalctl -fu named -g it213 | |||
=Sind die Ports geöffnet= | =Sind die Ports geöffnet= | ||
| Zeile 266: | Zeile 201: | ||
*[[dig]] | *[[dig]] | ||
*[[nslookup]] | *[[nslookup]] | ||
Aktuelle Version vom 16. Juli 2026, 11:53 Uhr
Vorab Theorie
Schaubild
Forward Zonen
Reverse Zonen
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
oder
- debian-setup.sh -f ns.it2XX.int -a 10.88.2XX.21/24 -g 10.88.2XX.1 -n 192.168.HS.88
JumpHost
- Auf dem KIT Host anfügen
- vim ~/.ssh/config
Host SHORT Hostname IP ProxyJump fw
- PubKey Übertragung
- ssh-copy-id SHORT
Danach könnt ihr euch mit ssh SHORT passswortlos einlogen
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";
/etc/bind/named.conf.options
Berechtigungen und Einschränkungen
options {
directory "/var/cache/bind";
forwarders { <DNSGW>; };
allow-query { 0.0.0.0/0; };
allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 172.20.2XX.0; 127.0.0.1; };
allow-transfer {127.0.0.1; };
dnssec-validation no;
empty-zones-enable no;
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
Testen
- named-checkconf
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";
};
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";
- In dieser Datei werden die 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
@ IN SOA ns.it2XX.int. technik.it2XX.int. ( 2026060201 14400 3600 3600000 300 )
IN NS ns.it2XX.int.
IN 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
waf IN A 10.88.2XX.19
dhcp IN A 172.26.2XX.2
smb IN A 10.2XX.1.2
ldap IN A 10.2XX.1.3
kali IN A 172.26.2XX.100
Check
- named-checkzone it2XX.int /var/cache/bind/it2XX.int
zone it2XX.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. ( 2026042701 14400 3600 3600000 86400 ) 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 nextcloud.it2XX.int. 19 IN PTR waf.it2XX.int.
Check
- named-checkzone 213.88.10.in-addr.arpa /var/cache/bind/213.88.10.in-addr.arpa
zone 213.88.10.in-addr.arpa/IN: loaded serial 2011090204 OK
Restart
- systemctl restart named
Finaler Check
Asynchronous Full Zone Transfer
- Zone
- dig @127.0.0.1 it213.int -t axfr
- Reverse Zone
- dig @127.0.0.1 213.88.10.in-addr.arpa -t axfr
ändern der /etc/network/interfaces
dns-nameserver 127.0.0.1
- Danach aktivieren
- ifdown enp0s3 && ifup enp0s3
- Kontrolle
- cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.0.1 search it213.int
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 it213
- journalctl -fu named -g it213
Sind die Ports geöffnet
- ss -lntpu | grep named

