DNS (Domain Name System)

aus HaBo WiKi, der freien Wissensdatenbank von http://www.hackerboard.de
(Weitergeleitet von DNS)
Wechseln zu: Navigation, Suche

DNS (Domain Name System oder auch Domain Name Service genannt) ist zuständig für die Umsetzung von Domain Namen in die dazugehörige IP-Adresse und umgekehrt. Das DNS-Verfahren wird durch eine verteilte Datenbank realisiert.

Inhaltsverzeichnis


Leicht erklärt

In einem TCP/IP-Netz wird jeder Rechner (oder besser jede Netzwerkkarte) über eine eindeutige IP-Adresse adressiert. IP-Adressen sind jedoch nicht zwangsläufig beständig, da sich spätestens bei einem Umzug in ein anderes Subnetz die eigene IP-Adresse oder die des Kommunikationspartners ändert. Wird die IP-Adressen dynamisch vergeben, wechselt sie gar bei jedem Neustart der Geräte. Wie aber lässt sich unter diesen Umständen die Adresse des Kommunikationspartners ausfindig machen?

Ein weiteres Problem einer solchen Adressierung liegt darin, dass sich Menschen die Zahlen der IP-Adressen nur schlecht einprägen können.

Als Lösung für beide Probleme hat man sich darauf geeinigt, den Rechnern zusätzlich einen sprechenden Namen (Domain Namen) zu geben. Er wird symbolisch über die IP-Adresse gelegt, wobei eine entsprechende Liste automatisch aktualisiert werden kann, sobald sich die zum jeweiligen Domain Namen gehörende IP-Adresse ändert.

„PC_von_Hinz“ 192.168.1.1
„PC_von_Kunz“ 192.168.1.2

Die Arbeit des DNS-Dienstes ist vergleichbar mit einem Telefonbuch, in dem zu jedem Rechnernamen die IP-Adresse steht. Auf diese Weise kann vor jeder Netzwerkanfrage an einen Domain Namen automatisch die dazu gehörende IP-Adresse ermittelt werden. Denn erst mit der IP-Adresse des Rechners lässt sich der Rechner protokollspezifisch richtig adressieren.

ping „PC_von_Hinz“ -> ping stellt eine Anfrage an den DNS-Dienst -> ping 192.168.1.1 ausführen

Diese Umsetzung geschieht für den Anwender transparent, sodass er in der Regel davon nichts bemerkt. Für ihn sieht es so aus, als hätten die Rechner tatsächlich sprechende Namen.

Technische Details

Die Namensauflösung im Internet

Nachdem eine Netzwerkanfrage gestartet wurde, sieht das System aus historischen Gründen zunächst in die lokale Datei namens hosts. Über diese Datei wurden vor der Erfindung des DNS alle Internetserver eingetragen. Diese Methode hatte aber den Nachteil, dass die Datei bei zunehmender Serveranzahl immer größer wurde und zudem auf alle Rechner kopiert werden musste. Wird der Rechnername hier nicht entdeckt, geht die Anfrage an den DNS-Server, welcher in der Konfiguration der Netzwerkkarte unter den TCP/IP-Einstellungen eingetragen wurde. In einem privaten Netz wird das mit hoher Wahrscheinlichkeit der eigene DNS-Server sein, welcher sich in dem DSL-Router befindet.

Nun stellt sich zunächst die Frage, weshalb man in der DOS-Konsole „ping www.hackerboard.de“ erfolgreich ausführen kann, obwohl der DNS-Dienst des privaten Netzes die IP-Adresse von hackerboard.de nicht kennen dürfte. hackerboard.de ist ja schließlich kein Rechner aus dem privaten Netz. Das geht dennoch, da der DNS-Dienst die Anfrage an die nächst höhere DNS-Instanz im Internet weiterreicht. Das funktioniert allerdings nur, wenn das private Netz nebst DNS-Server mit dem Internet verbunden ist.

Wenn der mit dem Internet verbundene Netzwerkadapter des DSL-Routers nicht anders konfiguriert wurde, geht die Anfrage als erstes an den DNS-Server des eigenen Internetproviders. Kennt er den gesuchten Rechnernamen nicht, so wird der DNS-Server der DeNIC befragt, da er alle Adressen mit der Endung .de verwaltet. Hier ist also auch hackerboard.de registriert. Allerdings verwalten die übergeordneten DNS-Server nicht die Adressen der Webserver, sondern nur die Adressen der zuständigen DNS-Server des Providers, welcher die Domain hosted. Mit anderen Worten erhält man von der DeNIC die Adresse des Internetprovider-DNS-Servers, welcher die Domain hackerboard.de verwaltet (=>ns.hackerboard.de).

