ハマログ

株式会社イーツー・インフォの社員ブログ

ロードバランサーを考慮したApacheのIP制限

ロードバランサー経由のIP制限

サイトのリダイレクト設定時、テスト用に自己IPのみ対象外にしようと.htaccessを設定したが、うまくいきませんでした。

<IfModule mod_rewrite.c>
    RewriteCond %{REMOTE_ADDR} !^192\.0\.2\.0$                   # 対象IP除外
    RewriteRule ^(.*)$ https://example.com%{REQUEST_URI} [R=301,L]
</IfModule>

ウェブサーバーがロードバランサー経由で接続されているため、接続元IPアドレスはHTTPヘッダフィールド経由で取得すればよいようです。
「X-Forwarded-For」を設定することでうまくいきました。

<IfModule mod_rewrite.c>
    RewriteCond %{HTTP:X-Forwarded-For} !^192\.0\.2\.0$              # 対象IP除外
    RewriteRule ^(.*)$ https://example.com%{REQUEST_URI} [R=301,L]
</IfModule>

その他

BASIC認証とIP制限の組み合わせについても、同じような設定でできるようです。

<RequireAll>
    #BASIC認証
    AuthType Basic
    AuthUserFile /var/www/example.com/.htpasswd
    AuthGroupFile /dev/null
    AuthName "Authorization Required"

    #除外対象IP設定
    SetEnvIf X-Forwarded-For "192\.0\.2\.0" allowedip

    <RequireAny>
        Require env allowedip              #対象IP除外
        Require valid-user
    </RequireAny>
<RequireAll>
ApacheAWSTest

  yama   2023年5月18日


関連記事

Amazon Linux2でLocaleを変更してみた

  はじめに どうも!T-utsuです。 最近なにかとAWSをいじるこ…

AWSのメール送信緩和申請はRemoval of E-mail sending limitじゃダメ

AWSのEC2では、デフォルトで25番ポートからのトラフィック(要はメール送信)…

AWS CloudWatch LogsをLambdaにストリーミングするときのサブスクリプションフィルタパターンの書き方

はじめに AWS上で動いているアプリケーション監視の際に、CloudWatch …


← 前の投稿

次の投稿 →