ロードバランサーやプロキシー経由でも.htaccessでのIPアドレスを制限したい場合
Aug 3, 2013IPアドレスで制限したいシステムが、PagodaBox上で運営しているのですが、Pagodaさんがロードバランサーを介しているので、下記のようのよく使う.htaccessでのIP制限が実現できませんでした。
よくあるIP制限 by .htaccess
1 2 3 4 |
order allow,deny allow from all deny from 139.82.0.0/16 deny from 1.1.2.6 |
X-FORWARDED-FOR経由でのIP制限 by .htaccess
headerを確認したことを、X-FORWARDED-FORにIPがありましたので、最終的に下記のように実装しました。
1 2 3 4 5 |
SetEnvIf X-FORWARDED-FOR 124.169.224.1 denyIP SetEnvIf X-FORWARDED-FOR 124.169.4.1 denyIP order allow,deny allow from all deny from env=denyIP |
プレフィックスのIPアドレスを対応する
今回やっかいだったのは制限するIPアドレスの数がかなり多かったことです、しかもプレフィックス(Prefix)で指定されたIPアドレスなのでかなりの数でした。
それで、面倒でしたが一つ一つプレフィックスに併せて正規表現で対応したのですが、面倒でしたー
1 2 3 4 5 6 7 |
#124.120.0.0/15 SetEnvIf X-FORWARDED-FOR ^124.120.(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]).(?:[1-9][0-9]?|1[0-9]{2}|2[0-4][0-9]|25[0-4])$ denyIP #140.49.0.0/16 SetEnvIf X-FORWARDED-FOR ^140.149.(?:[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]).(?:[1-9][0-9]?|1[0-9]{2}|2[0-4][0-9]|25[0-4])$ denyIP order allow,deny allow from all deny from env=denyIP |
まずプレフィックスのIPの範囲を今まで理解してなかったことも厄介でしたが、下記のサービスのお陰で助かりました
http://www.csgnetwork.com/ipinfocalc.html ← プレフィックスのIPの範囲を計算してくれるサービス
http://support.google.com/bin/answer.py?hl=en&answer=1034771 ← IPアドレスの正規表現
Twitter:
Warning: Undefined array key "Twitter" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Facebook: 0 | Google Plus:
Warning: Undefined array key "Google+" in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/plugins/sns-count-cache/sns-count-cache.php on line 2897
0 | Hatena: 0 | Pocket: 4 | Total: 4 | Feedly: 0