ウェブサーバ - 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
と怒られちゃいます。
|
|