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
コメント