ADC

コンテンツ検査吹き出し

Citrix ADCアプライアンスがICAP要求を送信すると、ICAPサーバーはステータスコードを使用して応答ステータスを指定します。ステータスコードは、アプライアンスが実行するアクションも指定します。たとえば、ICAP応答のステータスコードがREQMOD ICAP要求に対して200OKであり、 res-hdr が設定されている場合、ICAPクライアントは受信した応答をICAPサーバーからユーザーに送信できます。ただし、 res-hdr が設定されていない場合、ICAPクライアント(Citrix ADCアプライアンス)は元の要求または適合された要求を元のバックエンドサーバーに転送できます。

しかし、特定のシナリオでは、ICAPサーバーは最終決定を下すことができません。代わりに、要求された情報のみをアプライアンスに提供し、アプライアンスはポリシー評価に基づいて決定できます。この場合、ICAPクライアントはICAP応答ステータスコードのみに依存することはできません。代わりに、受信したICAPヘッダーを確認し、ヘッダーのポリシー式を評価して、関連するアクションを適用します。

以下は、ICAPコンテンツインスペクションコールアウトが必要ないくつかのユースケースです。

  • SSHハンドシェイク要求を受信すると、ICAPクライアント(Citrix ADCアプライアンス)はアクセスされたドメインを分類し、ハンドシェイクを続行するかドロップするかを決定する場合があります。
  • アプライアンスは、サービスのHTTP要求を受信すると、ユーザーのテナントIDに基づいて外部サーバーのアクセス許可を確認する場合があります。適切なアクションを実行できます。

どちらのシナリオでも、ICAPサーバーは構成されたポリシーについて何も認識していません。代わりに、要求された情報をアプライアンスに送り返します。アプライアンスは、受信した応答情報にポリシーを適用し、関連付けられたアクションを適用します。 ICAP コンテンツ検査コールアウトが ICAP フレームワークに追加され、外部 ICAP サーバーから要求情報を返します。このコールアウトの機能は、HTTP コールアウトの動作と非常によく似ています。レスポンダーや AppFirewall などのポリシー式は、構成された ICAP サーバーに対して ICAP 要求をトリガーできます。returnExpr によって構成された要求された情報は、ICAP 応答から抽出され、要求されたモジュールに渡されます。

ICAP コンテンツ検査コールアウトが ICAP フレームワークに追加され、外部 ICAP サーバーから要求情報を返します。このコールアウトの機能は、HTTP コールアウトの動作と非常によく似ています。ICAPモジュールは、既存の高度なポリシー式を使用して、構成済みのICAPサーバーへのICAPコールアウトをトリガーできます。

コンテンツ検査コールアウトポリシー式

次のコンテンツ検査ポリシー式は、ICAP コールアウトの戻り式として使用されます。このコンテンツインスペクションコールアウト式の構文は、HTTP コールアウト式に似ています。

SYS.CI_CALLOUT(<ContentInspection callout name>).Operator

ここで、 <ContentInspection callout name> は、ICAPサーバーのプロパティを定義するICAPタイプのContentInspectionコールアウトです。そして、リクエストの送受信に使用されるICAPプロファイル to/from ICAPサーバー。 ICAP コールアウトエージェントからの応答の戻り値の型によって、応答で使用できる演算子のセットが決まります。分析する応答の一部がテキストの場合は、テキスト演算子を使用して応答を分析できます。たとえば、CONTAINS(<string>) 演算子を使用して、応答の指定された部分に特定の文字列が含まれているかどうかを確認できます。

例:

SYS.CI_CALLOUT(CI-callout). 含む( “チェックする値”)

ICAP コンテンツ検査コールアウトの設定

アプライアンスでICAPコンテンツ検査コールアウトを構成するには、次の手順を実行します。

  1. ICAP プロファイルの追加
  2. コンテンツ検査吹き出しを追加する
  3. コンテンツインスペクションの吹き出し式を設定する
  4. コンテンツ検査コールアウトの呼び出し

ICAP プロファイルの追加

コンテンツ検査吹き出しを追加する

ContentInspectioncCallout コマンドは、ICAPサーバー情報と戻り式およびそのタイプを指定します。

