ウェブサーバ - IP アドレスによるアクセス制御 - 設定

 クラウディア
1. 概要
2. コンフィグレーションファイルで設定
3. .htaccess で設定
4. 拒否設定

1. 概要

 特定の IP アドレスにのみアクセスを許可する場合の例題は、以下の環境とします。
 項目    設定  
サイトの絶対パス /usr/local/www/data/hogehoge
制限する URL http://www.hogehoge.jp/hogehoge/
定義ファイル /usr/local/etc/apache22/Includes/hogehoge.conf
アドレス 192.168.0.0 ~ 192.168.0.255 に対してのみ公開

2. コンフィグレーションファイルで設定

/usr/local/etc/apache22/Includes/hogehoge.conf
 に、以下のように記述します。


Alias /hogehoge		/usr/local/www/data/hogehoge

<Directory  /usr/local/www/data/hogehoge>
    Options -Indexes +FollowSymLinks

    <RequireAll>
        <RequireAny>
            Require ip  192.168.0.0/24
        </RequireAny>
    </RequireAll>
</Directory>
 4行目の枠で許可の全体を定義。  5行目の枠で特定の許可を定義。  6行目で、許可する IP を定義。
/usr/local/etc/apache22/Includes/hogehoge.conf
 の記述を終えたら、「configtest」と「graceful」を行って、設定を反映させます。

3. .htaccess で設定

/usr/local/etc/apache22/Includes/hogehoge.conf
 は下記のように記述します。


Alias /hogehoge		/usr/local/www/data/hogehoge

<Directory  /usr/local/www/data/hogehoge>
    Options -Indexes +FollowSymLinks
	Allowoverride	All
	Require all granted
</Directory>
 いったん 「configtest」と「graceful」を行って、設定を反映させます。  この時点で、すべての IP アドレスからアクセス可能になっています。

/usr/local/www/data/hogehoge/.htaccess
 を作成して

<RequireAll>
    <RequireAny>
        Require ip  192.168.0.0/24
    </RequireAny>
</RequireAll>
 と記述します。  「.htaccess」の記述は、「apache」自体を再起動しなくても即時に反映されます。  そこは、便利なのですが、「.htaccess」の変更は「configtest」しない分、チェックを行うことができないので、本番環境で使用するには、少し躊躇するものがあります。

4. 拒否設定

 前項までの設定は、特定の IP アドレスにのみ、接続を許可するというものでしたが。  本項では、特定の IP アドレスからの接続を拒否する設定に関して、記述します。  基本は、下記のように書きますが・・・。  (「not ip」以降のアドレスを拒否)

        Require all granted
		Require not ip  192.168.0.0/24
 実は、「Require all granted」のみであれば、「<RequireAll>」で挟まないで、ひとつ上のネストで記述することが可能なのですが・・・。  「Require not ip」の方は、「<RequireAll>」で挟まないで、「/usr/local/etc/apache22/Includes/*.conf」に記述すると

$ service apache24 configtest
Performing sanity check on apache24 configuration:
AH00526: Syntax error on line 行番号 of /usr/local/etc/apache24/Includes/ファイル名.conf:
negative Require directive has no effect in <RequireAny> directive
 と怒られちゃいます。
ハイスピードプラン