【AWS】アクセス元IPアドレスを取得する X-Forwarded-For 有効化

NO IMAGE
WindowsServer ばかり触れる機会のあるマルオです。

さて、AWS で ロードバランサーを使用していると、ウェブサーバーのアクセスログのアクセスもとIPアドレスはロードバランサーのIPアドレスが出力されてしまいます。

そこで x-forwarded-for というHTTPヘッダ使用して、ウェブサーバー設定を変更して本当のアクセス元IPを取得できるように設定変更します。
障害切り分けをする際に「誰がアクセスしていたか」が分からないと困るもんです。
x-forwarded-forについてはこちらを読んでみましょう。X-Forwarded-For(WikiPedia)
– – – – – – – – – – – – – – – – – – – – 

X-Forwarded-For 有効化

適用したい環境

・WindowsServer2012R2
・IIS 8.5
・ClassicLoadBalancer (HTTPS/HTTP)

IIS 8.5より前のバージョン は Advanced Logging というモジュールが必要だそうですが、今回は IIS 8.5 なので、Enhanced Logging という機能で実現できるそうです。

作業開始

[IISコンソール] > [Logging]
[Select Filed]選択
[Add Filed]選択
x-fowarded-for フィールド作成

次の値を入力します。
——-
Filed Name: X-Forwarded-For
Source Type: Request Header
Source: X-Forwarded-For
——-

結果確認

IISログ:C:inetpublogsLogFilesW3SVC1
フィールドの最後にIPアドレス表示が確認できました!これで誰がアクセスしたのかが明確にすることができるので一安心です。

最後に

WindowsServerのログを UNIX の tail の用に動的表示させるのに次のコマンドを使用してみます。
 > Get-Content -Path <LogFilesPath/LogFileName> -Tail 10 -Wait 
「-Tial 10」は表示行数なので適宜変更しましょう。これは便利だ。。
おわり

タイトル

本文