Ist es möglich, einen eigenen Root-DNS-Server zu erstellen?


14

Ich bin neugierig. Ich lese immer wieder darüber, wie unsere ISPs und Internet-Zwischenhändler alle DNS-Anfragen aufzeichnen und nachverfolgen. Im Grunde genommen hinterlasse ich in vielen Protokollen eine Spur von Breadcrumbs und erlaube DNS-Hijacking zu Werbezwecken (ich sehe Sie als Cox Communications an!).

Unabhängig von anderen Methoden zum Schutz der Privatsphäre / Sicherheit würde ich gerne wissen, ob es möglich ist, einen DNS-Server in Ihrem eigenen lokalen Netzwerk zu betreiben, der tatsächlich die Zoneninformationen der Stamm-DNS-Server enthält (für .com, .net ,. org) domains.

Ich weiß, dass Sie DNS einrichten können, das im Grunde genommen nur Computer in Ihrer Domain abbildet, aber es ist grundsätzlich möglich, eine Kopie / Übertragung der Stamm-DNS-Informationen anzufordern, die auf Ihrem eigenen DNS-Server gespeichert werden sollen, damit Sie das Ausgehen ins Internet für DNS umgehen können Informationen überhaupt für das Surfen im Internet?

Ich hoffe, ich bin klar. Ich möchte nicht, dass mein DNS-Server nur Informationen über mein internes Netzwerk enthält - ich möchte, dass die Informationen der großen Internet-DNS-Server doppelt vorhanden sind, aber ich möchte diese Informationen lokal auf meinem DNS-Server haben.

Gibt es so etwas wie BGP-Zone-Übertragungen, aber für DNS?

Update: Gibt es Produkte / OSS-Software, die diese Informationen in großen Mengen von der externen DNS-Kette in den lokalen Cache "kratzen" können, damit sie bei Bedarf verfügbar sind, statt sie zu zwischenspeichern, wenn Sie die Domäneneinträge explizit anfordern?

Antworten:


12

DNS per Design ermöglicht nicht, dass eine autorisierende Kopie aller Zonen vorhanden ist, da ein hierarchisches Benennungssystem verwendet wird.

Die Stammserver sind maßgeblich für die Identifizierung des Servers, der für die betreffende Top Level Domain (TLD) verantwortlich ist. Wenn Sie beispielsweise auflösen, www.example.netwird zuerst ein Stammserver abgefragt, um den autorisierenden Nameserver für zu identifizieren .net. Der .netNameserver identifiziert den maßgeblichen Nameserver für example.net, der dann den Datensatz für zurückgibt www.example.net.

Sie können nicht eine Kopie aller Zonen herunterladen. Sie können jedoch einen lokalen Caching-Nameserver ausführen. Der Caching-Nameserver stellt eine lokale Kopie aller aufgelösten Datensätze bereit, die mit der für den Datensatz angegebenen TTL (Time To Live) verfallen. Bitte beachten Sie, dass meine Erklärung eine vereinfachte Beschreibung des DNS-Protokolls ist, die im Detail durch Lesen der Definitionen in der Anforderung von Kommentaren erläutert werden kann .

Während NXDOMAIN-Hijacking durch Ausführen eines lokalen Caches vermieden werden kann, sollten Sie berücksichtigen, dass der gesamte DNS-Auflösungsverkehr unverschlüsselt über Ihre Internetverbindung übertragen wird. Ihr Internetdienstanbieter kann diesen Datenverkehr möglicherweise überwachen und die Kommunikation weiterhin anzeigen. Die Verträge, die Sie mit Ihrem Internetdienstanbieter abgeschlossen haben, sowie die örtlichen Gesetze sind Ihr endgültiges Mittel, um festzustellen, wie Ihre Mitteilungen behandelt werden. Die Verträge Ihres Internetdienstanbieters enthalten die Nutzungsbedingungen, Datenschutzrichtlinien und alle zusätzlichen Verträge, die Sie möglicherweise mit Ihrem Internetdienstanbieter abgeschlossen haben.

Die Verwendung verschlüsselter Protokolle ist eine der besten Methoden, um Ihre Daten während der Übertragung gegen Abhören zu schützen. Aber auch das garantiert keine Anonymität. Es gibt zusätzliche Protokolle wie Tor und Freenet , die versuchen, Anonymität in das Internet einzuführen, da es nie wirklich anonym gestaltet wurde.


1
Die einfache Antwort lautet: Nein, das können Sie nicht. Die technische Antwort steht oben in Warners Antwort. Es gibt keine Servergruppe, die alle DNS-Informationen enthält. Die Stammserver verweisen einfach auf einen der TLD-Server, der die Anforderung später weiterleitet.
Rex

1
Einige ISPs bieten eine Möglichkeit, NXDOMAIN-Hijacking zu deaktivieren. Einige ISPs bieten einen (dummen und gefälschten) Cookie-basierten Mechanismus, um NXDOMAIN-Hijacking "auszuschalten". Es gibt auch alternative Nameserver, die anstelle des Nameservers Ihres Internetdienstanbieters verwendet werden können.
Brian

3

Ein paar Dinge:

