「Apacheのアクセスコントロール」の版間の差分
(ページの作成:「Apacheのアクセスコントロール とは、Apacheの2.2まではOrder/Deny/Allowディレクティブで行われてきましたが、2.4からはRequire...」) |
(→セキュリティの注意事項) |
||
行105: | 行105: | ||
==== セキュリティの注意事項 ==== | ==== セキュリティの注意事項 ==== | ||
サーバへのアクセスが[[プロキシ]]されるときに、クライアントのアドレスが[[プロキシ]]サーバのアドレスになることを注意しなければなりません。 | サーバへのアクセスが[[プロキシ]]されるときに、クライアントのアドレスが[[プロキシ]]サーバのアドレスになることを注意しなければなりません。 | ||
− | この問題に対する1つの解決策として[[Apache | + | この問題に対する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
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)によるアクセスコントロールは、信頼出来ないテクニックです。それは、誰でも、このユーザーエージェントを任意の値に指定できるからです。
関連項目
- Webサーバ
- Apache HTTP Server
- Apacheのアクセスコントロール
- Mod モジュール