こんにちはフロントエンドエンジニアのまさにょんです!
今回は、Apache(Webサーバー)で接続元IPを判定したり、
特定のIPだけアクセス許可や、特定のIPだけアクセス制限をしたりする方法について解説していきます。
今回のSampleでは「.htaccess」に実装していきます。
目次
IPアドレス制限: 指定したIPアドレスにだけ特定のページのアクセスを許可する
「.htaccess」に次のように実装すると、指定したIPアドレスにだけ特定のページのアクセスを許可しています。
ポイントは、ロードバランサーを考慮して、X-Forwarded-For をCheckしている点です。
RewriteCondの変数である %{REMOTE_ADDR}
に直接、接続元のIPが入ってきます。
そして %{HTTP:X-Forwarder-For}
には ReverseProxy が存在した場合の接続元IPが入ってきます。
なければ空文字になります。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
### ここから IP アドレス制限、アクセス許可するIPの設定 ###
# 接続元IPを判定する => ロードバランサーを考慮して、X-Forwarded-For をCheckします
RewriteCond ,%{REMOTE_ADDR},%{HTTP:X-Forwarded-For}, ,!155\.155\.3\.177,
RewriteCond ,%{REMOTE_ADDR},%{HTTP:X-Forwarded-For}, ,!220\.148\.222\.155,
# dashboard & manual にAccessできるIPは制限します
RewriteRule ^(dashboard|index.php/dashboard|manual|index.php/manual)(.*) - [F]
### ここまで IPアドレス制限の設定 ###
</IfModule>
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!