サイトの一部をIPアドレスでアクセス制限したい

2011年2月1日 at 18:43

はじめまして。
現在 concrete5 でサイトを制作中です。

サイトの一部について、アクセス元のIPアドレスによって許可・禁止を
設定したいのですが、そういうことは可能でしょうか。
プリティURLを使うという前提です。

http://site/a/ は制限なくアクセス可能だが、
http://site/b/ は社内・社外の特定のIPアドレスからのみ
アクセスを許可する。

というようなことです。
ログインしないとアクセスできない、ということなら、
上級権限モードで設定すればできそうですが、そうではなく、
アクセス元のIPアドレスだけで判別したいのです。

どうぞよろしくお願いいたします。

環境:
CentOS 5.5 64bit
apache 2.2.17
php 5.3.5
concrete5 5.4.1.1-ja-b1

Re: サイトの一部をIPアドレスでアクセス制限したい

2011年2月2日 at 13:09
残念ながら、 concrete5 では、不正アクセスを防ぐために、IPアドレスで、ログインのブロックが出来ますが、それ以外の機能は、IDとパスワードで行うことを前提としているために、本体の機能としては、実装する予定がありません。

また、タイムリーな話題ですが、IPv4のアドレスが枯渇してきて IPv6 との共存になるため、ますます IP 制限がしにくくなります。

そして IP アドレスはいくらでも偽装が出来ます。実は先月、当 concrete5 サイトも、偽装されたIPアドレスによるDDoS攻撃をされました。

なので、ますます ID & Password 制限が主流になってくるか、堅牢なセキュリティーを望むのであれば、VPNによるアクセス制限が良いかもしれません。



かといって、メインのIP制限アクセスも、できるようであればやりたいですね。他の人に質問。 .htaccess でIP制限できましたっけ?
 

Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年2月2日 at 13:46
はい、Apache でアクセス制限するが簡単でしょうね。
 

Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年2月2日 at 14:00
.htaccess でIP制限


共用サーバーだと、ユーザーに許可されていないこともあります。
 

Re: Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年2月2日 at 18:25
皆さんありがとうございます。

そうするとやはり、concrete5 の機能ではなく apache 側でやる、という話ですね。
mod_rewrite も有効ですから </Location> で指定して deny from すればできそう
です(自前サーバなので .htaccess も使用可)。 さっそく試してみます。

src IP アドレスを偽装した DDoS 攻撃・・私は経験はありませんが、考えただけで
恐ろしい。IPアドレス制限も切り札ではないということを上の方に伝えます(^^)。
 

Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年5月13日 at 11:17
katz515様

> concrete5 では、不正アクセスを防ぐために、IPアドレスで、ログインのブロックが出来ますが、

とありますが、concrete5のどこで設定できるのでしょうか?
apacheの機能で/index.php/login/をアクセス制限かけようかと思っていたのですが、
concrete5の機能で可能ならば、そちらで設定したいです。

設定画面を探しまわったのですが、それらしき項目が見つかりませんでした。
よろしくお願いいたします。
 

Re: Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年5月14日 at 3:16
サイト全体の設定 > アクセス権限
にあります。
 

Re: Re: Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年5月16日 at 9:59
katz515様、ありがとうございます。

「IPアドレス・アクセス制限」の「無期限プロック設定」のことですね。
ここの設定はてっきり、サイト全体へのアクセス制限だと思っておりました。

ということであれば「IPアドレス・アクセス制限」->「IPアドレス・ログイン制限」と
設定項目名を変更したほうがよいかなと思います。

また、現在はブロックするアドレスの設定のみ可能ですが、内部からのアクセスのみ
ログイン可能にし、外部からのログインをすべてブロックしたいような場合、
ちょっと設定が大変ですよね。

ブロックではなく、ログインを許可するアドレスの設定が出来ればより管理が
しやすくなるのではないかと思いますが、いかがでしょうか?
 

Re: サイトの一部をIPアドレスでアクセス制限したい

2011年2月6日 at 11:01
アクセス制限をかけたい
http://site/b/
の所に、
.htaccess
とい名前のファイルを作り、以下を記述してみてください
--
Order deny,allow
Deny from all
Allow fromhttp://www.kaisha.com 123.222.0.
--
のように記述すればいいと思います。
上記の場合、
http://www.kaisha.comと、123.222.0.1〜123.222.0.254からのみアクセ可能になります。
つまり、指定はドメイン名でもIPアドレスでもOKです。
 

Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年2月14日 at 13:33
tomoac さん、みなさん、

返事が遅くなってすみません。
その後やってみまして、期待通り動きました(^^)。
ありがとうございました。

今回の場合、 http://site/b/ の /b/ はプリティURLで、
実ディレクトリではないので、.htaccess を置くということは
できなくて、apache.conf 内に直接 </Location> を書きました。

ついでに・・。 気になったのが 403 forbidden ページですが、
これも concrete じゃなくて apache 側で用意しないと
いけないみたいですね・・
 

Re: Re: Re: サイトの一部をIPアドレスでアクセス制限したい

2011年2月15日 at 21:00
Apacheの設定ファイルが触れるんでしたらそのほうがいいですね。
VPSかなんかの契約なんですかね。