F5 iRules X-Forwarded-For フィルタリングを移行する RELIANOID WAF/IPDS

カテゴリを表示

F5 iRules X-Forwarded-For フィルタリングを移行する RELIANOID WAF/IPDS

所要時間

概要 #

この記事では、リクエストをブロックするために使用される F5 BIG-IP iRule を移行する方法について説明します。 X-Forwarded-For HTTPヘッダーを RELIANOID 統合された WAF/IPDS(侵入防止・検知システム) ModSecurity/OWASPルールセットに対応しています。

オリジナルのiRuleは、 X-Forwarded-For ヘッダーとHTTPを返す 410 Gone IPアドレスのリストと一致するものが見つかった場合。

オリジナルF5 iRule #

when HTTP_REQUEST { if { [HTTP::header values "X-Forwarded-For"] contains "31.192.108.123" || [HTTP::header values "X-Forwarded-For"] contains "65.103.109.21" || [HTTP::header values "X-Forwarded-For"] contains "193.90.12.87" || [HTTP::header values "X-Forwarded-For"] contains "208.100.0.117" || [HTTP::header values "X-Forwarded-For"] contains "100.113.150.102" || [HTTP::header values "X-Forwarded-For"] contains "176.10.99.200" || [HTTP::header values "X-Forwarded-For"] には "163.172.143.114" が含まれています || [HTTP::header values "X-Forwarded-For"] には "163.172.209.46" が含まれています || [HTTP::header values "X-Forwarded-For"] には "188.138.9.49" が含まれています || [HTTP::header values "X-Forwarded-For"] には "217.23.13.129" が含まれています || [HTTP::header values "X-Forwarded-For"] には "162.247.72.27" が含まれています || [HTTP::header values "X-Forwarded-For"] には "194.67.208.57" が含まれています || [HTTP::header values "X-Forwarded-For"] contains "41.216.186.114" } { HTTP::respond 410 } }

RELIANOID 移行アプローチ #

In RELIANOIDこのロジックは、以下の方法で実装できます。

  • WAF/IPDSモジュール
  • ModSecurity/OWASPカスタムルール
  • 外部IPマッチファイル

この方法は、スクリプト内に複数のIPアドレス比較を埋め込むよりも、拡張性が高く、メンテナンスも容易です。

おすすめ RELIANOID アーキテクチャ #

移行には以下が使用されます。

  • X-Forwarded-For HTTPヘッダーの検査
  • IPアドレスを含む外部ブラックリストファイル
  • ModSecurity/OWASPルールセット演算子を使用した動的IPマッチング

Advantages:

  • より簡単なIP管理
  • 中央集中型ブラックリスト
  • IPアドレスの変更ごとにルールを編集する必要はありません
  • スケーラビリティの向上

WAFルール設定 #

以下の ModSecurity/OWASP ルールは、WAF/IPDS モジュール内で Raw モードに設定できます。

SecRule REQUEST_HEADERS:X-Forwarded-For "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data" "\ id:1001,\ msg:'Custom Match',\ phase:1,\ deny,\ nolog"

ルールの仕組み #

このルールは以下の動作を実行します。
REQUEST_HEADERS:X-Forwarded-ForX-Forwarded-For HTTPヘッダーを読み取ります
@ipMatchFromFileヘッダー値を外部ファイルと比較します。
xff_blacklist.txtブロックされたIPアドレスのリストが含まれています
phase:1リクエストヘッダー処理中に実行されます
deny: 一致するリクエストをブロックします
nolog: 一致したリクエストのログ記録を無効にします

ブラックリストファイル設定 #

ブラックリストファイルを作成します。

/usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data

内容例:

31.192.108.123
65.103.109.21
193.90.12.87
208.100.0.117
100.113.150.102
176.10.99.200
163.172.143.114
163.172.209.46
188.138.9.49
217.23.13.129
162.247.72.27
194.67.208.57
41.216.186.114

ウェブUI経由でルールを設定する #

IPデータリストを作成する #

セクションに新しい WAF データ ファイルを作成します IPDS > WAF > ファイル IPリストの内容を含む:

relanoid ipds waf ブラックリストデータファイル

ルール条件を作成する #

セクションで新しい WAF ルールセットを作成します IPDS > WAF > ルールセット マッチIP条件を含む:

relanoid ipds waf xff ブラックリスト ルールファーム有効化

ファームでルールを有効にする #

ルールセットを有効にし、必要な農場に割り当ててください。

relanoid ipds waf xff ブラックリスト ルールファーム有効化

重要な運用上の注意事項 #

ブラックリストファイルを変更するには、以下の要件を満たす必要があります。

  • WAFルールの停止
  • WAFルールを再開します

これによりルールが再読み込みされ、更新されたIPリストが適用されます。これは、影響を受けるファームで検査されるWAFルールにのみ影響し、ロードバランサーを通過する実際のトラフィックには影響しません。

検証とテスト #

ルールの動作を検証するには、以下のコマンドを使用できます。

curl -k -H "X-Forwarded-For: IP_ADDRESS" https://LB_VIP -v

例:

curl -k -H "X-Forwarded-For: 31.192.108.123" https://192.168.1.100 -v

期待される結果 #

IPアドレスがブラックリストと一致する場合:

  • WAFによりリクエストが拒否されました
  • HTTPエラー応答が返されました

オプション機能強化:HTTP 410を返す #

元のF5 iRuleは明示的に以下を返します。

HTTP 410 Gone

デフォルトでは、ModSecurity/OWASPルールセットはアクションを拒否し、HTTPを返す可能性があります。 403 Forbidden.

厳密な動作の均一性が求められる場合、ルールは以下のように拡張できます。 410.

例:

SecRule REQUEST_HEADERS:X-Forwarded-For "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/xff_blacklist.txt" "\ id:1001,\ msg:'Custom Match',\ phase:1,\ deny,\ status:410,\ nolog"

トラブルシューティング #

ルールがトリガーされない #

確認してください:

  • ファームでWAF/IPDSが有効になっています
  • ルールは正しく読み込まれました
  • リクエストにヘッダーが存在します
  • ファイル変更後にルールが再起動されました

リクエストはブロックされませんでした #

チェック:

  • ファイル内のIPフォーマット
  • 余分なスペースや隠し文字はありません
  • 正しいファイル権限

ヘッダーがありません #

一部のアップストリームプロキシは送信しない可能性があります X-Forwarded-For検証方法:

curl -k -H "X-Forwarded-For: 1.2.3.4" https://LB_VIP -v

トラブルシューティングにはログ記録が必要です #

一時的に削除する:

ノーログ

これにより、デバッグ目的でModSecurity/OWASPルールセットのログ記録が可能になります。

ベストプラクティス #

  • ブラックリストファイルを一元的に管理する
  • ブラックリストの更新には自動化を活用する
  • ブロックされたIPアドレスを定期的に確認する
  • WAFルールファイルを適切な権限で保護する
  • 拡張性を考慮すると、ハードコードされたルールよりも外部ファイルを優先する。

製品概要 #

F5 iRules の実行 X-Forwarded-For フィルタリングは効率的に移行できます RELIANOID 統合されたWAF/IPDSモジュールとModSecurityルールを使用します。

このアプローチは以下を実現します:

  • 集中型IP管理
  • スケーラビリティの向上
  • メンテナンスが容易
  • ネイティブWAF統合
  • スクリプト作成の複雑さを軽減

📄 この文書をPDF形式でダウンロードする #

    EMAIL: *