1台のマシンで複数のホストを構成している場合(a la ApacheのVirtualHosts)、IPを検索して、それに到達するように構成されているすべてのドメインを見つけるにはどうすればよいですか?
たとえば、サーバーに接続されているいくつかのWebドメインと電子メールドメインがあります。それを指すすべてのドメインをどのように見つけることができますか?
可能ですか?
私が所有するすべてのドメインのDNS Aエントリがあります。さらに、一部の友達のドメインが私のサーバーをポイントしていることを知っています。私が見たいのは、私が知っている人々知らないもそこを指しているかどうかです。 (または、誰かが自分のドメインを別の場所に再ポイントした場合、私の「古い」ウェブサイトをサーバーから削除できます。)
いいえ、違います。これは、正引きと逆引きDNSルックアップの違いに関するすべてです。
前方参照は、標準の名前-> IP参照です。したがって、事前にすべての名前を知っておく必要があります。
必要なのはIP-> nameルックアップを実行することですが、Apache構成とDNSで適用したすべての名前をAレコード(またはCNAMESなど)として取得します。
おそらく、逆引き(たとえば、Dig @nameserver $ ip -x)を実行すると、ISPである可能性があるそのネットブロックを所有する人々によってそのIPに与えられたホスト名が返されることがわかります。それは45-23-45-231.big-isp.comのような名前を持っているかもしれませんが、それはあなたにとって大した意味ではありません。そして決定的に重要なのは、リバースレコードは1つだけですが、多くのフォワードレコードが潜在的にあります。
私はそれが質問に要約されると思います-逆ゾーンは順ゾーンのレコードのどれかをどのように知るのですか?ほとんどのセットアップでは、フォワードゾーンは顧客が変更できるようになっていますが、リバースゾーンはネットブロックの所有者が管理しています。 2つのシステムが機能するために、お互いについて何も知る必要はありません。
そのIPアドレスを指す多くのPTR
レコードが存在する場合でも、通常、各IPアドレスにはA
レコードが1つしかないため、DNSプロトコル自体でそれを行うことはできません。
ただし、一部の企業(例 http://www.ip-adress.com/ )は、DNSルックアップの全負荷の結果を保存し、独自のデータベースへの逆クエリ。
これらのデータベースは決定的ではありませんが、mightが偶然そのIPを指す可能性のあるすべてのドメインについて知ることを保証することはできません。実際に検索したドメイン名のDNS詳細を記録します。
これを行う唯一の方法は、検査するドメイン名のコンテンツデータを取得することです。
このコンテンツを使用すると、再帰スクリプトを開発して、IPに相対的なホスト名を検索できます(最終的にCNAMEを確認するため再帰的)。
一部のドメイン名パートナーのデータを取得するには、セカンダリになるように依頼して、Dig -t axfrでDATAを取得します。
間違った方向から来ていると思います。 a)存在する可能性のあるすべてのDNSサーバーにすべての可能なドメイン名を照会してから結果を保存すること、またはb)関心のあるDNSサーバーからゾーン転送を取得することを除いて、DNSでこれを行う方法はありません。
まあ、Apacheの名前ベースの仮想ホストを実行している場合は、サーバーに到達するドメインのリストがすでにあります。デフォルトの仮想ホストは別として、名前ベースの仮想ホストはその名前についてのみ応答します。したがって、foobar.comを自分のボックスに向け、foobar.com仮想ホストがない場合、デフォルトでサービスが提供されるか、または応答されません(デフォルトのサーバーがない場合)。
Apacheには非常に強力なロギング機能がいくつかあります。必要なリクエスト行でカスタムログ形式を定義することは問題になりません。また、常に参照URLフィールドがあります。
一方、メールは少し面倒です。私が考えることができる最良のことについては、サーバーログからできる限りのものを選ぶことです。 知っておく必要があります、SMTPのパケットキャプチャを設定します。
RobTex をチェックする必要があります。最適なWebデザインではありませんが、非常に便利です。 IPに関連付けられているすべてのDNSを確認できます。
もちろん、アルニタックについて説明したように、
DNSプロトコル自体でそれを行うことはできません
つまり、このWebサイトはほとんどのDNS/IPサーバーの巨大なデータベースにすぎません。これはかなり効率的ですが、100%網羅的ではありません。