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
- Řetězec dotazu
- PostArgs
- Identifikátor 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
Regulární výraz
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
- ZAMKNOUT
- ODEMKNOUT
- PROFIL
- OPTIONS
- PROPFIND
- PROPPATCH
- MKCOL
- KOPÍROVAT
- POHNOUT
- 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"
}
Shoda na základě identifikátoru URI požadavku
Předpokládejme, že potřebujete povolit požadavky, ve kterých identifikátor URI obsahuje přihlašovací údaje.
Tady je ukázkový popis JSON vlastního pravidla:
{
"name": "URIContainsLogin",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "Contains",
"negateCondition": false,
"matchValue": [
"login"
]
}
],
"action": "Allow"
}
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
- Nakonfigurujte zásady WAF pomocí Azure PowerShellu.
- Přečtěte si o službě Azure Web Application Firewall ve službě Azure Front Door.
- Zjistěte, jak vytvořit instanci služby Azure Front Door.