web-dev-qa-db-ja.com

聞いたことがないドメインが私のウェブサイトに解決される

私は(mod_pagespeedキャッシュエントリを参照して)、これまで聞いたことのない完全にランダムなドメインがWebサイトに解決されていることを発見しました。

このドメインにアクセスすると、ウェブサイトが読み込まれます。そのドメインのDNSは私のサーバーのIPを指しています。

今私のvhost設定には*:80があります。これは私が間違っているところだと思います。

これをすぐにexample.com:80に変更しました。example.comは私のドメインです。これは、サーバーがポート80での要求ではなく、私のドメイン名の要求にのみ応答して実行することを意味すると仮定します。

私の元のvhost設定。

<VirtualHost *:80>
    DocumentRoot "/var/www/example.com"
    <Directory "/var/www/example.com">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>
</VirtualHost>

私が試した設定。

Listen 80
ServerName example.com

<VirtualHost example.com:80>
    DocumentRoot "/var/www/example.com"
    <Directory "/var/www/example.com">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>
</VirtualHost>

新しい構成でApacheを再起動しようとすると、次のエラーが発生しました。

 * Restarting web server Apache2 [Fri Mar 28  08:55:47.821904 2014] [core:error] [pid 5555] (EAI 2)Name or service not known: AH00549: Failed to resolve server name for 152.155.254.241 (check DNS) -- or specify an explicit ServerName
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80

注:上記のエラーで152で始まるIPはわずかに編集されていますが、元のIPアドレスはサーバーのIPアドレスではありませんでした。

誰もがこの問題についてアドバイスを提供できますか?無邪気に私のウェブサイトに解決されているドメイン(実際にはいくつかあります)は、専用サーバーの以前のユーザーだけですか?そのDNSはまだそれを指しているだけですか? Apache仮想ホストの構成の問題を解決するにはどうすればよいですか。その他のアドバイスは大歓迎です。

ありがとう。

25
i-CONICA

もちろん、他のドメインがホストをポイントしていることに害はありませんが、サーバーの負荷が増加することは当然です。それらをブロックする場合は、新しい仮想ホストを設定します。

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
    # example.com configuration
</VirtualHost>
<VirtualHost *:80>
    ServerName baddomain.com
    Deny from all
</VirtualHost>

の代わりに Deny from all使用できますRedirect permanent /error.htmlカスタムエラーメッセージを表示します。

ブロックするドメインごとに2番目のVirtualHostを繰り返すか、それらが多数ある場合は、最初にそれをデフォルトのVirtualHostにして、ドメインに例外を作成します。

NameVirtualHost *:80
<VirtualHost *:80>
    # default VirtualHost
    Deny from all
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    # example.com config
</VirtualHost>

エラーメッセージについては、Apacheが起動したときにホスト名example.comを解決できなかったか、ServerNameディレクティブを見つけられなかったようです。なぜだかわかりません。 2番目のエラーは、ポート80がホストですでに使用されていることを示しています。 Apacheの以前のインスタンスをすべてシャットダウンしましたか?

30
Andrew Schulman

「このウェブサイトのこの別の名前はどこから来たのか」については、誰でも、自分が管理するドメインの下に任意の名前で好きなAレコードを付けることができます。 whoisを使用して少し調べれば、問題のDNS名を含むセカンドレベルドメインを誰が登録したかがわかります。

4
zwol

Apacheは、最初に定義する最初のドメインの一種として機能します。

Myowndomain.comに必要なコンテンツと他のすべてのドメインのいくつかの動作(おそらく、優先ドメインの対応するページにリダイレクトする)を提供する場合は、最初に「キャッチオール」ドメインを定義し、トラフィックを適切に処理します(実際のドメイン)、その後、後続のVirtualHostsで実際のドメインなどを定義します。

4

ここであなたの最善の策は、ランダムなドメインがあなたのウェブサイトを指すのを本当に避けたいなら、おそらくAndrew Schulmanが答え、BeowulfNode42がコメントしたとおりです:

デフォルトの仮想ホストを提供します。ここにはいくつかのオプションがありますが、後でトラブルシューティングが面倒になる可能性があるため、わかりやすくするために、単純なエラーページを表示することはお勧めしません。

  • 当たり障りのないこと「通常の状況では、これが表示されないはずです。何とか何とかして助けを求めてください。」一種のメッセージ。そうすれば、後で望ましくないことが起こった場合(設定ミスが発生した場合)、便利なフォールバックが得られます。
  • 301を使用して実際のドメイン/ウェブサイトにリダイレクトしますが、特定の問題が発生した場合、リダイレクトループが発生する可能性があります。
  • ユーザーを実際のウェブサイトに誘導するある種のミニサイトを用意します。おそらく、ユーザーがアクセスしたドメインは「使用されなくなった」と説明します。

したがって、vhostの設定をそのままにしますですが、実際のWebサイト用に新しいvhostを作成し、ディレクトリを入れ替えて続行します。

最近サーバーを引き継ぐことについてあなたが言ったことを踏まえて、(ドメインが明らかにあなたのものではない場合を除いて)これが自動更新を削除する必要がある残りの忘れ物ではないこと、またはそうでないことを確認することを検討しますまだ完成していないか、放棄されたプロジェクトの一部。

1
Keilaron

@Andrew Schulmanの2番目のソリューションのように、常にデフォルトのVirtualHostを最初に置く必要があります。

そうすることで、構成にCustomLogとErrorLogを使用して、サイトにないすべてのリクエストを異なるログファイルに保存できます。AWStatsまたは別のプログラムを使用して統計を作成している場合は、ログにそれを残したくないです。

また、多くの(ほとんどの)攻撃は、ホスト名ではなくIPで行われます。繰り返しますが、これにより、実際のサイトのログがクリーンに保たれ、すべての拒否で直接拒否されます。

0
Sacha K