このセクションでは、不正な IP アドレスからの接続試行を拒否するようにネットワーク セキュリティ ポリシーを構成する手順について説明します。これにより、不正な IP アドレスから送信された TCP SYN パケットが NSX Advanced Load Balancer でドロップされ、接続試行がタイムアウトになります。このセクションでは、NSX Advanced Load Balancer ユーザー インターフェイスと CLI を使用してネットワーク セキュリティ ポリシーを構成する手順について説明します。また、DataScript を使用した IP レピュテーション チェックについても説明します。

NSX Advanced Load Balancer ユーザー インターフェイスの使用

  • [アプリケーション] > [仮想サービス] に移動して、[編集] をクリックします。

  • [仮想サービスの編集] ポップアップ ウィンドウで [ポリシー] をクリックします。

  • [ネットワーク セキュリティ][IP レピュテーション DB] ドロップダウン メニューから、[System-IP reputation-Webroot-DB] を選択します。

  • [+] アイコンをクリックしてルールを作成するか、既存のルールを選択します。

  • [新規一致を追加] ドロップダウン メニューから [IP レピュテーション] を選択し、要求をフィルタリングするための一致ルールを作成します。

  • [IP レピュテーション タイプ] ドロップダウン メニューからオプションを選択します。

  • IP レピュテーションが検出される要求に対して、[アクション][許可][拒否]、または [レート制限] に設定します。

  • [ルールの保存] をクリックします。

NSX Advanced Load Balancer CLI の使用

NSX Advanced Load Balancer の仮想サービスは、ネットワーク セキュリティ ポリシー(レイヤー 4)で構成され、悪意のある IP アドレスに対して IP レピュテーション サービスがブロックまたは必要なアクションを実行できるようにします。仮想サービスは、リストされた不正な IP アドレスからの接続を拒否するように構成できます。

以下は、ネットワーク セキュリティ ポリシーのパケット フローを示します。

  1. クライアントが仮想サービスに接続すると、構成されたすべてのネットワーク セキュリティ ポリシーが評価されます。

  2. ポリシーに対応するアクションは、次の条件が満たされた場合に実行されます。

    1. ネットワーク セキュリティ ポリシーに一致する場合(クライアントの IP アドレスが IP レピュテーション データベースに存在する場合)。

    2. 構成された一致ターゲットがクライアント IP アドレスに対してリストされた IP レピュテーション タイプと一致する。

[admin:controller]: > configure albservicesconfig
Updating an existing object. Currently, the object is:
+-----------------------------------------------+------------------------------------+
| Field                                         | Value                              |
+-----------------------------------------------+------------------------------------+
| uuid                                          | default                            |
| portal_url                                    | https://portal.avinetworks.com     |
| polling_interval                              | 10                                 |
| asset_contact                                 |                                    |
|   name                                        | John Doe                           |
|   email                                       | xxxxxxxxx                          |
|   phone                                       | (xxxxxx)                           |
| feature_opt_in_status                         |                                    |
|   enable_auto_download_waf_signatures         | False                              |
|   enable_waf_signatures_notifications         | True                               |
|   enable_auto_case_creation_on_system_failure | False                              |
|   enable_auto_case_creation_on_se_failure     | False                              |
|   enable_ip_reputation                        | False                              |
| proactive_support_defaults                    |                                    |
|   attach_tech_support                         | True                               |
|   case_severity                               | Severity 5                         |
|   attach_core_dump                            | False                              |
| use_split_proxy                               | False                              |
| ip_reputation_config                          |                                    |
|   ip_reputation_sync_interval                 | 60 min                             |
|   ip_reputation_file_object_expiry_duration   | 3 days                             |
+-----------------------------------------------+------------------------------------+

デフォルトの同期間隔は 60 分で、2 ~ 60 分の任意の値に変更できます。同期間隔を変更するには、ip_reputation_sync_interval オプションを使用します。

[admin:controller]: albservicesconfig> ip_reputation_config [admin:controller]: albservicesconfig:ip_reputation_config> ip_reputation_sync_interval 10
注:

NSX Advanced Load Balancer Controller で IP レピュテーション サービスが有効になっている場合、デフォルトで Webroot の IP レピュテーション データベースを使用できます。

HTTP ポリシーでの IP レピュテーション

IP レピュテーション データベースは、[HTTP セキュリティ] ポリシーと [HTTP 要求] ポリシーで使用できます。これは、ネットワーク セキュリティ ポリシーの構成と同じ方法で構成することができます。

DataScript での IP レピュテーション

L7 DataScript の IP レピュテーション チェックには DB を使用できます。これには、Lua 関数を使用します。

is_good, reputation_type = avi.utils.get_ip_reputation(ip_addr)

  • is_good の最初の戻り値は、指定された IP アドレスが良好なレピュテーションであるかどうかを示す true または false です。

  • 2 番目の戻り値は IP レピュテーション タイプのビットマップで、is_good が false の場合にのみ有効です。たとえば、値 1 はスパムの送信元(ビット 0 セット)を示し、値 17 はスパムの送信元とスキャナ(ビット 0 および 4 セット)を示します。

詳細については、IP レピュテーション タイプの IP レピュテーション テーブルを参照してください。

関数は、VSDataScriptSet 用に構成された IP レピュテーション データベースを使用します。

注:

API または CLI を使用して、IPReputationDB を使用するように VSDataScriptSet を構成できます。

Lua 関数は、IPv4 と IPv6 の両方のアドレスを受け入れます。ただし、IP レピュテーション データベースには現在 IPv4 アドレスの情報のみが含まれているため、IPv6 アドレスの場合は常に true が返されます。

ip_addr パラメータの形式は、avi.vs.client_ip() によって返されるものと想定されます。これは、たとえば 1.2.3.4 などの表示形式です。

message VSDataScriptSet {
  ...
  optional string ip_reputation_db_uuid = 58 [
    (refers_to) = "IPReputationDB",
    ...
  ]
  ...
}

構成のワークフロー

スクリプトが avi.utils.get_ip_reputation(ip_addr) 関数を使用する場合、VSDataScriptSet レベルで IPReputationDB を構成する必要があります。