「Apacheのアクセスコントロール」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「Apacheのアクセスコントロール とは、Apacheの2.2まではOrder/Deny/Allowディレクティブで行われてきましたが、2.4からはRequire...」)
 
(セキュリティの注意事項)
行105: 行105:
 
==== セキュリティの注意事項 ====
 
==== セキュリティの注意事項 ====
 
サーバへのアクセスが[[プロキシ]]されるときに、クライアントのアドレスが[[プロキシ]]サーバのアドレスになることを注意しなければなりません。
 
サーバへのアクセスが[[プロキシ]]されるときに、クライアントのアドレスが[[プロキシ]]サーバのアドレスになることを注意しなければなりません。
この問題に対する1つの解決策として[[Apache mod_rempteip]]を確認してください。
+
この問題に対する1つの解決策として[[Apache mod_remoteip]]を確認してください。
  
 
=== 任意の変数によるアクセスコントロール ===
 
=== 任意の変数によるアクセスコントロール ===

2014年3月23日 (日) 01:42時点における版

Apacheのアクセスコントロール とは、Apacheの2.2まではOrder/Deny/Allowディレクティブで行われてきましたが、2.4からはRequireを使用します。

読み方

Apacheのアクセスコントロール
あぱっちのあくせすこんとろーる

概要

Apache HTTP Serverの設定は、2.4からRequireを使用して、アクセスコントロールを設定します。

Apacheのアクセスコントロールの種類

Apache HTTP Serverには、以下のアクセスコントロールがあります。

  • ホストによるアクセスコントロール
  • ユーザー認証によるアクセスコントロール

ホストによるアクセスコントロール

  • 2.2系まで Allow,Deny,Order
  • 2.4系から Require

ユーザー認証によるアクセスコントロール

使い方

アクセスをすべて許可する

Apache 2.4ですべてのアクセスを許可する例です。

Require all granted

2.2系では、以下のように書いていました。

Order allow,deny
Allow from all

アクセスをすべて拒否する

Apache 2.4ですべてのアクセスを拒否する例です。

Require all denied

2.2系では、以下のように書いていました。

Order deny,allow
Deny from all

ほとんどアクセスを許可し、一部を拒否する

Require all granted
Require not ip 10.1.2.3

ドメインベースのアクセス制御

Apache 2.4でexample.orgドメインのすべてのホストのみを許可する例です。それ以外は、拒否します。

Require host example.org

2.2系では、以下のように書いていました。

Order Deny,Allow
Deny from all
Allow from example.org

Requireで複数書く場合には、以下の通りです。

Require host .net example.org

ホストを拒否する例です。

Require not host host.example.org

IPアドレスでアクセスを許可する Require ip

完全なIPアドレスでアクセスを許可する場合です。

Require ip 10.1.2.3
Require ip 192.168.0.101 192.168.0.102

部分的なIPアドレスでアクセスを許可する場合です。

Require ip 10.1
Require ip 10 172.20 192.168.0

ネットワーク/ネットマスクのペアで許可する場合です。

Require ip 10.1.0.0/255.255.0.0

network/nnn CIDR で指定する例です。

Require ip 10.1.0.0/16


IPv6アドレスやIPv6サブネットで指定する例です。

Require ip 2001:db8::a00:20ff:fea7:ccea
Require ip 2001:db8::a00:20ff:fea7:ccea/10

ローカルホストのアクセスを許可する Require local

localプロバイダは、以下の条件がなりたつときに、サーバへのアクセスを許可します。

  • クライアントのアドレスが 127.0.0.0/8 に一致する場合
  • クライアントのアドレスが ::1 の場合
  • コネクションのクライアントとサーバのアドレスが一致する場合

ローカルホストから発生するコネクションに許可する便利な方法です。

Require local

セキュリティの注意事項

サーバへのアクセスがプロキシされるときに、クライアントのアドレスがプロキシサーバのアドレスになることを注意しなければなりません。 この問題に対する1つの解決策としてApache mod_remoteipを確認してください。

任意の変数によるアクセスコントロール

ユーザーエージェント(ブラウザタイプ)によるアクセスの拒否の例です。

<If "%{HTTP_USER_AGENT} == 'BadBot'">
    Require All Denied
</If>

ユーザーエージェント(User-Agent, UA)によるアクセスコントロールは、信頼出来ないテクニックです。それは、誰でも、このユーザーエージェントを任意の値に指定できるからです。

関連項目