投稿日:2004年09月08日 作成鷹の巣

No.17198 Apache2でグローバルIPでのアクセス拒否方法は?



Apache2でグローバルIPでのアクセス拒否方法は?

No.17198 投稿時間:2004年09月08日(Wed) 18:38 投稿者名:おやす URL:

Apache2系をRHL9で使用しています。

外部からのホスト名(www.hogehoge.comなど)でのアクセスのみ許可し、
グローバルIPでのアクセスを拒否する設定は、
どのようにしたらよいのでしょうか?
こちらのサイトでも確か以前はその様なことをしていた覚えがあります。

Apacheのバーチャルドメインで制御するような気はするのですが・・・。
参考URLなどありましたら、よろしくお願いします。


参考URL。

No.17199 投稿時間:2004年09月08日(Wed) 19:03 投稿者名:通-行-人 URL:

> 外部からのホスト名(www.hogehoge.comなど)でのアクセスのみ許可し、
> グローバルIPでのアクセスを拒否する設定は、
> どのようにしたらよいのでしょうか?
> こちらのサイトでも確か以前はその様なことをしていた覚えがあります。
>
> Apacheのバーチャルドメインで制御するような気はするのですが・・・。

http://www.atmarkit.co.jp/flinux/rensai/apache08/apache08b.html
「編注 2」 に書かれているような動作を、 うまく利用してください。


ちょっとわかりません。

No.17203 投稿時間:2004年09月09日(Thu) 18:32 投稿者名:おやす URL:

通行人さま、レスありがとうございます。

> http://www.atmarkit.co.jp/flinux/rensai/apache08/apache08b.html
> 「編注 2」 に書かれているような動作を、 うまく利用してください。

よく読んでみたのですが、
グローバルIPアドレスでのアクセスを拒否する
という方法がわかりませんでした。
そもそも、拒否する仕方がわからないです・・・。
コンテンツディレクトリのセッティングなど。

上記のURLに載っていることをうまく利用して
実現する方法なのでしょうが、ちょっとわかりません。
引き続き、どなたかよろしくお願いします。


正確には、応答しない方法が知りたいです。

No.17204 投稿時間:2004年09月09日(Thu) 21:46 投稿者名:おやす URL:

「拒否」すると書いておりましたが、
正確には、応答しない方法が知りたいです。

どなたかよろしくお願いします。


こんな風かな。

No.17205 投稿時間:2004年09月09日(Thu) 22:16 投稿者名:ふぁらだ URL:

> どなたかよろしくお願いします。

こんな風かな

<Directory /tmp>
order deny,allow
deny from all
</Directory>

NameVirtualHost *:80

<VirtualHost *>
ServerName any
DocumentRoot /tmp
</VirtualHost>

<VirtualHost *>
ServerName anatanodomain.co.jp
DocumentRoot /www/httpd/linux
</VirtualHost>


やりたいことは、外部ネットワークよりグローバルIPアドレスでのアクセス拒否。

No.17206 投稿時間:2004年09月10日(Fri) 01:46 投稿者名:おやす URL:

ふぁらださま、レスありがとうございます。

> <Directory /tmp>
> order deny,allow
> deny from all
> </Directory>
>
> NameVirtualHost *:80
>
> <VirtualHost *>
> ServerName any
> DocumentRoot /tmp
> </VirtualHost>
>
> <VirtualHost *>
> ServerName anatanodomain.co.jp
> DocumentRoot /www/httpd/linux
> </VirtualHost>

これですが、IP(グローバル)・ホスト名でのアクセス共に403エラーがでました。
で、逆にしてみようと、
<VirtualHost *>
ServerName any
DocumentRoot /tmp
</VirtualHost>

<VirtualHost *>
ServerName anatanodomain.co.jp
DocumentRoot /www/httpd/linux
</VirtualHost>

もしてみましたが、これではグローバルIP・www.hogehoge.comのどちらのアクセスでも、
www.hogehoge.comのHPが表示されているようです。

うーん・・・。かなり悩んでます。
色々な情報おまちしております。

構成としては、
ONU-BA8000Pro-RHL9(192.168.1.15)
な感じの構成になっています。

どなたか助けてさい。
やりたいこととしては、外部ネットワークよりグローバルIPアドレスでのアクセスを
拒否(応答しない)したいだけです。
DNSは自前でRHL9内で用意しています。

