IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

問題: IIS を通じて公開された Web サイトは F5 デバイスの背後に配置されています。透過的な監視モードで WAF デバイスによってフィルタリングされた後、パブリック ネットワーク訪問者の実際の IP アドレスは WAF デバイスの IP アドレスに置き換えられ、元の実際の IP アドレスは Web サイトのログに表示されません。

解決策 1: サードパーティの IIS プラグインを使用して X-Forwarded-For を呼び出し、訪問者の実際の IP アドレスを取得します。これにより、f5 に配置された後に IIS がユーザーの IP アドレスを記録できないという問題が解決されます。
解決策 2: Microsoft の公式の高度なログ モジュール関数を使用して X-Forwarded-For を呼び出し、実際の IP アドレスを記録します。

上記の両方のソリューションでは、使用前に WAF 管理者が F5 デバイスで X-Forwarded-For データ転送を定義する必要があることに注意してください。

シナリオ 1:

F5XForwardedFor ファイルを解凍します。

ダウンロードアドレス: https://www.jb51.net/softs/770998.html

サーバーのオペレーティング システムのバージョンに応じて、x86\Release または x64\Release ディレクトリ内の F5XFFHttpModule.dll と F5XFFHttpModule.ini を C:\F5XForwardedFor\ などのディレクトリにコピーします。 IIS プロセスにディレクトリへの読み取り権限があることを確認します。

IIS マネージャーを開き、モジュール機能をダブルクリックします。

[ネイティブ モジュールの構成] をクリックし、ポップアップ表示されるダイアログ ボックスで [登録] をクリックします。

ダウンロードした.dllファイルを追加します(x64とx86の両方を追加するのが最適です)

追加した 2 つのファイルを承認して、ISAPI および CGI 拡張機能の実行を許可します。

ホームページに戻ったら、IIS を再起動します。

%SystemDrive%\inetpub\logs\LogFiles に移動して IIS ログを照会すると、ログにはすでに関連する元の IP 情報が含まれていることがわかります。

シナリオ2:

IIS の高度なログ機能をダウンロードしてインストールします https://www.microsoft.com/en-gb/download/details.aspx?id=7211

IIS ホームページに再度アクセスし、ダブルクリックして高度なログ機能を開きます。

高度なログ記録を有効にするには:

ローカル ログ フィールド構成を変更し、フィールドを追加します。

フィールド ID に「ClientSourceIP」と入力します。

カテゴリで「デフォルト」を選択します。

ソースタイプとして「リクエストヘッダー」を選択します。

ソース名に「X-Forwarded-For」と入力します。

ログ定義を追加します:

「ベースファイル名」フィールドに「クライアントソース IP」と入力し、「フィールドの選択」ボタンをクリックして「ClientSourceIP」を選択します。最後に「適用」をクリックしてホームページに戻ります。

ホームページに戻ったら、IIS を再起動します。

高度なログを照会すると、訪問者の元の IP 情報を取得できます。


これで、IIS が X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP アドレスを記録する 2 つの方法について説明したこの記事は終了です。IIS が X-Forwarded-For を呼び出す方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  トップに戻るボタンを実装するJavaScript

>>:  BFCとは何ですか? CSS 疑似要素を使用してフロートをクリアする方法

推薦する

Windows で MySQL マスター スレーブ レプリケーションを構成する方法

MySQL マスター/スレーブ レプリケーションを使用すると、1 つのデータベース (マスター デー...

JS クロスドメイン ソリューション React 構成 リバース プロキシ

クロスドメインソリューションjsonp (get をシミュレート) CORS (クロスオリジンリソー...

crontab の実行結果を電子メールでユーザーに通知する方法

症状Centos7 ホストに crontab タスクを設定しましたが、時間が来るとメールを実行して「...

JS がビデオ弾幕効果を実現

これを実現するには、ES6 モジュール開発とオブザーバー モードを使用します。オブザーバー パターン...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

Mysqlチュートリアルでのグループランキングの実装例の詳細な説明

目次1. データソース2. データの総合順位1) 総合ランキング2) 同順位3) 同順位3. データ...

CentOS 7 に Docker 1.8 をインストールする詳細な手順

Docker は、次の CentOS バージョンでの実行をサポートしています。 • CentOS 7...

HTML で相対パスを使用してディレクトリのすべてのレベルのファイルを取得する方法の詳細な説明

相対パスの概念現在のファイルの場所を参照ポイントとして使用して、ターゲット ファイルへのパスを確立し...

ネイティブ JavaScript でオブジェクトが空かどうかをチェックする実装例

目次ネイティブJavaScriptとはA. 新しいブラウザでnullオブジェクトをチェックするコンス...

Mac OS 10.11 での MySQL 5.7.12 のインストールと設定のチュートリアル

Mac OS 10.11 に MySQL をインストールして設定する方法を、主に写真を使って手順を簡...

Win10の明るさ調整効果を模倣するHTML+CSS+JSサンプルコード

HTML+CSS+JS で Win10 の明るさ調整効果を模倣コード <!doctypehtm...

mysql 複数テーブル接続削除関数の削除

単一のテーブルを削除する: tableName から columnName = value を削除し...

WeChatアプレットは画像コントロールを選択します

この記事の例では、WeChatアプレットで画像コントロールを選択するための具体的なコードを参考までに...

MySQL における ESCAPE キーワードの使用法の詳細な説明

MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...

きちんとしたHTMLマークアップを使用してページを構築します

インターネットは絶えず進化する有機体です。長期にわたってインターネットの発展に適応できるページを構築...