Configurer une expression classique

Les expressions classiques sont constituées des éléments d’expression suivants, répertoriés dans l’ordre hiérarchique :

  • Type de flux. Spécifie si la connexion est entrante ou sortante. Le type de flux est REQ pour les connexions entrantes et RES pour les connexions sortantes.
  • Protocole. Spécifie le protocole, dont les choix sont HTTP, SSL, TCP et IP.
  • Qualificatif. L’attribut protocol, qui dépend du protocole sélectionné.
  • Opérateur. Type de test que vous souhaitez effectuer sur les données de connexion. Votre choix d’opérateur dépend des informations de connexion que vous testez. Si les informations de connexion que vous testez sont du texte, vous utilisez des opérateurs de texte. S’il s’agit d’un nombre, vous utilisez des opérateurs numériques standard.
  • Valeur. Chaîne ou numéro par rapport auquel l’élément de données de connexion (défini par le type de flux, le protocole et le qualificatif) est testé. La valeur peut être un littéral ou une expression. Le littéral ou l’expression doit correspondre au type de données de l’élément de données de connexion.

Dans une stratégie, les expressions classiques peuvent être combinées pour créer des expressions plus complexes à l’aide d’opérateurs booléens et comparatifs.

Les éléments d’expression sont analysés de gauche à droite. L’élément le plus à gauche est REQ ou RES et désigne respectivement une demande ou une réponse. Les termes successifs définissent un type de connexion spécifique et un attribut spécifique pour ce type de connexion. Chaque terme est séparé de tout terme précédent ou suivant par une période. Les arguments apparaissent entre parenthèses et suivent l’élément d’expression auquel ils sont passés.

Le fragment d’expression classique suivant renvoie l’adresse IP source du client pour une connexion entrante.

REQ.IP.SOURCEIP

L’exemple identifie une adresse IP dans une requête. L’élément d’expression SOURCEIP désigne l’adresse IP source. Ce fragment d’expression peut ne pas être utile en soi. Vous pouvez utiliser un élément d’expression supplémentaire, un opérateur, pour déterminer si la valeur renvoyée répond à des critères spécifiques. L’expression suivante teste si l’adresse IP du client se trouve dans le sous-réseau 200.0.0.0/8 et renvoie une valeur booléenne TRUE ou FALSE :

REQ.IP.SOURCEIP == 200.0.0.0 -netmask 255.0.0.0

Créer une expression de stratégie classique à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour définir les paramètres et vérifier la configuration :

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

-  show appfw policy <name>  

Exemple

> 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

Ajouter une expression pour une stratégie classique à l’aide de l’interface graphique

Cette procédure documente la boîte de dialogue Ajouter une expression. Selon la fonctionnalité pour laquelle vous configurez une stratégie, l’itinéraire par lequel vous arrivez à cette boîte de dialogue peut être différent.

  1. Effectuez les étapes 1 à 4 dans « [Pour créer une stratégie avec des expressions classiques à l’aide de l’interface graphique.

  2. Dans la boîte de dialogue Ajouter Expression, dans Type d’expression, cliquez sur le type d’expression à créer.

  3. Sous Type de flux, cliquez sur la flèche vers le bas et choisissez un type de flux.

    Le type de flux est généralement REQ ou RES. L’option REQ spécifie que la stratégie s’applique à toutes les connexions ou demandes entrantes. L’option RES applique la stratégie à toutes les connexions ou réponses sortantes.

    Pour les stratégies de pare-feu d’application, vous devez laisser le type d’expression défini sur Expression générale et le type de flux défini sur REQ. Le pare-feu d’application traite chaque demande et réponse comme une seule entité appariée, de sorte que toutes les stratégies de pare-feu d’application commencent par REQ.

  4. Sous Protocole, cliquez sur la flèche vers le bas et choisissez le protocole souhaité pour l’expression de votre stratégie. Vos choix sont les suivants :

    • HTTP. Evalue les requêtes HTTP envoyées à un serveur Web. Pour les expressions classiques, HTTP inclut les requêtes HTTPS.
    • SSL. Evalue les données SSL associées à la connexion en cours.
    • TCP. Evalue les données TCP associées à la connexion en cours.
    • IP. Evalue les adresses IP associées à la connexion en cours.
  5. Sous Qualifier, cliquez sur la flèche vers le bas et choisissez un qualificatif pour votre stratégie.

    Le qualificateur définit le type de données à évaluer. La liste des qualificatifs qui s’affiche dépend du protocole sélectionné à l’étape 4.

    Les options suivantes s’affichent pour le protocole HTTP :

    • MÉTHODE. Filtre les requêtes HTTP qui utilisent une méthode HTTP particulière.
    • URL. Filtre les requêtes HTTP pour une page Web spécifique.
    • URLQUERY. Filtre les requêtes HTTP qui contiennent une chaîne de requête particulière.
    • VERSION. Filtre les requêtes HTTP sur la base de la version du protocole HTTP spécifiée.
    • EN-TÊTE. Filtre sur la base d’un en-tête HTTP particulier.
    • URLLEN. Filtre en fonction de la longueur de l’URL.
    • URLQUERY. Filtre sur la base de la partie requête de l’URL.
    • URLQUERYLEN. Filtre uniquement en fonction de la longueur de la partie requête de l’URL.
  6. Sous Opérateur, cliquez sur la flèche vers le bas et choisissez l’opérateur correspondant à votre expression de stratégie. Certains opérateurs courants sont :

    Opérateur Description
    == Correspond exactement à la valeur spécifiée ou est exactement égale à la valeur spécifiée.
    != Ne correspond pas à la valeur spécifiée.
    > Est supérieur à la valeur spécifiée.
    < Est inférieur à la valeur spécifiée.
    >= Est supérieur ou égal à la valeur spécifiée.
    <= Est inférieur ou égal à la valeur spécifiée.
    CONTAINS Contient la valeur spécifiée.
    CONTENTS Renvoie le contenu de l’en-tête, de l’URL ou de la requête URL désignés.
    EXISTS L’en-tête ou la requête spécifié existe.
    NOTCONTAINS Ne contient pas la valeur spécifiée.
    NOTEXISTS L’en-tête ou la requête spécifié n’existe pas.
  7. Si une zone de texte Valeur apparaît, tapez une chaîne ou une valeur numérique, selon le cas. Par exemple, choisissez REQ comme type de flux, HTTP comme protocole et HEADER comme qualificatif, puis tapez la valeur de la chaîne d’en-tête dans le champ Valeur et le type d’en-tête pour lequel vous souhaitez correspondre à la chaîne dans la zone de texte Nom d’en-tête.

  8. Cliquez sur OK.

  9. Pour créer une expression composée, cliquez sur Ajouter. Notez que le type de préparation effectuée dépend des choix suivants dans la boîte de dialogue Créer une stratégie :

    • Correspondance avec n’importe quelle expression. Les expressions sont dans une relation OU logique.
    • Correspondance avec toutes les expressions. Les expressions sont dans une relation logique AND.
    • Expressions tabulaires. Cliquez sur les boutons ET, OR et parenthèses pour contrôler l’évaluation.
    • Forme libre avancée. Entrez les composants d’expressions directement dans le champ Expression, puis cliquez sur les boutons ET, OR et parenthèses pour contrôler l’évaluation.