すべてのトラフィックがプロキシ経由でmy IISサーバーに到達します。すべてのトラフィックはプロキシのIPアドレスからのものであるため、IPアドレスをブロックまたはホワイトリストできません。
IISでX-Forwarded-Forヘッダーを使用できますか?
Webサーバーが要求を転送するときにこれを考慮に入れていない限り、クライアントで制御できることを考慮して、IPフィルタリングにHTTPヘッダーを使用する場合は注意して続行します。
権限のないユーザーがヘッダーでX-Forwarded-Forを送信するとどうなりますか?あなたのウェブサーバーは追加のX-Forwarded-Forを追加しますか?それは私の下または上に追加されますか? IISで検証に使用するのはどれですか?
これらは、ヘッダー値に信頼を実装する前に回答する必要がある質問です。
編集:私はより良い代替案を知りませんが、あなたが質問したいものを選ぶなら、最初に質問に答えることができるはずです。複数のプロキシを通過することについて話しているのではなく、自分のX-Forwarder-Forヘッダーをリクエストの下部に配置するとどうなりますか?プロキシはさらに1つ追加しますか? X-Forwarder-Forは2つありますか?ウェブサーバーはどちらを見ますか?
IIS 7以降には Dynamic IP Restrictions モジュールが含まれています。これは、リクエストに追加されるX-Forwarded-For
ヘッダーによるクライアントリクエストのフィルタリングをサポートします AWSロードバランサーを使用する場合 =:
プロキシの背後にあるWebサーバーのサポート-Webサーバーがプロキシの背後にある場合、X-Forwarded-ForヘッダーのクライアントIPアドレスを使用するようにモジュールを構成できます。
プロキシモードのサポートを有効にできます モジュールの構成ページの[プロキシ]チェックボックスをオンにして、モジュールを介してIP/CIDR範囲を許可/拒否するルールを記述します。
スタックオーバーフローでのこの質問 は、名目上同じことを尋ねています。
URL書き換えモジュール を使用して、 この回答で説明されているように、{HTTP_X_FORWARDED_FOR}
変数の周囲に条件を追加することでフィルタリングを行うことができます。
または、 他の回答 は、グローバル書き換えルールを使用してIPアドレスを設定する方法そのプロキシの前の値に戻すを説明しています。 (個人的には、そうする場合はX-Forwarded-By
ヘッダーも追加することをお勧めします。)次に、フィルター処理を実行するための任意の種類の通常のルールを記述できます。
ただし、一般的には、質問に対する vcsjones によるコメントに同意します。利用可能なオプションがある場合、プロキシでこのフィルタリングを行うことを提案しています。
ModSecurity にはトランザクションの完全な可視性があるため、この機能があります。つまり、リクエストとレスポンスの両方でヘッダーとペイロードを検査できます。この条件のルールを作成するだけです。注意点が1つありますが、ModSecurityはMicrosoftとTrustwaveによって作成されましたが、コミュニティサポートと見なされています。これが運用アプリケーションの場合、マイクロソフトサポートにサポートを依頼することはできません。これにより、ModSecurityのメーリングリストはすばらしいものになり、Trustwaveのエンジニアは非常に役に立ちます。ルールの有料サポートが必要な場合は、Trustwaveが提供するサービスと商用ルールセット(snortモデルと同様)を利用できます。
他のWebアプリケーションファイアウォール(WAF)は機能しますが、ModSecurityは無料です。