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



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:\inetpub\logs\LogFiles\W3SVC1


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

最後に

WindowsServerのログを UNIX の tail の用に動的表示させるのに次のコマンドを使用してみます。

 > Get-Content -Path <LogFilesPath/LogFileName> -Tail 10 -Wait 

「-Tial 10」は表示行数なので適宜変更しましょう。これは便利だ。。

おわり

このブログの人気の投稿

【AWS】IAMFullAccessを付与せずIAM Roleの作成とアタッチを行う方法

【AWS】EBSボリューム自動取得/削除 を Lambda で実行 (世代管理も)

【GCP】Compute EngineでVPNサーバーを立てるときの注意点