Beschriftung zur Inhaltsprüfung

Wenn eine Citrix ADC Appliance eine ICAP-Anforderung sendet, verwendet der ICAP-Server einen Statuscode, um den Antwortstatus und die Aktion anzugeben, die vom ICAP-Client (Citrix ADC Appliance) ausgeführt werden soll. Wenn der Statuscode in einer ICAP-Antwort beispielsweise 200 OK für eine REQMOD ICAP-Anforderung ist und wenn res-hdr festgelegt ist, kann der ICAP-Client die empfangene Antwort vom ICAP-Server an den Benutzer senden. Wenn jedoch res-hdr nicht festgelegt ist, kann der ICAP-Client (Citrix ADC Appliance) die ursprüngliche oder angepasste Anforderung an den Ursprungs-Back-End-Server weiterleiten.

Aber in bestimmten Szenarien kann der ICAP-Server die endgültige Entscheidung nicht treffen. Stattdessen werden nur die angeforderten Informationen an die Appliance übermittelt, und die Appliance kann auf der Grundlage der Richtlinienbewertung entscheiden. In diesem Fall kann der ICAP-Client nicht nur vom ICAP-Antwortstatuscode abhängen. Stattdessen betrachtet er die empfangenen ICAP-Header und wertet den Richtlinienausdruck auf die Header aus und wendet die zugehörige Aktion an.

Im Folgenden finden Sie einige Anwendungsfälle, in denen ICAP Content Inspection Callout erforderlich ist:

  • Beim Empfang der SSH-Handshake-Anforderung kann der ICAP-Client (Citrix ADC Appliance) die zugegriffene Domäne klassifizieren und entscheiden, ob der Handshake fortgesetzt oder gelöscht werden soll.
  • Beim Empfangen einer HTTP-Anforderung für einen Dienst überprüft die Appliance möglicherweise die Zugriffsberechtigung für einen externen Server basierend auf der Mandanten-ID des Benutzers und führt die entsprechende Aktion aus.

In beiden Szenarien hat der ICAP-Server keine Ahnung von der konfigurierten Richtlinie basierend auf den verfügbaren Informationen, sondern sendet nur die angeforderten Informationen an die Appliance zurück. Anschließend wendet die Appliance die Richtlinie auf die empfangenen Antwortinformationen an und wendet die zugehörige Aktion an. Die Beschriftung der ICAP-Inhaltsinspektion wird dem ICAP-Framework hinzugefügt, um die Anforderungsinformationen von einem externen ICAP-Server zurückzugeben. Die Funktionalität dieses Callouts ähnelt sehr der Funktionsweise eines HTTP-Callouts. Jeder Richtlinienausdruck, z. B. Responder oder AppFirewall, kann die ICAP-Anforderung an den konfigurierten ICAP-Server auslösen. Die angeforderten Informationen, die über ReturnExpr konfiguriert wurden, werden dann aus der ICAP-Antwort extrahiert und an das angeforderte Modul übergeben

Die Beschriftung der ICAP-Inhaltsinspektion wird dem ICAP-Framework hinzugefügt, um die Anforderungsinformationen von einem externen ICAP-Server zurückzugeben. Die Funktionalität dieses Callouts ähnelt sehr der Funktionsweise eines HTTP-Callouts. Das ICAP-Modul kann eine vorhandene erweiterte Richtlinienausdrücke verwenden, um eine ICAP-Legende an den konfigurierten ICAP-Server auszulösen

Callout-Richtlinienausdruck für Inhaltsinspektion

Der folgende Ausdruck der Inhaltsüberprüfungsrichtlinie wird als Rückgabeausdruck in der ICAP-Legende verwendet. Die Syntax dieses Callout-Ausdrucks für die Inhaltsinspektion ähnelt einem HTTP-Callout-Ausdruck.

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

Dabei <ContentInspection callout name> ist die ContentInspection-Legende vom Typ ICAP, die die Eigenschaften des ICAP-Servers und des ICAP-Profils definiert, das zum Senden und Empfangen der Anforderung an den ICAP-Server verwendet werden soll. Der Rückgabetyp der Antwort vom ICAP-Callout-Agent bestimmt die Gruppe von Operatoren, die Sie für die Antwort verwenden können. Wenn der Teil der Antwort, den Sie analysieren möchten, Text ist, können Sie die Antwort mit einem Textoperator analysieren. Beispielsweise können Sie denCONTAINS(<string>) Operator verwenden, um zu überprüfen, ob der angegebene Teil der Antwort eine bestimmte Zeichenfolge enthält.

