すらいむがあらわれた

こまんど >  たたかう  にげる

Elasctic Load Balancerを利用している場合にIISログにアクセス元IPを記録するには

AWSロードバランサーサービスであるAmazon Elastic Load Balancer(ELB)を使用するとアクセス元IPがELBのものとなる。元のIPはX-Foworded-Forヘッダに入る。

X-Forwarded-For(XFF)とは、HTTPヘッダフィールド(英語)の一つ。HTTPプロキシサーバまたは負荷分散装置(ロードバランサ)を経由してウェブサーバに接続するクライアントの送信元IPアドレスを特定する際のデファクトスタンダードである。

http://ja.wikipedia.org/wiki/X-Forwarded-For

なのでアクセス元IPを知りたい時はXFFヘッダを見れば良いのだが、IISのログにアクセス元IPを記録したい時はこのISAPIモジュールを使うとIISログにXFFの値を記録できる。
X-Forwarded-For Log Filter for Windows Servers Joe Pruitt - A Software Architect's take on Network Security
http://devcentral.f5.com/weblogs/Joe/archive/2009/08/19/x_forwarded_for_log_filter_for_windows_servers.aspx

上記のブログにも書いてあることだけど、このモジュールには注意点がある。
複数のプロキシを経由してきた場合、XFFヘッダは以下のようになる。

X-Forwarded-For: client1, proxy1, proxy2

上記のモジュールはフィールドの1つめの値(この例だたclient1)を記録するようになっているので注意。

IIS4〜6までのインストール方法は以下のURLで紹介されている。
IISで X-Forward-For ISAPI Filter を使う
http://takaq1.plala.jp/contents/windows/x_forward/index.html

IIS7の場合、サーバー管理画面の以下の画面で設定する。
WinSvr2008ISAPIFilter
WinSvr2008ISAPIFilter posted by (C)kanpan

このモジュールを有効化するにはサーバーの再起動が必要なので、運用開始前に入れておいたほうがいい。