Wie finde ich alle Hostnamen in DNS, die mit einer IP verbunden sind?

24

Wenn auf einem Computer mehrere Hosts konfiguriert sind ( a la apaches VirtualHosts), wie kann ich eine Suche nach der IP-Adresse durchführen und alle dafür konfigurierten Domänen finden?

Ich habe beispielsweise mehrere Web- und E-Mail-Domänen mit meinem Server verbunden. Wie kann ich alle Domains finden, die darauf verweisen?

Ist es überhaupt möglich?

Ich habe DNS A-Einträge für alle Domänen, die ich besitze, und ich weiß, dass die Domänen einiger Freunde auf meinen Server verweisen. Ich würde gerne sehen, ob Leute, von denen ich nichts weiß, auch dorthin zeigen. (Oder wenn jemand seine Domain woanders neu eingerichtet hat und ich seine 'alte' Website von meinem Server löschen kann.)

Labyrinth
quelle

Antworten:

30

Nicht wirklich, nein. Hier geht es um den Unterschied zwischen Forward- und Reverse-DNS-Lookups.

Ein Forward-Lookup ist der Standardname -> IP-Lookup. Sie müssten also alle Namen im Voraus kennen.

Was Sie wollen, ist eine IP-> Namenssuche, aber irgendwie erhalten Sie alle Namen, die Sie in Ihrer Apache-Konfiguration und in DNS als A-Einträge (oder CNAMES oder was auch immer) angewendet haben.

Was Sie wahrscheinlich feststellen werden, ist, dass ein Reverse-Lookup (zB dig @nameserver $ ip -x) den Hostnamen zurückgibt, der dieser IP von den Personen zugewiesen wurde, denen dieser Netblock gehört, bei denen es sich möglicherweise um Ihren ISP handelt. Es könnte einen Namen wie 45-23-45-231.big-isp.com haben, was Ihnen nicht viel bedeutet. Und entscheidend ist, dass es nur einen Rückwärtsdatensatz gibt, möglicherweise jedoch viele Vorwärtsdatensätze.

Ich nehme an, es läuft auf die Frage hinaus, woher die Reverse-Zone etwas über die Datensätze in der Forward-Zone weiß. In den meisten Konfigurationen wird dem Kunden die Forward-Zone zur Verfügung gestellt, an der Änderungen vorgenommen werden können. Die Reverse-Zone wird jedoch von den Eigentümern des Netblocks verwaltet. Die beiden Systeme müssen nichts voneinander wissen, um zu funktionieren.

Cawflands
quelle
2
Hört sich für mich richtig an.
einstiien
schade - es wäre auch sehr praktisch
warren
12

Dies ist mit dem DNS-Protokoll selbst nicht möglich, da normalerweise nur ein PTREintrag für jede IP-Adresse vorhanden ist, obwohl möglicherweise viele AEinträge auf diese IP-Adresse verweisen.

