Apache2.2以前 から Apache2.4 に移行でのアクセス制限の書き方の違い

ALL
スポンサーリンク

CentOS6 ではデフォルトでインストールされる Apache はバージョン2.2 でしたが、CentOS7 では 2.4 になりました。
Apache2.2までは Orderディレクティブでアクセス制限をしていましたが、Apache2.4 では Require ディレクティブでの制限に変更されました。

モジュール mod_access_compat を使用すると、従来の Orderディレクティブでの制限で記述出来ます。
CentOS7 ではデフォルトで mod_access_compat が使用されるようになっており、 Orderディレクティブ、Require ディレクティブのどちらでも良いことになります。

ですが、Require ディレクティブの方が複雑な制限も出来るようなので、Require ディレクティブの書き方にしていく方が良さそうです。

以下は、基本的なIPアドレス制限を行う場合の、Orderディレクティブに対する Require ディレクティブでの書き方です。

すべての接続元を許可

Apache2.2以前

allow from all

Apache2.4以降

Require all granted

特定の接続元だけを許可

Apache2.2以前

order deny,allow
deny from all
allow from 192.168. 127.0.0.1

Apache2.4以降

Require all denied
Require ip 192.168. 127.0.0.1

特定の接続元だけを禁止

Apache2.2以前

order allow,deny
allow from all
deny from 192.168. 127.0.0.1

Apache2.4以降

<RequireAll>
Require all granted
Require not ip 192.168. 127.0.0.1
</RequireAll>

参考
mod_authz_core – Apache HTTP Server Version 2.4
Apache2.4で “client denied by server configuration”… | SonicNotes

コメント