Apache 2.4系でIP制限の設定方法
Contents
概要
phpMyAdminをインストールして、IP制限をかけてないことを思い出して、いつもどおりに設定したらちゃんと動かなかったのでハマりました。
以前はCentOS 6でApache 2.2系でWEBサーバーを構築するケースが多くて、2.4系からIP制限の書き方が違うのは気付かなかったです。
2.4系からIP制限について
2.4系からアクセス制限の書き方は以前と比べると簡単になっています。
2.4系ですべての接続元を許可する場合
# 2.2系以前のApache Allow from all # 2.4系以降のApache Require all granted
2.4系でローカルのみアクセスを許可する場合
# 2.2系以前のApache Order deny,allow Deny from all Allow from localhost # 2.4系以降のApache Require all denied Require local
2.4系で特定のIPアクセスを許可する場合
# 2.2系以前のApache Order deny,allow Deny from all Allow from 192.168.10.100 # 2.4系以降のApache Require all denied Require ip 192.168.10.100
2.4系で特定のIPからのアクセスを拒否する場合
# 2.2系以前のApache Order allow,deny allow from all deny from 192.168.10.100 # 2.4系以降のApache Require all granted Require not ip 192.168.10.100
phpMyAdminでIP制限して特定のIPからのみアクセスできるようにする
yumでインストールせず、圧縮ファイルからphpMyAdminのインストール場合はphpmyadmin.confの設定ファイルが生成されないので、設置するディレクトリに設定する必要があります。
筆者の環境は、以下の様な設定でIP制限をかけて、特定のIPからのアクセスのみを許可にしています。設定方法がわかれば簡単ですが、2.2と2.4移行だとIP制限記述方法が違うのに気付かず、1時間ほど悩んでいました
<VirtualHost xxx.xxx.xxx.xxx:80> ServerName www.test.com DocumentRoot /var/www/html <Location /phpMyAdmin/index.php> Require all denied Require ip xxx.xxx.xxx.xxx </Location> </VirtualHost>
ディスカッション
コメント一覧
「2.4系で特定のIPからのアクセスを拒否する場合」
のところで、
—–
# 2.2系以前のApache
Order allow,deny
Deny from all
deny from 192.168.10.100
—–
とありますが、
「Allow」 from all
Deny …..
ではありませんか?
ご指摘の通り、特定のIPからのアクセスを拒否する場合ですが「Deny from all」ではなく「allow from all」ですね。
上の特定のIPのみ許可からコピペして修正するのを忘れていましたので修正しました
ご指摘ありがとうございます