1つのIPに接続されたDNS内のすべてのホスト名を見つける方法


24

1台のマシン(la apacheのVirtualHosts)に複数のホストが構成されている場合、IPでルックアップを行い、それに到達するように構成されたすべてのドメインを見つけるにはどうすればよいですか?

たとえば、サーバーにフックされているいくつかのWebおよび電子メールドメインがあります。それを指すすべてのドメインを見つけるにはどうすればよいですか?

それも可能ですか?

私が所有するすべてのドメインのDNS Aエントリがあり、さらに、友人のドメインが私のサーバーを指していることを知っています。私が見たいのは、私知らない人がそこを指しているかどうかです。(または、誰かが他の場所でドメインをリポイントした場合、サーバーから「古い」ウェブサイトを削除できます。)

回答:


30

そうでもない これは、正引きDNSルックアップと逆引きDNSルックアップの違いに関するものです。

前方参照は、標準の名前-> IP参照です。そのため、すべての名前を事前に知っておく必要があります。

必要なのはIP-> nameルックアップですが、Apache configおよびDNSで適用したすべての名前を何らかの方法でAレコード(またはCNAMESなど)として取得することです。

おそらく、逆引き(例:dig @nameserver $ ip -x)を実行すると、そのネットブロックを所有しているユーザー(ISPなど)によってそのIPに与えられたホスト名が返されます。45-23-45-231.big-isp.comのような名前が付いている場合がありますが、これはあまり意味がありません。そして、決定的に重要なのは、1つの逆方向レコードだけですが、潜在的には多くの逆方向レコードがあります。

私はそれが質問に要約すると思う-逆ゾーンはどのように順ゾーンのレコードのどれを知っているのか?ほとんどのセットアップでは、順ゾーンは顧客が変更できるようになっていますが、逆ゾーンはネットブロックの所有者によって維持されています。2つのシステムが機能するために互いについて何も知る必要はありません。


2
私に聞こえます。
einstiien

恥-それも非常に便利だろう
ウォーレン

12

DNSプロトコル自体でそれを行うことはできません。そのIPアドレスを指すレコードPTRが多数ある場合でも、通常は各IPアドレスに対して1つのレコードしかないためAです。

しかし、一部の企業(例:http : //www.ip-adress.com/)は、DNSルックアップの全負荷の結果を保存し、独自のクエリに逆クエリを提供することで、あなたが求めているものを含むデータベースをコンパイルしました。データベース。

ただし、これらのデータベースは決定的なものではなく、そのIPを指す可能性のあるすべてのドメインについて知ることを保証することはできません-実際に検索したドメイン名のDNS詳細のみを記録できます。


それが私が恐れていたものです。
ウォーレン

1
すべてのTLDを処理するこのような検索サービスにまだ出くわしていないというちょっとした話です。実際、.comドメインと同じサーバーでホストされていても、.com.auドメインを一覧表示できませんでした。
ジョン・ガーデニアス

1
奇数-このようなサービスがサイトがどのTLDにあるかを気にする必要はありません。;-)私は十分な人々が.com.auのドメインを気にしないと思います-それは私が述べたように、データベースは唯一の人々が尋ねるというサイトを知っている、と述べた
オリオン座ゼータ星

4

これを行う唯一の方法は、検査するドメイン名のコンテンツデータを取得することです。

このコンテンツを使用すると、再帰的なスクリプトを作成して、IPに関連するホスト名を検索できます(最終的にCNAMEがチェックされるため、再帰的です)。

あるドメイン名パートナーのデータを取得するには、セカンダリになるように依頼し、dig -t axfrを使用してDATAを取得します。


3

あなたは間違った方向からこれに来ていると思います。a)存在するすべてのDNSサーバーにすべての可能なドメイン名を照会して結果を保存するか、b)関心のあるDNSサーバーからゾーン転送を取得する以外には、DNSでこれを行う方法はありません。

まあ、Apacheの名前ベースの仮想ホストを実行している場合、サーバーに到達するドメインのリストが既にあります。デフォルトの仮想ホストとは別に、名前ベースの仮想ホストはその名前に対してのみ応答します。したがって、foobar.comをボックスに向けて、foobar.com vhostを持たない場合は、デフォルトで提供されるか、応答されません(デフォルトのサーバーがない場合)。

Apacheには、非常に強力なロギング機能がいくつかあります。必要な要求行でカスタムログ形式を定義することは問題ではありません。また、常にリファラーフィールドがあります。

一方、メールはもう少し苦痛です。私が考えることができる最高のものについては、サーバーログから何ができるかを選び、本当に知りたい場合は、SMTP用のパケットキャプチャをセットアップすることです。


apache vhostsでは、特定のドメインにどのパスを配布しているのかしかわかりません...設定されているすべてのドメインではありません:mynewdomain.tldを私のサーバーに向けると、vhostエントリがないため、apacheは単にデフォルトのウェブルート
ウォーレン

1
ただし、ログを選択することは機能する可能性があります-サーバー自体でそれを行う方法として考えていませんでした。
ウォーレン

LogFormat %{Host}i hostnamelog、次にCustomLog /path/to/log hostnamelogデフォルトのVHostで、「実際の」VHostとは別であることを確認します。その後、時折sort /path/to/log | uniq -c | sort -n、何があなたを襲っているのかを洞察します。
BMD11年

2

RobTex が最高のWebデザインではないが、非常に役立つことを確認する必要があります!IPに関連付けられているすべてのDNSを見つけることができます。

もちろん、Alnitakが説明したように、

DNSプロトコル自体でそれを行うことはできません

つまり、このWebサイトは、ほとんどのDNS / IPサーバーの巨大なデータベースにすぎません。これは非常に効率的ですが、100%完全ではありません。


リンクが壊れているか、SSLが本当に悪いようです
Adam Nofsinger
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.