Beispiel:

SYS.CI_CALLOUT (CI-Callout) .contains (zu prüfende Wert)

Beschreibung der ICAP-Inhaltsinspektion konfigurieren

Führen Sie die folgenden Schritte aus, um die Beschriftung der ICAP-Inhaltsinspektion auf Ihrer Appliance zu konfigurieren.

  1. ICAP-Profil hinzufügen
  2. Beschriftung zur Inhaltsinspektion hinzufügen
  3. Legendenausdruck für Inhaltsinspektion festlegen
  4. Beschriftung zur Inhaltsinspektion aufrufen

ICAP-Profil hinzufügen

Beschriftung zur Inhaltsinspektion hinzufügen

Mit dem Befehl ContentInspectioncCallout werden die ICAP-Serverinformationen sowie der Rückgabeausdruck und dessen Typ angegeben.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Dabei gilt Folgendes:

<profileName> - Name des ICAP-Profils <returnType> - (BOOL) | NUM | TEXT) <resultExpr> - Ausdruck, der beim Empfang der ICAP-Antwort ausgewertet werden soll, muss mit ICAP.RES beginnen.

Beispiel:

Um den Wert der X-URL-Kategorie ICAP-Antwort-Header zu extrahieren, kann die ResultExpr wie unten dargestellt angegeben werden.

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

Der obige Ausdruck gibt den Wert der X-URL- überprüft den Rückgabewert und wenden Sie die zugeordnete Aktion.

Feature-Richtlinie mit Beschriftung zur Inhaltsinspektion und Feature-Aktion

Wenn ein Citrix ADC Feature mit einem externen Dienst über ICAP interagieren muss, kann das Feature die Beschriftung für die Inhaltsinspektion CI_CALLOUT verwenden. In diesem Modus verwendet das Feature CI_CALLOUT im Feature-Richtlinienausdruck, um die ICAP-Anforderung an den externen ICAP-Server auszulösen. Nach Erhalt der Antwort kann das Feature die ResultExpression in der ContentInspection -Aktion angeben, um die erforderlichen Informationen aus der ICAP-Antwort zu extrahieren. Das Ergebnis kann Boolean, numerisch oder Text sein. Das Feature kann dann die zugeordnete Aktion basierend auf dem extrahierten Ergebnis ausführen. Lassen Sie uns einen Anwendungsfall sehen, wie die Feature-Richtlinien, die CI Callout verwenden, um die Feature-Aktion durchzuführen.

Anwendungsfall 1: So extrahieren Sie SNI mithilfe der Richtlinie zur Videooptimierung und löschen Sie den Handshake, wenn die Domäne Social Media ist

Führen Sie die folgenden Schritte aus, um den Anwendungsfall zu konfigurieren:

  1. ICAP-Profil hinzufügen

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

  2. Fügen Sie eine Beschriftung zur Inhaltsinspektion hinzu, die den ICAP-Server und den Ergebnisausdruck darstellt, um Kategorieinformationen aus der ICAP-Antwort zu extrahieren.

    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. Fügen Sie eine Richtlinie zur Videoerkennung und -ausdruck hinzu, um die URL-Kategorieinformationen für die empfangene Domäne abzurufen und die Anforderung zu löschen, wenn die Kategorie Social Media lautet.

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

Anwendungsfall 2: So rufen Sie die URL-Kategorie vom ICAP-Server ab und blockieren Sie sie mit einem Mustersatz

Führen Sie die folgenden Schritte aus, um den Anwendungsfall zu konfigurieren:

  1. Fügen Sie ICAP-Profil hinzu, das den Modus und die HTTP-Anforderung definiert.

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

  2. Fügen Sie eine Beschriftung zur Inhaltsinspektion hinzu, um die Kategorieinformationen abzurufen.

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

  3. Fügen Sie einen Mustersatz hinzu und binden Sie das blockierte Kategoriemuster daran.

    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. Fügen Sie eine Richtlinie zur Erkennung der Videooptimierung hinzu, um die ICAP-Legende aufzurufen und Maßnahmen zu ergreifen.

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