www.junmt.info

I love the guiter.


2024年4月20日(土) 19:23 JST

ELB配下のApacheでBasic認証+IPアドレス制限をする方法

日記■やりたかったこと
・Basic認証を使う
・特定のIPアドレスからのアクセスはBasic認証を使わない

■概要
AWSのELBを利用している場合、Security GroupでIPアドレス制限を掛けるのが妥当だが、
特定のIPアドレス以外でもBasic認証で認証が通ればアクセスさせるような方法が提供されていない。

そのため、Webサーバ側で制御が必要となり、
・Basic認証を設定すること
・HTTPヘッダーのX-Forwarded-Forを参照して、IPアドレス制限を掛ける

という作業になった。

最新のApacheではmod_rpafとか使えばいいらしいが、Apacheと似て非なるものだったり、
勝手に何か入れると混乱する環境だったため、力技で解決。
■httpd.confに以下のように記載。

<Location /example>
AuthType Basic
AuthName "Example User"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user

Satisfy Any

SetEnvIf X-Forwarded-For "^$" empty_ok

# 10.10.0.0/16(VPC内のアドレス)
SetEnvIf X-Forwarded-For "10.10." ip_ok

# 192.168.1.1/32(固定IPアドレス)
SetEnvIf X-Forwarded-For "192.168.1.1" 1_ok

# 123.123.1.64/28 (CIDR表記の分解例なので、適当なIPアドレス)
SetEnvIf X-Forwarded-For "123.123.1.(6[4-9]|7[0-9])" 2_ok

Order Deny,Allow
Deny from all
Allow from env=empty_ok
Allow from env=ip_ok
Allow from env=1_ok
Allow from env=2_ok
</Location>

トラックバック

このエントリのトラックバックURL: http://www.junmt.info/trackback.php/20141127161123452

この記事にはトラックバック・コメントがありません。
ELB配下のApacheでBasic認証+IPアドレス制限をする方法 | 0 コメント | アカウントの登録
以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。