人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

自分が管理するウェブサイトに対して、知らないドメインのDNSが向けられたときに、
知らないドメインからのアクセスを防ぐ方法はありますか?ウェブサーバーはApacheです。

【例】
自分が管理するドメイン example.com
自分が管理するサーバー 123.456.123.456
他人が管理するドメイン unknown.com
とし、現在example.comでもunknown.comでも
123.456.123.456の内容が表示されるとします。
これをexample.comでアクセスしたときは正しく表示し、
unknown.comでアクセスしたときははじくようにしたいです。

●質問者: shinwa-tokyo
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● studiocherry
ベストアンサー

Apache であれば、ネームバーチャルホストが有効になっている場合に、設定されてないホスト名で、アクセスされた場合は、一番最初に記載されている VirtualHost 設定が、デフォルトとして、使われます。

これを利用して、一番最初の VirtualHost 設定で、すべてのアクセスを Deny するように設定したら 実現できるんじゃないかと思います。

なお、deny で、アクセス拒否された場合、403 Error になったと思います。

http://httpd.apache.org/docs/2.1/ja/vhosts/name-based.html


以下、設定例;

NameVirtualHost 123.456.123.456:80

<VirtualHost *:80>

# デフォルト設定

# すべての URI を 拒否。

ServerAdmin webmaster@example.com

DocumentRoot "/usr/local/apache/htdocs/"

ServerName 123.456.123.456

ErrorLog "logs/error_log"

CustomLog "logs/access_log" common

<Location /*>

Order allow,deny

Deny from all

</Location>

</VirtualHost>


<VirtualHost *:80>

# www.example.com の設定

ServerAdmin webmaster@example.com

DocumentRoot "/usr/local/apache/htdocs/"

ServerName www.example.com

ServerAlias example.com

ErrorLog "logs/error_log"

CustomLog "logs/access_log" common

</VirtualHost>

◎質問者からの返答

ご回答ありがとうございます。

早速、教えていただいた方法を試してみましたが、

_default_ VirtualHost overlap on port 80, the first has precedence

というエラーがでて、最初のバーチャルホスト設定が優先されてしまうようです。(Apache Ver2.2.3)

リンク先のページでは、同じポートに複数のバーチャルホストを設定しても問題なさそうですので、なぜエラーが起きたのかもう少し原因を探ってみます。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