ホワイトリスト・ブラックリスト方式で特定のIPアドレス・ホストを制限する
特定のIPアドレスまたはホストからのアクセスだけを許可したいという場合は、.htaccessに以下のように記述します。
※Apacheの設定で.htaccessが有効になっていることが前提です。
$ vi /var/www/html/.htaccess # # # # # # # # # # # # # # # # # # # ホワイトリスト式のアクセス制限 order deny,allow deny from all allow from 202.215.75.207 # IPアドレス 202.215.75.207 を許可 allow from .bbtec.net # Yahoo BB からのアクセスを許可
上記の.htaccessが置かれたディレクトリ以下は、許可したIPアドレス・ホストでアクセスしてもステータスコード403 Forbbidden が返されます。
order deny,allowという箇所がありますが、このように記載することで、すべてのアクセスを拒否し、指定したものだけを許可するホワイトリスト方式となります。
一方、order allow,denyというふうにdeny,allowを逆にして、それ以下のallow・denyを入れ替えて記述することで、指定したものだけを拒否するブラックリスト方式となります。
以下はブラックリスト方式の例です。
$ vi /var/www/html/.htaccess # # # # # # # # # # # # # # # # # # # ブラックリスト式のアクセス制限 order allow,deny allow from all deny from 202.215.75.207 # IPアドレス 202.215.75.207 を拒否 deny from .bbtec.net # Yahoo BB からのアクセスを拒否
この方法の注意点
前述した方法は、設定の内容によってはApacheのパフォーマンスが低下する場合があります。
ミケネコの htaccess リファレンスによると、以下のような記述でホスト制限を行うと、Apacheの負荷が大きくなるとあります。
order allow,deny allow from all deny from .aaa.ne.jp
原因は、このような設定によって、通常無効となっているDNSの逆引き機能が有効になってしまうことのようです。
したがって、上記のような文脈でホストを制限する際はこの点を念頭に置く必要があります。
最終更新 2011-01-18

この記事へのコメント
まだコメントは投稿されていません。