Einige Unternehmen (z. B. http://www.ip-adress.com/ ) haben es jedoch geschafft, Datenbanken zu erstellen, die das enthalten, wonach Sie suchen, indem sie die Ergebnisse einer ganzen Reihe von DNS-Suchvorgängen gespeichert und anschließend eine umgekehrte Abfrage in ihre eigene Datenbank gestellt haben Datenbanken.

Diese Datenbanken können jedoch nicht definitiv sein. Sie können nicht garantieren, dass sie über alle möglichen Domänen informiert sind, die auf diese IP verweisen. Sie können nur die DNS-Details für die Domänennamen aufzeichnen, nach denen sie tatsächlich gesucht haben.

Alnitak
quelle
davor hatte ich angst .. verdammt: - |
Warren
1
Nur ein Heads-Up, auf den ich noch keinen solchen Nachschlage-Service gefunden habe, der alle TLDs verwaltet. Tatsächlich haben alle von mir ausgeführten Versuche die .com.au-Domains nicht aufgelistet, selbst wenn sie auf demselben Server wie die .com-Domains gehostet wurden.
John Gardeniers
1
Merkwürdig - es gibt keinen Grund, warum sich ein solcher Dienst überhaupt darum kümmern sollte, auf welcher TLD sich die Site befindet. Wie bereits erwähnt, wissen die Datenbanken jedoch nur über Websites Bescheid, nach denen die Leute fragen. Ich denke, dass sich nicht genügend Leute um .com.au-Domains kümmern.
Alnitak,
4

Die einzige Möglichkeit, dies zu tun, besteht darin, Inhaltsdaten des Domainnamens zu haben, die Sie überprüfen möchten.

Mit diesem Inhalt können Sie ein rekursives Skript entwickeln, um den Hostnamen relativ zu Ihrer IP zu suchen (rekursiv, weil eventuell CNAME überprüft werden muss).

Um Daten von einem Domain-Name-Partner zu erhalten, können Sie nach dem Sekundärstatus fragen und DATA mit einem dig -t axfr abrufen.

profy
quelle
3

Ich glaube, Sie kommen aus der falschen Richtung. Abgesehen davon, dass entweder a) jeder existierende DNS-Server nach jedem möglichen Domain-Namen abgefragt und das Ergebnis gespeichert wird oder b) Zonentransfers von den gewünschten DNS-Servern abgerufen werden, gibt es keine Möglichkeit, dies mit DNS zu tun.

Wenn Sie namenbasierte Apache-vhosts ausführen, verfügen Sie bereits über eine Liste von Domänen, die Ihren Server erreichen. Abgesehen vom Standard-vhost antwortet ein namensbasierter vhost nur auf seinen Namen. Wenn ich also foobar.com auf meine Box zeige und keinen foobar.com-vhost habe, wird dieser entweder standardmäßig bereitgestellt oder nicht beantwortet (wenn Sie keinen Standardserver haben).

Apache verfügt über einige sehr leistungsstarke Protokollierungsfunktionen. Es sollte kein Problem sein, ein benutzerdefiniertes Protokollformat mit den gewünschten Anforderungszeilen zu definieren. Außerdem gibt es immer das Referrer-Feld.

Mail hingegen ist ein bisschen schmerzhafter. Das Beste, was mir einfällt, ist, aus den Serverprotokollen das auszuwählen, was Sie können, und, wenn Sie es wirklich wissen müssen , eine Paketerfassung für SMTP einzurichten.

Jason Antman
quelle
mit apache vhosts weiß ich nur, welche pfade ich an bestimmte domains weitergebe ... nicht an alle konfigurierten domains: wenn du mynewdomain.tld auf meinen server zeigst, da es keinen vhost eintrag gibt apache einfach den zurück Standard webroot
warren
1
Das Durchsuchen der Protokolle könnte jedoch funktionieren - hätte nicht gedacht, dass dies auf dem Server selbst möglich wäre.
Warren
LogFormat %{Host}i hostnamelogCustomLog /path/to/log hostnamelogStellen Sie dann in Ihrem Standard-VHost sicher, dass er von einem Ihrer "echten" VHosts getrennt ist. Dann gelegentlich sort /path/to/log | uniq -c | sort -nfür einen Einblick in das, was dich trifft.
BMDan
2

Sie sollten nach RobTex suchen Nicht das beste Webdesign, aber sehr nützlich! Sie können alle einer IP zugeordneten DNS herausfinden.

Natürlich, wie Alnitak erklärte,

Mit dem DNS-Protokoll selbst ist dies nicht möglich

Das bedeutet, dass diese Website nur eine riesige Datenbank der meisten DNS / IP-Server ist. Das ist ziemlich effizient, aber nicht zu 100% erschöpfend.

Bonswouar
quelle
Verbindung scheint unterbrochen zu sein oder hat wirklich schlechtes SSL
Adam Nofsinger