localhost in einer DNS-Zone

15

Unser ISP hostet auch unseren externen DNS. Standardmäßig enthalten sie einen Eintrag für localhost.

Zum Beispiel: localhost.example.com. 86400 IN A 127.0.0.1

Wenn ich sie gebeten habe, es zu entfernen, haben sie es mir schwer gemacht und sagen, dass es genau so ist, wie Bind funktioniert.

Ich habe versucht, nachzuforschen, warum ich das haben möchte, aber ich konnte nicht viel finden. Ich habe mindestens einen Ort gefunden, der es für einen möglichen XSS-Angriffsvektor hielt. Es scheint ziemlich üblich zu sein, also habe ich in den Top-20-Domains von alexa nachgeschlagen und die meisten haben keinen solchen Eintrag, aber ein paar. Einige andere haben einen Eintrag, aber anstatt auf 127.0.0.1 zu verweisen, verweisen sie auf eine andere IP-Adresse, die über eine weltweite Route erreichbar ist.

Warum sollte ich Locahost für meine Domain in der Zone haben wollen? Haben sie irgendwelche Probleme damit, es nicht zu haben? Gibt es diesbezüglich eine Art bewährter Verfahren? Ist es tatsächlich eine Standardbindungssache, die mir nicht bewusst ist?

Vielen Dank

Matthew
quelle
Gute Frage. Davon habe ich noch nie gehört.
TomTom
Ich habe sogar ein "Loopback" in meiner ISPs-Zonendatei. WTF?
David Tonhofer

Antworten:

13

localhost.example.comist manchmal auf internen DNS-Servern enthalten, um zu verhindern, dass "localhost" -Anfragen ins Internet gelangen (für den Fall, dass John Smith http://localhost/seinen Browser eingibt und aus irgendeinem Grund sein Resolver nicht in der Hosts-Datei nachschaut, hängt er seinen Suchpfad an ( example.com) & beginnt, Nameserver zu fragen, in was das aufgelöst wird.

Sie müssen keinen localhost-Eintrag haben (und wenn Ihr ISP der Meinung ist, dass BIND so funktioniert, sind sie entweder irregeführt oder idiotisch: BIND dient dem Inhalt der Zonendatei, und wenn sie die localhostZeile entfernen , wird dies nicht mehr bedient Aufzeichnung). Als kostenloses Beispiel localhost.google.comlässt sich nicht auflösen, und ich wette, dass die NS für diese Domain BIND ausführt.

Der XSS-Vektor ist etwas, woran ich nie gedacht habe, aber es ist bedenklich: Wenn Sie einen localhostEintrag in Ihrem öffentlichen DNS haben, bedeutet dies, dass sich jeder gehackte Computer "in Ihrer Domäne" befindet (indem Sie einen Webserver auf 127.0.0.1 ausführen) und dies möglicherweise auch tun kann alle möglichen bösen Dinge. Wahrscheinlich ein guter Grund, den Eintrag loszuwerden.

voretaq7
quelle
1
Persönlich würde ich denken, dass dies localhost.some.testnur ein weiteres Opfer ist , wenn man nicht das richtige Punktende bekommt. Die Gründe für das Haben localhost.(beachten Sie den Punkt!) Sind klar, aber Punkte werden in DNS-Zonen oft vergessen. Dann entstand ein mysteriöses Leben.
Poige
Siehe tools.ietf.org/html/rfc1537 Allgemeine Konfigurationsfehler für DNS- Datendateien, die darauf hindeuten, dass der localhost-Eintrag korrekt ist.
BillThor
1
Nein, rfc1537 spezifiziert das nicht. Es gibt an, dass Rekursoren einen lokalen Host haben müssen. Zone und eine Zone für die Rückseite. Nirgendwo heißt es, dass Ihre Zonen einen lokalen Host-Eintrag benötigen.
Habbie
@BillThor Die Kommentare zu dieser anderen Antwort sind relevant für RFC 1537 und dessen Nachfolger (RFC 1912). Wie Habbie bereits erwähnte, ist die Zone localhost. etwas, das wir haben sollten, aber die Praxis, in jeder Zone, die wir bedienen , localhost Aufzeichnungen zu führen, ist umstritten der Gunst. (Diese Frage hat mich tatsächlich vor 5 Jahren zu diesem RFC-Kaninchenbau geführt. Vielleicht aktualisiere ich meine Antwort später mit dem neuen RFC und den Gedanken aus diesem Kommentarthread :))
voretaq7
3