コマンドプロンプトで入力します。

add contentInspection callout <name> -type ICAP [-profileName <string>] (-serverName <string> | (-serverip <ip_addr|ipv6_addr> [-serverport <positive_integer>])) [-returnType <returnType>] [-resultExpr <string>] [-comment <string>]

各項目の意味は次のとおりです:

<profileName> -ICAPプロファイルの名前 <returnType> -( **BOOL | NUM | テキスト**) <resultExpr> -ICAP応答の受信時に評価される式は、ICAP.RESで始まる必要があります。

例:

X-URL-Category ICAP応答ヘッダーの値を抽出します。resultExprは次のように指定できます。

add contentInspection callout cic –type ICAP –profileName profile1 –resultExpr “ICAP.RES.HEADER("X-URL-Category")”

上記の式はX-URLの値を返します-Categoryは戻り値をチェックし、関連するアクションを適用します。

コンテンツインスペクションコールアウトとフィーチャアクションを使用したフィーチャポリシー

Citrix ADC機能がICAPを使用して外部サービスと対話する必要がある場合、その機能はコンテンツ検査コールアウトを使用できます。 CI_CALLOUT. このモードでは、機能は機能ポリシー式で CI_CALLOUT を使用して、外部 ICAP サーバーへの ICAP 要求をトリガーします。レスポンスの受信時に、ContentInspection アクションで resultExpression を指定し、ICAP レスポンスから必要な情報を抽出できます。結果は、ブール値、数値、またはテキストになります。フィーチャは、抽出された結果に基づいて、関連付けられたアクションを実行できます。CIコールアウトを使用して機能ポリシーが機能アクションを実行する方法のユースケースを見てみましょう。

使用事例 1: ビデオ最適化検出ポリシーを使用してSNIを抽出し、ドメインが「ソーシャルメディア」の場合はハンドシェイクをドロップするには

ユースケースを構成するには、次の手順を実行します。

  1. ICAP プロファイルの追加

    add icapProfile ICAPProfileName –mode REQMOD -insertHTTPRequest q{ "GET / HTTP/1.1\r\nHost: " + CLIENT.SSL.DETECTED_DOMAIN + "\r\n\r\n"}

  2. ICAPサーバーと結果式を表すコンテンツ検査コールアウトを追加して、ICAP応答からカテゴリ情報を抽出します。

    add contentInspection callout cic -type ICAP -serverName icap-server-name -icapProfile ICAPProfileName -resultExpr "ICAP.res.header("X-URL-Category")" –resultType [same as callout resultType]

  3. ビデオ検出ポリシーと式を追加して、受信したドメインのURLカテゴリ情報を取得し、カテゴリが「ソーシャルメディア」の場合はリクエストをドロップします。

    add videooptimization detectionpolicy policy_urlcat -rule " SYS.CI_CALLOUT(cic).EQ(\"Social Media\")" -action DROP

ユースケース 2: ICAP サーバーから URL カテゴリを取得し、パターンセットを使用してブロック するには

ユースケースを構成するには、次の手順を実行します。

  1. モードとHTTPリクエストを定義するICAPプロファイルを追加します。

    add icapProfile ICAPProfileName –mode REQMOD -insertHTTPRequest q{ "GET / HTTP/1.1\r\nHost: " + CLIENT.SSL.DETECTED_DOMAIN + "\r\n\r\n"}

  2. コンテンツ検査吹き出しを追加して、カテゴリ情報を取得します。

    add contentInspection callout cic -type ICAP -serverName icap-server-name -icapProfile ICAPProfileName -resultExpr "ICAP.res.header("X-URL-Category")"

  3. パターンセットを追加し、ブロックされたカテゴリパターンをそれにバインドします。

    add policy patset blocked-category bind policy patset blocked-category “gambling” –index 1 bind policy patset blocked-category “social media” –index 2 bind policy patset blocked-category “games” –index 3

  4. ビデオ最適化検出ポリシーを追加して、ICAPコールアウトアクションを呼び出します。

    add videooptimization detectionpolicy policy_urlcat –rule SYS.CI_CALLOUT(cic).CONTAINS_ANY("blocked-category")" -action DROP

コンテンツ検査吹き出し