Konfigurieren eines klassischen Ausdrucks

Klassische Ausdrücke bestehen aus den folgenden Ausdruckselementen, die in hierarchischer Reihenfolge aufgeführt sind:

  • Durchflussart. Gibt an, ob die Verbindung ein- oder ausgehend ist. Der Flow-Typ ist REQ für eingehende Verbindungen und RES für ausgehende Verbindungen.
  • Protokoll. Gibt das Protokoll an, dessen Optionen HTTP, SSL, TCP und IP sind.
  • Qualifizierer. Das Protokollattribut, das vom ausgewählten Protokoll abhängt.
  • Vermittlung. Der Typ des Tests, den Sie für die Verbindungsdaten durchführen möchten. Ihre Wahl des Betreibers hängt von den Verbindungsinformationen ab, die Sie testen. Wenn die Verbindungsinformationen, die Sie testen, Text sind, verwenden Sie Text-Operatoren. Wenn es sich um eine Zahl handelt, verwenden Sie standardmäßige numerische Operatoren.
  • Wert. Die Zeichenfolge oder Zahl, mit der das Verbindungsdatenelement (definiert durch den Flusstyp, das Protokoll und die Qualifikation) getestet wird. Der Wert kann entweder ein Literal oder ein Ausdruck sein. Das Literal oder der Ausdruck muss mit dem Datentyp des Verbindungsdatenelements übereinstimmen.

In einer Richtlinie können klassische Ausdrücke kombiniert werden, um komplexere Ausdrücke mit booleschen und vergleichenden Operatoren zu erstellen.

Ausdruckselemente werden von links nach rechts analysiert. Das Element ganz links ist entweder REQ oder RES und bezeichnet eine Anfrage bzw. eine Antwort. Aufeinanderfolgende Begriffe definieren einen bestimmten Verbindungstyp und ein bestimmtes Attribut für diesen Verbindungstyp. Jeder Term ist durch einen Zeitraum von einem vorhergehenden oder folgenden Term getrennt. Argumente werden in Klammern angezeigt und folgen dem Ausdruckselement, an das sie übergeben werden.

Das folgende klassische Ausdrucks-Fragment gibt die Client-Quell-IP für eine eingehende Verbindung zurück.

REQ.IP.SOURCEIP

Das Beispiel identifiziert eine IP-Adresse in einer Anforderung. Das Ausdruckselement SOURCEIP gibt die Quell-IP-Adresse an. Dieses Ausdrucksfragment ist möglicherweise nicht von selbst nützlich. Sie können ein zusätzliches Ausdruckselement, einen Operator, verwenden, um zu bestimmen, ob der zurückgegebene Wert bestimmte Kriterien erfüllt. Der folgende Ausdruck testet, ob sich die Client-IP im Subnetz 200.0.0.0/8 befindet und gibt einen booleschen TRUE oder FALSE zurück:

REQ.IP.SOURCEIP == 200.0.0.0 -netmask 255.0.0.0

Erstellen eines klassischen Richtlinienausdrucks mit der CLI

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um die Parameter festzulegen und die Konfiguration zu überprüfen:

-  set appfw policy <name> -rule <expression> -action <action>  

-  show appfw policy <name>  

Beispiel

> set appfw policy GenericApplicationSSL_ 'HTTP.REQ.METHOD.EQ("get")' APPFW_DROP
 Done
> show appfw policy GenericApplicationSSL_
        Name: GenericApplicationSSL_    Rule: HTTP.REQ.METHOD.EQ("get")
        Profile: APPFW_DROP     Hits: 0
        Undef Hits: 0
        Policy is bound to following entities
        1) REQ VSERVER app_u_GenericApplicationSSLPortalPages   PRIORITY : 100
 Done

Hinzufügen eines Ausdrucks für eine klassische Richtlinie mit der GUI