Unter der Annahme, dass Ihre interne Namensauflösung die Namensauflösung ordnungsgemäß handhabt, sollte eine DNS-Anforderung für localhost niemals an Ihren externen DNS-Anbieter gesendet werden. Dies sollte also überhaupt kein Problem darstellen.

Ein Grund, warum jemand dies tun würde, was mir auf den ersten Blick einfällt, besteht darin, dass jemand einmal ein Web-Authoring-Tool verwendet hat, das eine Menge absoluter Verweise auf http: // localhost enthält , aber davon ausgeht, dass dies Ihr Fall ist ISP war auch Hosting auf ihren DNS-Boxen und ist ein langer Schuss.

Allerdings RFC 1537 tut angeben:

Es wurde ausführlich darüber diskutiert, ob die lokale Domäne an sie angehängt werden soll oder nicht. Die Schlussfolgerung war, dass "localhost". wäre die beste Lösung; Gründe dafür waren:

  • "localhost" selbst wird verwendet und soll auf einigen Systemen funktionieren.

  • Das Übersetzen von 127.0.0.1 in "localhost.my_domain" kann dazu führen, dass eine Software über die Loopback-Schnittstelle eine Verbindung zu sich selbst herstellt, wenn dies nicht gewünscht wird.

Beachten Sie, dass alle Domänen, die Hosts enthalten, einen "localhost" A-Datensatz enthalten sollten.

Streng genommen sieht es so aus, als ob Ihr ISP localhost korrekt einbezieht, aber den vollqualifizierten Namen falsch verwendet.

Maximus Minimus
quelle
5
Es sieht so aus, als ob RFC-1537 durch RFC-1912 überholt wurde, wodurch die Note that ...Sprache gelöscht wird (ich würde als Antwort auf die potenziellen XSS-Probleme raten, die uns 1996 bekannt geworden wären). 1537 Erklärt, warum dies in den BIND-Vorlagen enthalten ist.
Voretaq7
Meinen Sie, es sollte einen Eintrag wie diesen in der Zone für example.com geben: localhost. 86400 IN A 127.0.0.1; Beachten Sie die Periode
Matthew
3
4.1 von 1912 ist eigentlich ziemlich explizit drauf: ietf.org/rfc/rfc1912.txt
Maximus Minimus
5 Jahre später, aber es lohnt sich zu klären: In Version 4.1 von RFC 1912 ist explizit festgelegt, dass die localhost Zone auf dem Server vorhanden sein sollte (wenn also eine Anforderung nur "localhost" empfangen wird, wird sie nicht über die Kette an den nächsten Server weitergegeben) Es ist weit davon entfernt, localhostin example.comdie Zone von say 's (das Erstellen localhost.example.com) aufgenommen zu werden, was ebenso deutlich darin besteht, dass Sie dies wegen möglicher unbeabsichtigter Nebenwirkungen nicht tun sollten . Die Erwartung ist, dass "localhost" eine besondere, magische, vollqualifizierte Domäne für sich ist.
Voretaq7
0

Ich bin nicht sicher, was der Punkt sein würde ... Standardmäßig würde die externe Adresse von der hosts-Datei überschrieben, die fast immer localhost auf 127.0.0.1 abbildet.

Eine Standard-BIND-Zonendatei enthält jedoch eine Localhost-Zone. Ich habe nie wirklich darüber nachgedacht.

Satanicpuppy
quelle
Dies ist nicht die Localhost-Zone (es sei denn, es handelt sich um eine Fehlkonfiguration dieser Zone). Es ist auch nicht der fqdn 'localhost'. und würde im Allgemeinen nicht von der lokalen Hosts-Datei überschrieben.
Matthew