Wenn Sie Ihren Server so konfigurieren, dass die Stammhinweise anstelle von Weiterleitungen verwendet werden, müssen Sie sich keine Gedanken über MITM-Probleme machen (zumindest von ISPs und DNS-Hijackern). Bei allen externen DNS-Auflösungen fragt Ihr Server die Stammhinweise ab, die Sie zu den gTLD-Servern für die betreffende Top-Level-Domain (.com usw.) verweisen, die Sie dann zu den NS-Servern für die betreffende Domain verweisen .

Wenn Sie wirklich Ihren eigenen Root-Server erstellen möchten, können Sie das auf jeden Fall, obwohl ich nicht sehe, wie es Ihnen viel Gutes tun würde. So machen Sie es auf einem Windows-DNS-Server:

Laden Sie die DNS- Stammzonendatei herunter, und speichern Sie sie unter dem Namen root.dns im Verzeichnis% systemroot% \ system32 \ dns auf Ihrem Windows-DNS-Server. Verwenden Sie den Assistenten zum Erstellen von DNS-Zonen, um eine neue primäre Forward-Lookupzone mit dem Namen "." Deaktivieren Sie (ohne Anführungszeichen) die Option zum Erstellen einer AD-integrierten Zone, und geben Sie "." Wählen Sie für den Zonennamen (ohne Anführungszeichen) die Option zur Verwendung einer vorhandenen Datei aus, und das Feld für den Zonendateinamen wird automatisch mit dem Namen root.dns gefüllt (falls er nicht eingegeben wird). Lassen Sie die Option deaktiviert Um dynamische Aktualisierungen zuzulassen, klicken Sie auf die Schaltfläche "Fertig stellen", nachdem Sie die einzelnen Schritte des Assistenten durchlaufen haben. Sie haben jetzt einen Stammserver mit Zonen und Zonendatensätzen für alle gTLD-Server.

Beachten Sie, dass hierdurch die Weiterleitungs- und Stammhinweisoptionen auf dem Server deaktiviert werden (da Ihr Server jetzt ein Stammserver ist) und dass Ihr Server keine Möglichkeit hat, von diesen Änderungen Kenntnis zu nehmen, wenn sich die gTLD-Informationen ändern.


Nichts hindert den ISP daran, die IP der Root-Server (außer DNSsec) zu hijacken ... Ansonsten, richtig.
Chris S

1

Für eng verwandte Server gibt es Zonenübertragungen. Diese funktionieren ähnlich wie BGP-Ansagen. Aus Sicherheitsgründen werden diese normalerweise für andere Server gesperrt.

Wenn Sie einen Caching-Nameserver ausführen, wird die Root-Server-Liste kopiert, und es werden sehr bald Roots für .com, .net usw. vorhanden sein. Es gibt einen sehr guten Grund, warum DNS verteilt wird. Ansonsten würde jeder mit veralteten Daten arbeiten. Die Datenbank ist sehr groß, und die meisten Daten interessieren Sie nicht.

Es gibt Optionen, um das Risiko einer DNS-Vergiftung zu verringern, und gute Software geht mit den bekannt gewordenen Problemen um. Es gibt Organisationen, die daran arbeiten, bereinigte Daten bereitzustellen, die als vorgelagerte Anbieter verwendet werden können. Dadurch werden einige Vergiftungsversuche herausgefiltert. Schauen Sie sich OpenDNS oder Google als Upstream-Anbieter an.

Die Stamm-DNS-Zonen sind jetzt signiert, und mein Mailserver meldet zunehmend, dass die DNS-Daten signiert wurden. Das Signieren von DNS wurde als Voraussetzung für IPV6 gemeldet. Signiertes DNS erschwert die Cache-Vergiftung erheblich, erschwert jedoch die Verwaltung von DNS.


1

Sie können zwar Ihren eigenen Server einrichten und als autorisierend für den Stammserver festlegen, aber ich kenne keine Möglichkeit, die Zonendateien des Stammservers vorab zu füllen. Sie können nicht einfach einen Zonentransfer anfordern, also müssen Sie ihn wohl füllen, indem Sie Ihre Caches behalten.

Ändern Sie die Datei root.hints auf Ihren anderen Nameservern, um sie auf Ihren privaten Root-Server zu verweisen, und lassen Sie den Test beginnen.

Beachten Sie jedoch, dass die Stammserver nur wissen, welche Server für die TLDs autorisiert sind, sonst nichts. Sie müssen im Wesentlichen die gesamte Serverhierarchie neu erstellen, was eine unmögliche Aufgabe zu sein scheint.


0

Ja, eine der Funktionen von DNS-Servern ist das lokale Zwischenspeichern häufig angeforderter Abfragen, wobei die angegebene ttl zu oft umgangen wird.

Sie können sicherlich Ihre eigenen DNS betreiben, kein Problem. Aber die Root-Server und Top-Level-Domain-Server müssen Sie Uncle Sam fragen.

Alle DNS-Anfragen zu protokollieren ist möglich, aber verrückt.


Wenn Sie sich jedoch auf den Cache verlassen, müssen Sie bereits eine DNS-Anfrage für die betreffende Domain senden, was den gesamten Zweck zunichte macht, nur lokale DNS-Anfragen zu haben.
Pythonnewbie

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.