Diese Prozedur dokumentiert das Dialogfeld Ausdruck hinzufügen. Abhängig von der Funktion, für die Sie eine Richtlinie konfigurieren, kann die Route, über die Sie zu diesem Dialogfeld gelangen, unterschiedlich sein.

  1. Führen Sie die Schritte 1-4 in “So erstellen Sie eine Richtlinie mit klassischen Ausdrücken mit der GUI”.

  2. Klicken Sie im Dialogfeld Ausdruck hinzufügen unter Ausdruckstyp auf den Ausdruckstyp, den Sie erstellen möchten.

  3. Klicken Sie unter Flow-Typ auf den Pfeil nach unten, und wählen Sie einen Flow-Typ aus.

    Der Flow-Typ ist in der Regel REQ oder RES. Die Option REQ gibt an, dass die Richtlinie für alle eingehenden Verbindungen oder Anforderungen gilt. Die Option RES wendet die Richtlinie auf alle ausgehenden Verbindungen oder Antworten an.

    Für Richtlinien der Anwendungsfirewall sollten Sie den Ausdruckstyp auf Allgemeiner Ausdruck und den Flow-Typ auf REQ festlegen. Die Anwendungsfirewall behandelt jede Anforderung und Antwort als einzelne gepaarte Entität. Daher beginnen alle Richtlinien der Anwendungsfirewall mit REQ.

  4. Klicken Sie unter Protokoll auf den Pfeil nach unten, und wählen Sie das Protokoll aus, das Sie für den Richtlinienausdruck verwenden möchten. Ihre Auswahlmöglichkeiten:

    • HTTP. Bewertet HTTP-Anforderungen, die an einen Webserver gesendet werden. Bei klassischen Ausdrücken enthält HTTP HTTPS-Anforderungen.
    • SSL. Bewertet SSL-Daten, die der aktuellen Verbindung zugeordnet sind.
    • TCP. Bewertet die TCP-Daten, die der aktuellen Verbindung zugeordnet sind.
    • IP. Bewertet die IP-Adressen, die der aktuellen Verbindung zugeordnet sind.
  5. Klicken Sie unter Qualifier auf den Pfeil nach unten, und wählen Sie einen Qualifier für Ihre Richtlinie aus.

    Der Qualifier definiert den Typ der auszuwertenden Daten. Die angezeigte Liste der Kriterien hängt davon ab, welches Protokoll Sie in Schritt 4 ausgewählt haben.

    Für das HTTP-Protokoll werden folgende Optionen angezeigt:

    • METHOD. Filtert HTTP-Anforderungen, die eine bestimmte HTTP-Methode verwenden.
    • URL. Filtert HTTP-Anforderungen für eine bestimmte Webseite.
    • URLQUERY. Filtert HTTP-Anforderungen, die eine bestimmte Abfragezeichenfolge enthalten.
    • VERSION. Filtert HTTP-Anforderungen auf der Grundlage der angegebenen HTTP-Protokollversion.
    • HEADER. Filtert auf der Basis eines bestimmten HTTP-Headers.
    • URLLEN. Filtert auf der Grundlage der Länge der URL.
    • URLQUERY. Filtert auf Basis des Query-Teils der URL.
    • URLQUERYLEN. Filtert nur anhand der Länge des Abfrageabschnitts der URL.
  6. Klicken Sie unter Operator auf den Pfeil nach unten, und wählen Sie den Operator für Ihren Richtlinienausdruck aus. Einige gängige Operatoren sind:

    Operator Beschreibung
    == Entspricht dem angegebenen Wert genau oder ist genau gleich dem angegebenen Wert.
    != Entspricht nicht dem angegebenen Wert.
    > Ist größer als der angegebene Wert.
    < Ist kleiner als der angegebene Wert.
    >= Ist größer oder gleich dem angegebenen Wert.
    <= Ist kleiner oder gleich dem angegebenen Wert.
    CONTAINS Enthält den angegebenen Wert.
    CONTENTS Gibt den Inhalt der angegebenen Header-, URL- oder URL-Abfrage zurück.
    EXISTS Der angegebene Header oder die angegebene Abfrage ist vorhanden.
    NOTCONTAINS Enthält nicht den angegebenen Wert.
    NOTEXISTS Der angegebene Header oder die angegebene Abfrage ist nicht vorhanden.
  7. Wenn ein Textfeld Wert angezeigt wird, geben Sie gegebenenfalls eine Zeichenfolge oder einen numerischen Wert ein. Wählen Sie z. B. REQ als Flow-Typ, HTTP als Protokoll und HEADER als Qualifizierer, und geben Sie dann den Wert der Kopfzeilenzeichenfolge in das Feld Wert und den Headertyp ein, für den Sie der Zeichenfolge im Textfeld Kopfzeilenname entsprechen möchten.

  8. Klicken Sie auf OK.

  9. Klicken Sie auf Hinzufügen, um einen zusammengesetzten Ausdruck zu erstellen. Beachten Sie, dass die Art der Zusammensetzung, die durchgeführt wird, von den folgenden Optionen im Dialogfeld Richtlinie erstellen abhängt:

    • Entsprechung eines beliebigen Ausdrucks. Die Ausdrücke befinden sich in einer logischen OR-Beziehung.
    • Alle Ausdrücke übereinstimmen. Die Ausdrücke befinden sich in einer logischen UND-Beziehung.
    • Tabellarische Ausdrücke. Klicken Sie auf die Schaltflächen UND, OR und Klammern, um die Auswertung zu steuern.
    • Erweiterte Freiform. Geben Sie die Ausdruckskomponenten direkt in das Feld Ausdruck ein, und klicken Sie auf die Schaltflächen UND, OR und Klammern, um die Auswertung zu steuern.