Sdílet prostřednictvím


Vlastní pravidla pro Azure Web Application Firewall ve službě Azure Front Door

Azure Web Application Firewall ve službě Azure Front Door umožňuje řídit přístup k webovým aplikacím na základě vámi definovaných podmínek. Vlastní pravidlo firewallu webových aplikací (WAF) se skládá z čísla priority, typu pravidla, podmínky shody a akce.

Existují dva typy vlastních pravidel: pravidla shody a pravidla omezení rychlosti. Pravidlo shody řídí přístup na základě sady shodných podmínek. Pravidlo omezení rychlosti řídí přístup na základě odpovídajících podmínek a míry příchozích požadavků. Můžete zakázat vlastní pravidlo, aby se zabránilo jeho vyhodnocení, ale přesto zachovat konfiguraci.

Další informace o omezování rychlosti najdete v tématu Co je omezování rychlosti pro Azure Front Door?.

Priorita, typy akcí a podmínky shody

Přístup můžete řídit pomocí vlastního pravidla WAF, které definuje číslo priority, typ pravidla, pole podmínek shody a akci.

  • Priorita

    Jedinečné celé číslo, které popisuje pořadí vyhodnocení pravidel WAF. Pravidla s hodnotami s nižší prioritou se vyhodnocují před pravidly s vyššími hodnotami. Vyhodnocení pravidla se zastaví u jakékoli akce pravidla s výjimkou protokolu. Prioritní čísla musí být jedinečná mezi všemi vlastními pravidly.

  • Akce

    Definuje, jak směrovat požadavek, pokud se pravidlo WAF shoduje. Můžete zvolit jednu z následujících akcí, která se má použít, když požadavek odpovídá vlastnímu pravidlu.

    • Povolit: WAF umožňuje požadavek zpracovávat, protokolovat záznam v protokolech WAF a ukončovat.
    • Blok: Požadavek je zablokovaný. WaF odešle klientovi odpověď bez dalšího předání požadavku. WAF protokoluje záznam v protokolech WAF a ukončí se.
    • Protokol: WAF zaznamená položku v protokolech WAF a pokračuje v vyhodnocování dalšího pravidla v pořadí priority.
    • Přesměrování: WAF přesměruje požadavek na zadaný identifikátor URI, zaznamená záznam do protokolů WAF a ukončí se.
  • Podmínka shody

    Definuje proměnnou shody, operátor a hodnotu shody. Každé pravidlo může obsahovat více podmínek shody. Podmínka shody může být založená na geografickém umístění, IP adresách klienta (CIDR), velikosti nebo shodě řetězců. Shoda řetězců může být v seznamu shodných proměnných.

    • Shoda s proměnnou

      • RequestMethod
      • Querystring
      • PostArgs
      • Requesturi
      • RequestHeader
      • RequestBody
      • Soubory cookie
    • Operátor

      • Libovolná: Často se používá k definování výchozí akce, pokud se neshodují žádná pravidla. Všechny operátory odpovídají všem.
      • Je rovno
      • Contains
      • LessThan: Omezení velikosti
      • GreaterThan: Size constraint
      • LessThanOrEqual: Omezení velikosti
      • GreaterThanOrEqual: Omezení velikosti
      • BeginsWith
      • EndsWith
      • Regulární výraz
    • Regex

      Nepodporuje následující operace:

      • Zpětné odvozování a zachycení dílčích výrazů
      • Libovolné kontrolní výrazy s nulovou šířkou
      • Podprogramované odkazy a rekurzivní vzory
      • Podmíněné vzory
      • Ovládací příkazy zpětného navracení
      • Direktiva \C single-byte
      • Direktiva shody \R newline
      • Počáteční direktiva resetování shody \K
      • Bublinové popisky a vložený kód
      • Atomické seskupení a přivlastňovací kvantifikátory
    • Negate [volitelné]

      Podmínku negate můžete nastavit na true , pokud by měl být výsledek podmínky negovaný.

    • Transformace [volitelné]

      Seznam řetězcůschch Může to být následující transformace:

      • Velká písmena
      • Malá písmena
      • Trim
      • RemoveNulls
      • UrlDecode
      • Urlencode
    • Shoda s hodnotou

      Mezi podporované hodnoty metody požadavku HTTP patří:

      • GET
      • POST
      • PUT
      • HEAD
      • DELETE
      • ZÁMEK
      • ODEMKNOUT
      • PROFIL
      • OPTIONS
      • PROPFIND
      • PROPPATCH
      • MKCOL
      • KOPÍROVAT
      • PŘESUNOUT
      • PATCH
      • PŘIPOJIT

Příklady

Podívejte se na následující příklady.

Shoda na základě parametrů požadavku HTTP

Předpokládejme, že potřebujete nakonfigurovat vlastní pravidlo tak, aby povolovaly požadavky, které odpovídají následujícím dvěma podmínkám:

  • Referer Hodnota záhlaví se rovná známé hodnotě.
  • Řetězec dotazu neobsahuje slovo password.

Tady je ukázkový popis JSON vlastního pravidla:

{
  "name": "AllowFromTrustedSites",
  "priority": 1,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestHeader",
      "selector": "Referer",
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "www.mytrustedsites.com/referpage.html"
      ]
    },
    {
      "matchVariable": "QueryString",
      "operator": "Contains",
      "matchValue": [
        "password"
      ],
      "negateCondition": true
    }
  ],
  "action": "Allow"
}

Blokování požadavků HTTP PUT

Předpokládejme, že potřebujete blokovat všechny požadavky, které používají metodu HTTP PUT.

Tady je ukázkový popis JSON vlastního pravidla:

{
  "name": "BlockPUT",
  "priority": 2,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestMethod",
      "selector": null,
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "PUT"
      ]
    }
  ],
  "action": "Block"
}

Omezení velikosti

WaF služby Azure Front Door umožňuje vytvářet vlastní pravidla, která na část příchozího požadavku aplikují omezení délky nebo velikosti. Toto omezení velikosti se měří v bajtech.

Předpokládejme, že potřebujete blokovat požadavky, u kterých je adresa URL delší než 100 znaků.

Tady je ukázkový popis JSON vlastního pravidla:

{
  "name": "URLOver100",
  "priority": 5,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestUri",
      "selector": null,
      "operator": "GreaterThanOrEqual",
      "negateCondition": false,
      "matchValue": [
        "100"
      ]
    }
  ],
  "action": "Block"
}

Kopírování a duplikování vlastních pravidel

Vlastní pravidla se dají duplikovat v rámci dané zásady. Při duplikování pravidla musíte zadat jedinečný název pravidla a jedinečnou hodnotu priority. Kromě toho je možné vlastní pravidla zkopírovat z jedné zásady WAF služby Azure Front Door do druhé, pokud jsou zásady ve stejném předplatném. Při kopírování pravidla z jedné zásady do druhé musíte vybrat zásadu WAF služby Azure Front Door, do které chcete pravidlo zkopírovat. Jakmile vyberete zásadu WAF, musíte pravidlu dát jedinečný název a přiřadit pořadí priority.

Další kroky