【Apache】Apacheで接続元IPを判定して、特定のIPだけアクセス許可やアクセス制限をしたりする方法 (.htaccess)

Apache-IP-Limit

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、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!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

プログラミング学習・エンジニア転職関連の情報

自宅で現役エンジニアから学べる『TechAcademy』 (エンジニア転職保証)

『GEEK JOBキャンプ』スピード転職コース(無料)

【IT道場】入校時0円! 就職目的プログラミングスクール

エンジニア転職なら100%「自社開発」求人に強い【クラウドリンク】

『techgym』 (Python特化・無料)

Apache関連の書籍

参考・引用

  1. IP 制限を行う
  2. 接続元IPを判定するRewriteCondでよくやる奴メモ(Proxy考慮)

最近の投稿