DNS
Empfehlung: DNS Explained in 100 Seconds @fireship

Treeförmig:
Root-Punkt -> Top Level Domain -> Second Label Domain -> Third Level Domain ...
eg.: . -> com -> wikipedia -> de :::=> de.wikipedia.org.
Ablauf einer DNS-Abfrage
wir wollen moodle.htlstp.at aufrufen:
- Wir fragen den lokalen DNS-Server (meistens der Router) nach der IP-Adresse von moodle.htlstp.at
- Der lokale DNS-Server fragt den Root-Server (.) nach dem zuständigen Top-Level-Domain-Server (.at)
- Der Root-Server antwortet mit der IP-Adresse des .at-Servers
- Der lokale DNS-Server fragt den .at-Server nach dem zuständigen Second-Level-Domain-Server (htlstp.at)
- Der .at-Server antwortet mit der IP-Adresse des htlstp.at-Servers
- Der lokale DNS-Server fragt den htlstp.at-Server nach der IP-Adresse von moodle.htlstp.at
- Der htlstp.at-Server antwortet mit der IP-Adresse von moodle.htlstp.at
- Der lokale DNS-Server antwortet mit der IP-Adresse von moodle.htlstp.at an den Client
- Der Client verbindet sich mit der IP-Adresse von moodle.htlstp.at
Wichtige DNS Einträge
A/AAAA: Zuordnung eines Hostnamens zu einer IPv4/IPv6-AdresseCNAME: Alias für einen anderen HostnamenMX: Mail Exchange, gibt Mailserver für eine Domain anNS: Name Server, gibt autoritative DNS-Server für eine Domain anSOA: Start of Authority, gibt grundlegende Informationen über die Domain und den DNS-Server an, steht am Anfang einer ZonendateiTXT: Text Record, kann beliebige Textinformationen enthalten (z.B. für SPFSender Policy Framework oder DKIMDomainKeys Identified Mail)PTR: Pointer Record, Zuordnung einer IP-Adresse zu einem Hostnamen (Reverse DNS)
Beispiel eines DNS Eintrags (bind)
@ IN SOA dns.foxplex.local. mail.foxplex.local. (
1 ; Serial: Version der Zonendatei
604800 ; Refresh: Wie oft sekundär Server die Zone aktualisieren sollen
86400 ; Retry: Wie oft sekundär Server bei Fehlern erneut versuchen sollen
2419200 ; Expire: Wie lange sekundär Server die Zone cachen sollen
86400 ) ; Negative Cache TTL: Wie lange fehlgeschlagene Anfragen gecacht werden sollen
;
@ IN NS dns.foxplex.local.
@ IN MX 10 mail.foxplex.local.
;
dns IN A 192.168.1.1
mail IN A 192.168.1.2
client1 IN A 192.168.1.10
client2 IN A 192.168.1.11
Tools
- nslookup: fragt einen DNS-Server nach der IP-Adresse eines Hostnamens
- dig: detailliertere Abfrage eines DNS-Servers
Dig vs nslookup: dig ist moderner und bietet mehr Funktionen, während nslookup einfacher zu bedienen ist.
nslookup moodle.htlstp.at
dig moodle.htlstp.at
Tipp: auf Status und Antwort Flag achten, ob Request wirklich erfolgreich war.
Security
Gesichert werden müssten:
- Authentizität: ist die Antwort wirklich von dem DNS-Server, den ich gefragt habe?
- Integrität: wurde die Antwort unterwegs verändert?
- Vertraulichkeit: kann jemand mitlesen, welche Domains ich abfrage?
Problem
DNS-Spoofing: Angreifer sendet gefälschte DNS-Antworten, um Benutzer auf bösartige Websites umzuleiten.
Lösung: DNSSEC
ca ein drittel aller Domains weltweit nutzen DNSSEC
DNSSEC: Erweiterung des DNS-Protokolls, die digitale Signaturen verwendet, um die Authentizität von DNS-Antworten zu überprüfen.
- Jede Zone (Domain) hat ein Schlüsselpaar (privat und öffentlich)
- Der private Schlüssel wird verwendet, um DNS-Antworten zu signieren
- Der öffentliche Schlüssel wird im DNS veröffentlicht, damit Clients die Signatur überprüfen können
- Signaturen werden in DNS-Antworten als zusätzliche Resource Records (RRs) gesendet
- Clients, die DNSSEC unterstützen, können die Signatur überprüfen und sicherstellen, dass die Antwort authentisch ist
- DNSSEC schützt nicht vor Spoofing, wenn der Angreifer den privaten Schlüssel der Zone kennt
Nachteil von DNSSEC
- Erhöht die Größe der DNS-Antworten, was zu Fragmentierung und Problemen bei der Übertragung führen kann
- Erhöht die Komplexität der DNS-Verwaltung
Chain of Trust: Jede Zone wird von der übergeordneten Zone signiert, beginnend bei der Root-Zone. Clients können die Signaturkette überprüfen, um sicherzustellen, dass die Antwort authentisch ist.
Verschlüsselung
DNSSEC gewährleistet Authentizität und Integrität, aber keine Vertraulichkeit. Deshalb werden oft noch zusätzliche Protokolle verwendet:
- DNS over HTTPS (DoH)
- DNS over TLS (DoT)
Diese Protokolle verschlüsseln die DNS-Anfragen und -Antworten, um zu verhindern, dass Dritte mitlesen können, welche Domains abgefragt werden.