IIS調用X-Forwarded-For Header (XFF)記錄訪客真實IP

問題:通過IIS發佈的網站放到F5設備後邊,通過透明監聽模式WAF設備過濾後,公網訪問者的真實IP被WAF設備IP替代,在網站日誌看不到原來的真實IP了。

處理方案1:利用第三方IIS插件調用X-Forwarded-For獲得來訪者的真實IP,解決IIS放在f5後記錄不到用戶ip的問題。
處理方案2:使用微軟官方的高級日誌模塊功能調用X-Forwarded-For記錄真實IP;

請注意,以上2種方案都需要WAF管理員在F5設備上進行X-Forwarded-For數據轉發定義後使用!


方案1:
下載並解壓 F5XForwardedFor文件。

根據自己的服務器操作系統版本將x86\Release或者 x64\Release目錄下的 F5XFFHttpModule.dll 和 F5XFFHttpModule.ini拷貝到某個目錄,比如 C:\F5XForwardedFor\。確保IIS進程對該目錄有讀取權限。

打開IIS管理器,雙擊模塊功能。

單擊配置本機模塊,然後在彈出的對話框中,單擊註冊。


添加下載的.dll文件(最好x64和x86都添加好)


爲添加的兩個文件授權允許運行ISAPI和CGI擴展。




返回主頁後,重啓IIS:

去%SystemDrive%\inetpub\logs\LogFiles查詢IIS日誌,可以看到日誌裏邊已經有相關原始IP信息了


方案2: 

下載安裝IIS高級日誌功能https://www.microsoft.com/en-gb/download/details.aspx?id=7211


重新進IIS主頁,雙擊打開高級日誌功能:

激活高級日誌功能:

修改本機日誌字段配置,增加字段:

Field ID輸入」ClientSourceIP」;

Category選擇」Default」;

Source type選擇」Request Header」;

Source name輸入」X-Forwarded-For」;

添加日誌定義:

在」Base file name」字段中輸入「Client Source IP」;然後點擊」Select Fields」按鈕,並選擇」ClientSourceIP」;最後點擊」應用」,回到主頁;



返回主頁後,重啓IIS:

查詢高級日誌,可以拿到訪客原始IP信息了: