Apache 2.4系でIP制限の設定方法

centos_logo Linux
centos_logo

概要

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>

 

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
Linux
スポンサーリンク
adminをフォローする

コメント

  1. 匿名 より:

    「2.4系で特定のIPからのアクセスを拒否する場合」
    のところで、
    —–
    # 2.2系以前のApache
    Order allow,deny
    Deny from all
    deny from 192.168.10.100
    —–
    とありますが、
    「Allow」 from all
    Deny …..
    ではありませんか?

  2. admin より:

    ご指摘の通り、特定のIPからのアクセスを拒否する場合ですが「Deny from all」ではなく「allow from all」ですね。
    上の特定のIPのみ許可からコピペして修正するのを忘れていましたので修正しました

    ご指摘ありがとうございます

タイトルとURLをコピーしました