よろしくお願いします。


書式から推定できるのでは?

No.17207 投稿時間:2004年09月10日(Fri) 04:21 投稿者名:ks URL:

order deny,allow
allow from all
deny from *.*.*.*
deny from ドメインorホスト


違ってるかも知れませんが、、、。
このくらいは書式から推定できるのでは?
検索をかけても結構出てきます。
では。


www を抜いたりしたらだめです。

No.17208 投稿時間:2004年09月10日(Fri) 07:19 投稿者名:ふぁらだ URL:

VirtualHost が動作していないのでしょうか

anatanodomain.co.jp
の所は正しく貴方のアクセスホスト名が入っていますか?www を抜いたりしたらだめです。


動作しました。

No.17210 投稿時間:2004年09月10日(Fri) 11:08 投稿者名:おやす URL:

ふぁらださま

> VirtualHost が動作していないのでしょうか
>
> anatanodomain.co.jp
> の所は正しく貴方のアクセスホスト名が入っていますか?www を抜いたりしたらだめです。

先ほど、ふぁらださまに教えていただいた上記の方法をもう1度ためしましたら、
動作しました。先ほど、なぜダメだったかはちょっとわからないのですが・・・。

大変助かりました。ありがとうございます。


TCPの接続が確立する前は、使用ホスト名の判定はできません。

No.17209 投稿時間:2004年09月10日(Fri) 07:53 投稿者名:通-行-人 URL:

> 「拒否」すると書いておりましたが、
> 正確には、応答しない方法が知りたいです。

予め用意した以外のホスト名でアクセスしたときに:
a) TCP レベルで反応を行わない。
b) HTTP ステータス 403 ないし 404 を返す。
c) HTTP 200 として、 警告ページを表示させる。

可能なのは b) と c) のみです。 a) の動作はできません。
TCP の接続が確立する前は、 使用ホスト名の判定はできません。 サーバ設置者であれば、 その位のことは覚えておいてください。
(最近良く質問される、 同一の IP アドレス ・ 同じ 80 番ポートで複数のサーバを立てようとするケースは、 このことが頭に入っていないのが原因です)

本題ですが、 拒否設定は後回しにして 「特定のホスト名でのアクセス」 と 「それ以外のホスト名 (IP 直打ちも含めて) でのアクセス」 をきちんと振り分けられるようにすることからスタートしてはどうでしょう。
拒否動作に使うダミー用ディレクトリの方は、 HTTP 403 を返すだけであれば、 ディレクトリのパーミッション設定等によっても対処はできるはずです。


HTTP 403を返すようにはできました。

No.17211 投稿時間:2004年09月10日(Fri) 11:17 投稿者名:おやす URL:

通行人さま

度々おせわになります。

> 予め用意した以外のホスト名でアクセスしたときに:
> a) TCP レベルで反応を行わない。
> b) HTTP ステータス 403 ないし 404 を返す。
> c) HTTP 200 として、 警告ページを表示させる。
>
> 可能なのは b) と c) のみです。 a) の動作はできません。

恥ずかしながら、a) の動作を望んでいました。


> TCP の接続が確立する前は、 使用ホスト名の判定はできません。
> サーバ設置者であれば、 その位のことは覚えておいてください。

そうですね。もう少し勉強します。
簡単にはできないとは思っていたのですが、
やはり無理なことなんですね。

> 本題ですが、 拒否設定は後回しにして 「特定のホスト名でのアクセス」 と 「それ以外のホスト名 (IP 直打ちも含めて) でのアクセス」 をきちんと振り分けられるようにすることからスタートしてはどうでしょう。
> 拒否動作に使うダミー用ディレクトリの方は、 HTTP 403 を返すだけであれば、 ディレクトリのパーミッション設定等によっても対処はできるはずです。

ふぁらださんのレスにも書きましたとおり、
HTTP 403を返すようにはできました。
漠然と何ができていないのかがわからずに、ただ四苦八苦していましたが、
途中で、われに返り通行人さんのおっしゃるような基本的な設定からはじめて、
状況の切り分けをしていったところ、うまくいきました。
で、行き着いた設定がふぁらださんのレスにあった通りの設定でした。

では、皆さまありがとうございました。


|目次|掲示板|過去ログ目次|▲頁先頭|