Reguły niestandardowe dla usługi Azure Web Application Firewall w usłudze Azure Front Door
Usługa Azure Web Application Firewall w usłudze Azure Front Door umożliwia kontrolowanie dostępu do aplikacji internetowych na podstawie zdefiniowanych warunków. Niestandardowa reguła zapory aplikacji internetowej (WAF) składa się z numeru priorytetu, typu reguły, warunków dopasowania i akcji.
Istnieją dwa typy reguł niestandardowych: reguły dopasowania i reguły limitu szybkości. Reguła dopasowania kontroluje dostęp na podstawie zestawu pasujących warunków. Reguła limitu szybkości kontroluje dostęp na podstawie pasujących warunków i szybkości żądań przychodzących. Możesz wyłączyć regułę niestandardową, aby uniemożliwić jej ocenę, ale nadal zachować konfigurację.
Aby uzyskać więcej informacji na temat ograniczania szybkości, zobacz Co to jest ograniczanie szybkości dla usługi Azure Front Door?.
Priorytet, typy akcji i warunki dopasowania
Dostęp można kontrolować za pomocą niestandardowej reguły zapory aplikacji internetowej, która definiuje numer priorytetu, typ reguły, tablicę warunków dopasowania i akcję.
Priorytet
Unikatowa liczba całkowita, która opisuje kolejność oceny reguł zapory aplikacji internetowej. Reguły z wartościami o niższym priorytcie są oceniane przed regułami o wyższych wartościach. Ocena reguły zatrzymuje się na dowolnej akcji reguły z wyjątkiem dziennika. Numery priorytetów muszą być unikatowe we wszystkich regułach niestandardowych.
Akcja
Definiuje sposób kierowania żądania, jeśli reguła zapory aplikacji internetowej jest zgodna. Możesz wybrać jedną z następujących akcji, które mają być stosowane, gdy żądanie pasuje do reguły niestandardowej.
- Zezwalaj: Zapora aplikacji internetowej umożliwia przetwarzanie żądania, rejestrowanie wpisu w dziennikach zapory aplikacji internetowej i zamykanie.
- Blokuj: żądanie jest zablokowane. Zapora aplikacji internetowej wysyła odpowiedź do klienta bez dalszego przekazywania żądania. Zapora aplikacji internetowej rejestruje wpis w dziennikach zapory aplikacji internetowej i kończy działanie.
- Dziennik: Zapora aplikacji internetowej rejestruje wpis w dziennikach zapory aplikacji internetowej i kontynuuje ocenę następnej reguły w kolejności priorytetu.
- Przekierowanie: Zapora aplikacji internetowej przekierowuje żądanie do określonego identyfikatora URI, rejestruje wpis w dziennikach zapory aplikacji internetowej i kończy działanie.
Warunek dopasowania
Definiuje zmienną dopasowania, operator i wartość dopasowania. Każda reguła może zawierać wiele warunków dopasowania. Warunek dopasowania może być oparty na lokalizacji geograficznej, adresach IP klienta (CIDR), rozmiarze lub dopasować ciąg. Dopasowanie ciągu może być zgodne z listą zmiennych dopasowania.
Dopasuj zmienną
- RequestMethod
- Ciąg zapytania
- PostArgs
- Identyfikator RequestUri
- RequestHeader
- RequestBody
- Pliki cookie
Operator
- Dowolne: często używane do definiowania akcji domyślnej, jeśli żadne reguły nie są zgodne. Dowolny jest operatorem dopasowania do wszystkich.
- Równe
- Contains
- LessThan: ograniczenie rozmiaru
- GreaterThan: ograniczenie rozmiaru
- LessThanOrEqual: ograniczenie rozmiaru
- GreaterThanOrEqual: ograniczenie rozmiaru
- BeginsWith
- EndsWith
- Wyrażenie regularne
Wyrażeń regularnych
Nie obsługuje następujących operacji:
- Odwołania wsteczne i przechwytywanie podwyrażenia
- Dowolne asercji o zerowej szerokości
- Odwołania podrzędne i wzorce cyklicznego
- Wzorce warunkowe
- Czasowniki kontrolek wycofywania
- Dyrektywa \C z jednym bajtem
- Dyrektywa dopasowania \R newline
- \K dyrektywy resetowania dopasowania
- Objaśnienie i osadzony kod
- Grupowanie niepodzielne i kwantyfikatory
Negowanie [opcjonalne]
Warunek można ustawić
negate
na wartość true , jeśli wynik warunku powinien zostać negowany.Przekształcanie [opcjonalne]
Lista ciągów z nazwami przekształceń do wykonania przed podjęciem próby dopasowania. Mogą to być następujące przekształcenia:
- Wielkie litery
- Małe litery
- Trim
- RemoveNulls
- UrlDecode
- UrlEncode
Dopasuj wartość
Obsługiwane wartości metody żądania HTTP obejmują:
- GET
- POST
- ODŁÓŻ
- HEAD
- DELETE
- ZAMEK
- ODBLOKOWAĆ
- PROFIL
- OPTIONS
- PROPFIND
- PROPPATCH
- MKCOL
- KOPIOWAĆ
- RUSZAĆ
- PATCH
- ŁĄCZENIE
Przykłady
Rozważmy następujące przykłady.
Dopasowanie na podstawie parametrów żądania HTTP
Załóżmy, że musisz skonfigurować regułę niestandardową, aby zezwalać na żądania zgodne z następującymi dwoma warunkami:
Referer
Wartość nagłówka jest równa znanej wartości.- Ciąg zapytania nie zawiera słowa
password
.
Oto przykładowy opis kodu JSON reguły niestandardowej:
{
"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"
}
Blokuj żądania HTTP PUT
Załóżmy, że musisz zablokować każde żądanie korzystające z metody HTTP PUT.
Oto przykładowy opis kodu JSON reguły niestandardowej:
{
"name": "BlockPUT",
"priority": 2,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestMethod",
"selector": null,
"operator": "Equal",
"negateCondition": false,
"matchValue": [
"PUT"
]
}
],
"action": "Block"
}
Ograniczenie rozmiaru
Zapora aplikacji internetowej usługi Azure Front Door umożliwia tworzenie niestandardowych reguł, które stosują ograniczenie długości lub rozmiaru w ramach żądania przychodzącego. To ograniczenie rozmiaru jest mierzone w bajtach.
Załóżmy, że musisz zablokować żądania, w których adres URL jest dłuższy niż 100 znaków.
Oto przykładowy opis kodu JSON reguły niestandardowej:
{
"name": "URLOver100",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "GreaterThanOrEqual",
"negateCondition": false,
"matchValue": [
"100"
]
}
],
"action": "Block"
}
Dopasowanie na podstawie identyfikatora URI żądania
Załóżmy, że musisz zezwolić na żądania, w których identyfikator URI zawiera identyfikator "login".
Oto przykładowy opis kodu JSON reguły niestandardowej:
{
"name": "URIContainsLogin",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "Contains",
"negateCondition": false,
"matchValue": [
"login"
]
}
],
"action": "Allow"
}
Kopiowanie i duplikowanie reguł niestandardowych
Reguły niestandardowe można duplikować w ramach określonych zasad. Podczas duplikowania reguły należy określić unikatową nazwę reguły i unikatową wartość priorytetu. Ponadto reguły niestandardowe można skopiować z jednej zasady zapory aplikacji internetowej usługi Azure Front Door do innej, o ile zasady znajdują się w tej samej subskrypcji. Podczas kopiowania reguły z jednej zasady do innej należy wybrać zasady zapory aplikacji internetowej usługi Azure Front Door, do których chcesz skopiować regułę. Po wybraniu zasad zapory aplikacji internetowej należy nadać regule unikatową nazwę i przypisać rangę priorytetu.
Następne kroki
- Konfigurowanie zasad zapory aplikacji internetowej przy użyciu programu Azure PowerShell.
- Dowiedz się więcej o usłudze Azure Web Application Firewall w usłudze Azure Front Door.
- Dowiedz się, jak utworzyć wystąpienie usługi Azure Front Door.