ADC

Beschriftung zur Inhaltsprüfung

Wenn eine Citrix ADC Appliance eine ICAP-Anfrage sendet, verwendet der ICAP-Server einen Statuscode, um den Antwortstatus anzugeben. Der Statuscode gibt auch die von der Appliance zu ergreifende Aktion an. Wenn der Statuscode in einer ICAP-Antwort beispielsweise für eine REQMOD-ICAP-Anfrage 200 OK ist und festgelegt res-hdr ist, kann der ICAP-Client die empfangene Antwort vom ICAP-Server an den Benutzer senden. Wenn der jedoch nicht festgelegt res-hdr ist, kann der ICAP-Client (Citrix ADC Appliance) die ursprüngliche oder angepasste Anfrage an den Origin-Backend-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 sich der ICAP-Client nicht nur auf den ICAP-Antwortstatuscode verlassen, sondern betrachtet die empfangenen ICAP-Header und wertet den Richtlinienausdruck auf den Headern aus und wendet die zugehörige Aktion an.

Im Folgenden finden Sie einige Anwendungsfälle, in denen die ICAP-Beschriftung zur Inspektion von Inhalten erforderlich ist:

  • Nach Erhalt der SSH-Handshake-Anfrage kann der ICAP-Client (Citrix ADC Appliance) die aufgerufene Domäne klassifizieren und entscheiden, ob er den Handshake fortsetzt oder fallen lässt.
  • Beim Empfang einer HTTP-Anfrage für einen Dienst überprüft die Appliance möglicherweise die Zugriffsberechtigung für einen externen Server basierend auf der Mandanten-ID des Benutzers. Die entsprechenden Maßnahmen können ergriffen werden.

In beiden Szenarien hat der ICAP-Server keine Ahnung von der konfigurierten Richtlinie, sondern sendet die angeforderten Informationen einfach 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 Callout 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 Callout 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 einen vorhandenen erweiterten Richtlinienausdruck verwenden, der verwendet werden kann, um ein ICAP-Callout an den konfigurierten ICAP-Server auszulösen

Callout-Richtlinienausdruck für Inhaltsinspektion

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

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

Wo <ContentInspection callout name> ist die ContentInspection-Beschreibung vom Typ ICAP, die die Eigenschaften des ICAP-Servers definiert. Und das ICAP-Profil, das zum Senden und Empfangen der Anfrage an/vom ICAP-Server verwendet wird. 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 den Operator CONTAINS(<string>) verwenden, um zu überprüfen, ob der angegebene Teil der Antwort eine bestimmte Zeichenfolge enthält.

Beispiel:

SYS.CI_CALLOUT(CI-callout). Contains(“value to be checked”)

Beschreibung der ICAP-Inhaltsinspektion konfigurieren

Führen Sie die folgenden Schritte aus, um den ICAP-Content Inspection Callout auf Ihrer Appliance zu konfigurieren.

  1. ICAP-Profil hinzufügen
  2. Beschriftung zur Inhaltsinspektion hinzufügen
  3. set content inspection callout expression
  4. Beschriftung zur Inhaltsinspektion aufrufen

ICAP-Profil hinzufügen

Beschriftung zur Inhaltsinspektion hinzufügen

Der Befehl contentInspectionCallout gibt die ICAP-Serverinformationen und den Rückgabeausdruck und seinen Typ an.

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>]

Wobei:

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

Beispiel:

Extrahieren Sie den Wert des ICAP-Antwortheaders der X-URL-Kategorie. resultExpr kann wie folgt angegeben werden.

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

Der vorangehende Ausdruck gibt den Wert von X-URL-Kategorie gibt den Rückgabewert überprüft und die zugehörige Aktion angewendet.

Feature-Richtlinie mit Beschriftung zur Inhaltsinspektion und Feature-Aktion

Wenn eine Citrix ADC Funktion mit einem externen Dienst über ICAP interagieren muss, kann die Funktion die Inhaltsübersicht 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 boolescher, numerischer oder Text sein. Das Feature kann dann die zugeordnete Aktion basierend auf dem extrahierten Ergebnis ausführen. Sehen wir uns einen Anwendungsfall an, wie die Feature-Richtlinien, die CI-Callout verwenden, die Feature-Aktion ausführen.

Anwendungsfall 1: Extrahieren von SNI mithilfe der Erkennungsrichtlinie zur Videooptimierung und zum Löschen des Handshakes, 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 die Inhaltsübersicht hinzu, die den ICAP-Server darstellt, und den Ergebnisausdruck, 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 und einen Ausdruck für die Videoerkennung hinzu, um die URL-Kategorieinformationen für die empfangene Domain abzurufen und die Anfrage zu löschen, wenn die Kategorie “Social Media” ist.

    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 ein ICAP-Profil hinzu, das den Modus und die HTTP-Request 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 Videooptimierung hinzu, um die ICAP-Callout-Aktion aufzurufen.

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

Beschriftung zur Inhaltsprüfung