ADC

Callout zur Inhaltsüberprüfung

Wenn eine NetScaler-Appliance eine ICAP-Anforderung sendet, verwendet der ICAP-Server einen Statuscode, um den Antwortstatus anzugeben. Der Statuscode gibt auch die von der Appliance zu ergreifende Aktion an. Wenn beispielsweise der Statuscode in einer ICAP-Antwort für eine REQMOD ICAP-Anforderung 200 OK ist und wenn 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 (NetScaler-Appliance) die ursprüngliche oder angepasste Anforderung an den ursprünglichen Back-End-Server weiterleiten.

In bestimmten Szenarien kann der ICAP-Server die endgültige Entscheidung jedoch nicht treffen. Stattdessen werden der Appliance nur die angeforderten Informationen zur Verfügung gestellt, und die Appliance kann basierend auf der Richtlinienbewertung entscheiden. In diesem Fall kann sich der ICAP-Client nicht nur auf den Statuscode der ICAP-Antwort verlassen, stattdessen betrachtet er die empfangenen ICAP-Header und wertet den Richtlinienausdruck in den Headern aus und wendet die zugehörige Aktion an.

Im Folgenden sind einige Anwendungsfälle aufgeführt, in denen der Callout ICAP Content Inspection erforderlich ist:

  • Nach Erhalt der SSH-Handshake-Anforderung klassifiziert der ICAP-Client (NetScaler-Appliance) möglicherweise die Domäne, auf die zugegriffen wird, und entscheidet, ob der Handshake fortgesetzt oder verlegt werden soll.
  • Beim Erhalt 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. Die entsprechenden Maßnahmen können ergriffen werden.

In beiden Szenarien hat der ICAP-Server keine Ahnung von der konfigurierten Richtlinie, sondern sendet einfach die angeforderten Informationen an die Appliance zurück. Die Appliance wendet dann die Richtlinie auf die empfangenen Antwortinformationen an und wendet die zugehörige Aktion an. Das ICAP-Callout zur Inhaltsinspektion wird dem ICAP-Framework hinzugefügt, um die Anforderungsinformationen von einem externen ICAP-Server zurückzugeben. Die Funktionalität dieses Callouts ist der Funktionsweise eines HTTP-Callouts sehr ähnlich. Jeder Richtlinienausdruck, z. B. Responder oder AppFirewall, kann die ICAP-Anforderung an den konfigurierten ICAP-Server auslösen. Die angeforderten Informationen, konfiguriert durch ReturneXpr, werden dann aus der ICAP-Antwort extrahiert und an das angeforderte Modul weitergegeben

Das ICAP-Callout zur Inhaltsinspektion wird dem ICAP-Framework hinzugefügt, um die Anforderungsinformationen von einem externen ICAP-Server zurückzugeben. Die Funktionalität dieses Callouts ist der Funktionsweise eines HTTP-Callouts sehr ähnlich. Das ICAP-Modul kann einen vorhandenen erweiterten Richtlinienausdruck verwenden, der verwendet werden kann, um einen ICAP-Callout für den konfigurierten ICAP-Server auszulösen.

Ausdruck der Callout-Richtlinie zur Inhaltsüberprüfung

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

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

Wo, <ContentInspection callout name> ist das ContentInspection-Callout vom Typ ICAP, das die Eigenschaften des ICAP-Servers definiert. Und das ICAP-Profil, das zum Senden und Empfangen der Anfrage an/vom ICAP-Server verwendet werden soll. Der Rückgabetyp der Antwort des ICAP-Callout-Agenten bestimmt den Satz 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 einen Textoperator verwenden, um die Antwort zu analysieren. Sie können den CONTAINS(<string>) Operator beispielsweise verwenden, um zu überprüfen, ob der angegebene Teil der Antwort eine bestimmte Zeichenfolge enthält.

Beispiel:

SYS.CI_CALLOUT (CI-Callout). Enthält (“zu prüfenden Wert”)

Konfigurieren des ICAP-Inhaltsinspektions-Callouts

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

  1. ICAP-Profil hinzufügen
  2. Callout zur Inhaltsüberprüfung hinzufügen
  3. Callout-Ausdruck für Inhaltsinspektion festlegen
  4. Callout zur Inhaltsinspektion aufrufen

ICAP-Profil hinzufügen

Callout zur Inhaltsüberprüfung hinzufügen

Der Befehl ContentInspectionCCallout gibt die ICAP-Serverinformationen und den Rückgabeausdruck und dessen Typ an.

Geben Sie in der Befehlszeile 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>]

Es gilt:

<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-Response-Headers der X-URL-Kategorie, der ResultExpr kann wie folgt angegeben werden.

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

Der vorhergehende Ausdruck gibt den Wert von X-URL-Kategorie zurück, prüft den Rückgabewert und wendet die zugehörige Aktion an.

Feature-Richtlinie mithilfe von Inhaltsinspektion, Callout

Wenn eine NetScaler-Funktion mithilfe von ICAP mit einem externen Dienst interagieren muss, kann die Funktion das Callout zur Inhaltsinspektion CI_CALLOUT verwenden. In diesem Modus verwendet die Funktion CI_CALLOUT im Feature-Richtlinienausdruck, um die ICAP-Anforderung an den externen ICAP-Server auszulösen. Nach Erhalt der Antwort kann das Feature den ResultExpression in der Aktion ContentInspection angeben, um die erforderlichen Informationen aus der ICAP-Antwort zu extrahieren. Das Ergebnis kann boolesch, numerisch oder Text sein. Das Feature kann dann die zugehörige Aktion basierend auf dem extrahierten Ergebnis ausführen. Sehen wir uns einen Anwendungsfall an, wie die Feature-Richtlinien CI Callout verwenden, um die Feature-Aktion auszuführen.

Anwendungsfall 1: So extrahieren Sie SNI mithilfe der Erkennungsrichtlinie zur Videooptimierung und lassen Sie den Handshake fallen, 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 den Callout zur Inhaltsüberprüfung hinzu, der 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 Videoerkennungsrichtlinie und einen Ausdruck hinzu, um die URL-Kategorie-Informationen für die empfangene Domäne abzurufen und die Anforderung zu löschen, wenn die Kategorie “Social Media” lautet.

    add videooptimization detectionpolicy_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 mithilfe eines Mustersatzes

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-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 einen Callout zur Inhaltsüberprüfung hinzu, um die Kategorie-Informationen 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 Kategorie-Muster 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 von Videooptimierungen hinzu, um die ICAP-Callout-Aktion aufzurufen.

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

Callout zur Inhaltsüberprüfung