IP制限とは
特定のドメインやIPアドレスからのアクセスを許可したり、拒否したりすることでサーバーを守ること。
IP制限のかけ方
IP制限に関するApacheの記述は.htaccessファイル
もしくは.cofファイル
に書く。この記事では.cof
ファイルを編集する方法を紹介する。
.confファイル
の記述例
特定のドメインもしくはアドレスからのアクセスを許可するか拒否するかによって書き方は異なる。
[2022/11/2 追記]
下記のような
order
/allow
/deny
を使った書き方はApache2.2以前のもので、Apache2.4以降では推奨されていないため、環境によってはエラーが出ることもある。Apache2.4以降で推奨されている書き方の記事はこちら
特定のドメインもしくはIPアドレスからのアクセスを許可したい場合
<Directory /var/www/html> order deny,allow deny from all allow from aaa.bbb.ccc.ddd allow from www.example.com </Directory>
特定のドメインもしくはIPアドレスからのアクセスを拒否したい場合
<Directory /var/www/html> order allow,deny allow from all deny from aaa.bbb.ccc.ddd deny from www.example.com </Directory>
解説
1. Directory
でIPアドレス制限を行う場所の設定
上の例の場合、/var/www/html
ディレクトリ下にある全てのファイルに対して制限がかかる。
Directory
と同じような設定でLocation
と呼ばれるものがあるが、これはパスに対して制限をかける。
2. order
によるアクセス制御
order deny,allow
は拒否に該当したら許可を判定するため、許可が優先となる。逆の場合も然り。
よって、order allow,deny
で拒否を設定し、
order deny,allow
で許可を設定する。
3. allow
とdeny
allow from ***
やdeny from ***
で許可する範囲や拒否する範囲を指定する。全てのアクセスを許可もしくは拒否したい場合はall
を使う。