DNS + Nameserver
DNS (Domain Name System)
Was ist ein DNS?
DNS oder auch "Domain Name System" ist wie das Telefonbuch des Internets. Jedes Gerät, dass mit dem Internet verbunden ist, hat eine eindeutige IP-Adresse. (z. B. 10.12.15.257)
Web-Browser benutzen die IP-Adressen zur Interaktion. Damit man die IP-Adressen nicht jedes mal eingeben muss, um auf eine Website zu gelangen, übersetzt DNS die Domain-Namen um, damit die Ressourcen im Browser geladen werden können.
Wie funktioniert DNS?
Um eine DNS aufzulösen, benötigt man einen Hostnamen (z. B. alexandergreub.ch) damit der Computer die Domain in eine verständliche IP-Adresse umwandeln kann.
Jedes Gerät, dass sich mit dem Internet verbindet, erhält eine IP-Adresse, damit das Gerät gefunden werden kann, wie z. B. eine Postanschrift bei einem Haus.
Es gibt 2 Verschieden Arten von IP-Adressen:
- IPv4 Adressen: Diese Adressen sind die zurzeit gängigsten und bekanntesten IP-Adressen. Sie teilen sich in 4 Dezimalzahlen und haben eine Range von 1 - 255. Leider kommen IPv4 Adressen immer mehr an eine Grenze, da es nur eine begrenzte Anzahl gibt. Bei IPv4 Adressen gibt es nur 4 Milliarden mögliche Kombinationen, deswegen wird immer mehr auf IPv6 umgestellt.
- IPv6 Adressen: Diese Adressen werden in Zukunft immer mehr vorkommen, da sie das Hexadezimal-System verwenden. Das heisst sie bestehen aus Zahlen und Buchstaben. IPv6 werden aber nicht so gern verwendet, da sie sehr lang und kompliziert werden können. (z. B. 2001:0db8:85a3:08d3:1319:8a2e:0370:7344)
Hilfreiche Ressourcen:
https://www.cloudflare.com/de-de/learning/dns/what-is-dns/
Die 3 Server zum Laden einer Webseite
Damit eine Webseite geladen werden kann, braucht es noch 3 Schritte.
- Der rekursive DNS Resolver - Der DNS Resolver ist ein Server, der die Anfragen der Clients, die z. B. eine Domain im Browser eintippen empfängt und sendet die Anfrage weiter an die nächsten zuständigen Sever. Falls eine Webseite schon einmal aufgerufen wurde, wird sie im sogenannten Cache gespeichert, damit die Domain z. B. erscheint, wenn man nur ein paar Buchstaben eintippt.
Diese Server sind auch beliebte Angriffsziele für Hacker, da der Traffic sehr hoch sein kann. - Der DNS Nameserver - Bei Webland gibt es 4 Nameserver. NS1 und NS2 sind die Hauptnameserver und NS3 sowie NS4 sind Backup Server. Bei den Nameservern sind die Domaininformationen einer Webseite hinterlegt.
- Der DNS Root Nameserver - Es gib insgesamt 8 Root-Server. Die Root-Zone beinhaltet die Informationen aller Top-Level-Domains (TLD). Jeder Rechner der mit dem Internet verbunden ist, ist bei einem Root-Server zugewiesen.
- Der TLD Nameserver - Diese Server sind Länderspezifisch und werden vom Root-Server angefragt und werden
Ablauf einer DNS-Anfrage
Zur Repetition beschreibe ich kurz die einzelnen Schritte einer DNS-Abfrage für www.alexandergreub.ch, um darauf aufbauen zu können:
- Der Client durchsucht zuerst seine Host-Datei und anschliessend seinen DNS-Cache, ob dort alexandergreub.ch mit der dazugehörigen IP-Adresse hinterlegt ist.
- Falls nicht, leitet der Client die DNS-Anfrage an seinen DNS-Resolver weiter. Wenn der DNS-Resolver die IP-Adresse zu alexandergreub.ch nicht in seinem Cache hat, kontaktiert er als nächstes einen Root-Nameserver. Der Root-Nameserver sendet die IP-Adressen der «.ch»-Zone-Nameserver an den DNS-Resolver zurück.
- Nun sendet der DNS-Resolver die DNS-Anfrage an einen der «.ch»-Zone-Nameserver (z.B. nic.ch). Dieser wiederum sendet die IP-Adresse der autoritativen Nameserver für tec-bite.ch zurück.
- Als nächster Schritt sendet der DNS-Resolver die DNS-Anfrage an den autoritativen Nameserver von alexandergreub.ch. Dieser antwortet anschliessend mit der IP-Adresse welche für alexandergreub.ch hinterlegt ist.
- Der DNS-Resolver sendet die erhaltene Antwort an den Client.
DNS-Zone
Erklärung der DNS-Zoneneinträge
A |
IPv4 Adresse |
AAAA |
IPv6 Adresse |
MX |
Mail-Server |
SRV |
Gibt einen Host und einen Port für bestimmte Dienste an (z.B. Instant Messaging, Kalender, VoIP) |
NS |
Autoritative Nameserver |
TXT |
Texteintrag (z. B. zur Unterbindung von Spam) |
CNAME |
Kanonischer Name (z. B. Verweis von einer Domain, wenn ein Alias besteht) |
Zonen-File im System Configurator
Zonen-Editor im WLCM
DNSSEC
DNSSEC steht für "Domain Name System Security Extension" die das DNS mit verschiedenen Sicherheitsmöglichkeiten erweitert.
Bei der DNS Abfrage wird der ein gesamter Durchlauf durchgeführt, d.h. Der Länder-Nameserver, der Root Server und der Autoritative Nameserver wird angesprochen. Bei allen Server müssen die DNSSEC Daten vorhanden sein, damit die Abfrage erfolgreich ist.
Auflistung der DNSSEC Abfrage: DNSSEC
Einträge
RRSIG |
Enthält eine kryptographische Signatur |
DNSKEY |
Enthält einen Public Key |
DS |
Enthält den Hash eines DNSKEY Eintrags |
NSEC und NSEC3 |
Für die explizite Anerkennung eines Nicht-Existenten DNS Eintrags |
CDNSKEY und CDS |
Für die untergeordnete Zone zur Anfrage von Aktualisierungen eines DNS Eintrags in der Übergeordneten Zone |
Definition eines RRset
Beim RRset werden Einträge mit dem gleichen Namen und Typ gebündelt.
ZSK (Zone Signing Key)
Definition des RRSIG Eintrags
Im RRSIG Eintrag befinden sich die Daten des Private Key und werden beim Zonenbetreiber im Nameserver hinterlegt.
Schema des ZSK
KSK (Key Signing Key)
Der KSK siginert zusätzlich den öffentlichen ZSK, der im DNSKEY Eintrag gespeichert ist und erstellt einen neuen RRSIG für den DNSKEY.
Schema des KSK
Ablauf einer DNSSEC Abfrage
- Wenn ein Client die www.agreub.ch eintippt, wird die Anfrage zum autoritativen Nameserver geschickt. Wenn der Nameserver nun DNSSEC aktiviert hat, kann die Abfrage weiter erfolgen, ansonsten wird die Abfrage nicht weitergeführt.
- Der Nameserver hat DNSSEC aktiviert und sendet als Antwort den A-Record und eine verschlüsselte Signatur zurück.
- Der Resolver benötigt diese kryptographischen Signaturen und holt beim Nameserver den Public und den Private Key.
- Der Nameserver sendet die Keys und die Signaturen an den Resolver, damit die Verifizierung erfolgreich durchgeführt werden kann.
- Der Resolver fragt den TLD Nameserver an, ob dort die benötigten Daten hinterlegt sind.
- Die zu verifizierenden Informationen werden vom TLD Nameserver an den Resolver weitergeleitet.
Wenn die Informationen übereinstimmen, ist die Domain validiert. - Eigentlich wäre der Prozess hier beendet, jedoch ist hier ein Angriff immer noch möglich und deshalb wird der Root-Nameserver von .ch angefragt.
Der Resolver fragt den TLD Nameserver nach den kryptographischen Keys, um die Informationen zu verifizieren. - Der TLD Nameserver erhält die gewünschten Informationen (Keys und Signaturen).
- Der Resolver fragt den Root-Server für die zu verifizierenden Informationen, die beim TLD Nameserver hinterlegt sind.
- Der Root-Server sendet die zu verifizierenden Informationen zurück und der Resolver verifiziert die Informationen des TLD Nameservers.
- Der Resolver fragt den Root-Server nach den Kryptographischen Keys um die Informationen vom Resolver zu verifizieren.
- Der Root-Server sendet die Keys, damit die Informationen vom TLD Nameserver verifiziert werden können.
Die Kette des Vertrauens
Wie kann man sicherstellen, das der Root-Nameserver sicher ist? Jeder Verifizierende Resolver hat nur einer Entität zu vertrauen und zwar dem Root-Server.
Der Resolver hat bereits die benötigten Schlüssel des Root-Server im Verzeichnis. Das heisst, nach Punkt 12 wird verglichen ob die Informationen des Resolvers und des Root-Server übereinstimmen. Man kann somit der TLD .ch und der Domain vertrauen.