Nun wird die Anfrage automatisch dorthin weitergereicht, worauf der DNS-Server die zur Anfrage gehörende IP-Adresse zurückschickt. Die Antwort wird nun zusätzlich im DNS-Server des eigenen Internetproviders zwischengespeichert, sodass eine erneute Adressanfrage an www.hackerboard.de diesen langen Weg nicht mehr gehen muss. Wie lange diese Information zwischengespeichert bleiben darf, wurde im Antwortpaket des DNS-Servers (ns.hackerboard.de) vorgegeben.

Eine Firewall mit Hilfe eines DNS-Tunnels umgehen

Bei einem DNS-Tunnel wird der eigene Aufbau des DNS-Protokolls für den verborgenen Datentransfer missbraucht (genauer das „Name Server Transfer Protocol“).

Wie lässt sich ein DNS-Dienst für einen Tunnel missbrauchen?

Wurde – wie in unserem Beispiel – nach der Adresse www.hackerboard.de gefragt, so liefert der DNS-Server des Providers, welcher die Domain hosted, die Webadresse von hackerboard.de zurück. Der DNS-Server kann aber auch weitere Subdomains von hackerboard.de verwalten. Je nachdem, wie der DNS-Server konfiguriert wurde, könnte die Anforderung an bla.hackerboard.de durchaus eine andere Adresse zurückliefern.

Vorausgesetzt der Server teilt dem Providerserver per Protokolleintrag mit, dass diese Adressen nicht zwischengespeichert werden dürfen, wird bei jeder Anfrage nach (xyz.)hackerboard.de genau dieser DNS-Server befragt. Und genau hier liegt der Angriffpunkt.

So funktioniert der DNS-Tunnel

Auf dem DNS-Server des Internetproviders wird die serverseitige Tunnelsoftware installiert. Auf dem Client läuft eine clientseitige Tunnelsoftware. Der Client startet nun darüber die folgende Anfrage: Gib mir die Adresse von HoleGeheimeDatenInsNetz.hackerboard.de. Die Tunnelsoftware des o.g. DNS-Servers erkennt in der angefragten Sub-Domain-Adresse seinen Befehl. Statt eines Fehlers liefert er nun irgendeine IP-Adresse zurück. Der Trick: Das „Name Server Transfer Protocol“ erlaubt es, weitere Daten „ganz legal“ in die Antwortpakete zu integrieren.

Nun kommt die clientseitige Tunnelsoftware ins Spiel: Sie muss die zusätzlich hinterlegten Daten auslesen und interpretieren können. Deshalb braucht es hier – wie bei einem Tunnel üblich – eine client- und eine serverseitige Tunnelsoftware.

Über den Subdomain-Namen lässt sich also der DNS-Tunnelserver fernsteuern und über die Clientsoftware die so heimlich aus dem Internet eingeschmuggelten Daten interpretieren. Diese Kommunikation geht an der Firewall vorbei.

Wie lässt sich ein DNS-Tunnel unterbinden?

Eine wirkungsvolle Möglichkeit ist es, den DNS-Dienst nicht mit dem Internet zu verbinden. Dann lassen sich im privaten Netz allerdings auch keine Namen der Internetserver mehr auflösen. Das hat zur Folge, dass eine Internetverbindung grundsätzlich nicht mehr per transparent Proxy möglich ist. Jede Software, welche mit dem Internet kommunizieren will, benötigt dann die Angabe des (Internet-) Proxys.

Die DNS-Sperre eines Internet Service Providers (ISP) umgehen

Um eine DNS-Sperre zu realisieren, löscht der entsprechende Internetprovider Einträge in seiner DNS-Datenbank und verhindert das weiterreichen der Anfrage an die nächst höhere DNS-Instanz. Alternativ dazu kann er den Eintrag auch so verändern, dass der Anwender auf einer anderen Seite landet, als von ihm angefordert. Das Verfahren dient oft der Zensur eines Staates, um den Zugriff auf das Internet einzuschränken.

Zum Umgehen der Sperre kann man auf die Netzwerkeinstellungen für die Internetverbindung gehen und dort für das Internetprotokoll (TCP/IP) beliebige, freie DNS-Server eintragen.

Weblinks (externe Links)

  • Der schweizerische Sicherheitsdienstleister Compass Security Network Computing AG (CSNC) bietet einen kostenlosen DNS-Tunneltest an. Sie haben dafür einen speziellen Client für Windows entwickelt und stellen zudem einen DNS-Server mit ihrer Tunnelsoftware zur freien Verfügung. Eine gute Möglichkeit, um zu testen, ob das eigene Netzwerk für DNS-Tunnel anfällig ist.
Computer Forum
Computer Forum
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge