Aangepaste regels voor Azure Web Application Firewall in Azure Front Door
Met Azure Web Application Firewall in Azure Front Door kunt u de toegang tot uw webtoepassingen beheren op basis van de voorwaarden die u definieert. Een aangepaste WAF-regel (Web Application Firewall) bestaat uit een prioriteitsnummer, regeltype, overeenkomstvoorwaarden en een actie.
Er zijn twee soorten aangepaste regels: overeenkomstregels en frequentielimietregels. Een overeenkomstregel bepaalt de toegang op basis van een set overeenkomende voorwaarden. Een regel voor frequentielimiet bepaalt de toegang op basis van overeenkomende voorwaarden en de frequenties van binnenkomende aanvragen. U kunt een aangepaste regel uitschakelen om te voorkomen dat deze wordt geëvalueerd, maar de configuratie nog steeds behouden.
Zie Wat is snelheidsbeperking voor Azure Front Door? voor meer informatie over snelheidsbeperking.
Prioriteit, actietypen en overeenkomstvoorwaarden
U kunt de toegang beheren met een aangepaste WAF-regel waarmee een prioriteitsnummer, een regeltype, een matrix met overeenkomstvoorwaarden en een actie wordt gedefinieerd.
Prioriteit
Een uniek geheel getal dat de volgorde van evaluatie van WAF-regels beschrijft. Regels met waarden met een lagere prioriteit worden geëvalueerd vóór regels met hogere waarden. De regelevaluatie stopt bij elke regelactie, met uitzondering van Logboek. Prioriteitsnummers moeten uniek zijn voor alle aangepaste regels.
Actie
Definieert hoe u een aanvraag routeert als een WAF-regel overeenkomt. U kunt een van de volgende acties kiezen die u wilt toepassen wanneer een aanvraag overeenkomt met een aangepaste regel.
- Toestaan: De WAF staat de aanvraag toe om te verwerken, registreert een vermelding in WAF-logboeken en wordt afgesloten.
- Blokkeren: Aanvraag is geblokkeerd. De WAF verzendt een antwoord naar een client zonder de aanvraag verder door te sturen. De WAF registreert een vermelding in WAF-logboeken en sluit af.
- Logboek: De WAF registreert een vermelding in WAF-logboeken en blijft de volgende regel evalueren in de prioriteitsvolgorde.
- Omleiding: De WAF leidt de aanvraag om naar een opgegeven URI, registreert een vermelding in WAF-logboeken en wordt afgesloten.
Overeenkomstvoorwaarde
Definieert een overeenkomstvariabele, een operator en een overeenkomstwaarde. Elke regel kan meerdere voorwaarden voor overeenkomst bevatten. Een overeenkomstvoorwaarde kan zijn gebaseerd op geografische locatie, CLIENT-IP-adressen (CIDR), grootte of tekenreeksovereenkomst. Een tekenreeksovereenkomst kan overeenkomen met een lijst met overeenkomende variabelen.
Variabele vergelijken
- RequestMethod
- QueryString
- PostArgs
- RequestUri
- RequestHeader
- RequestBody
- Cookies
Operator
- Any: Wordt vaak gebruikt om standaardactie te definiëren als er geen regels overeenkomen. Elke operator is een overeenkomst met alle operatoren.
- Is gelijk aan
- Contains
- LessThan: Groottebeperking
- GreaterThan: Groottebeperking
- LessThanOrEqual: Groottebeperking
- GreaterThanOrEqual: Groottebeperking
- BeginsWith
- EndsWith
- Reguliere expressie
Regex
Biedt geen ondersteuning voor de volgende bewerkingen:
- Backreferences en het vastleggen van subexpressies
- Willekeurige asserties met nul breedte
- Subroutineverwijzingen en recursieve patronen
- Voorwaardelijke patronen
- Backtracking-besturingsopdrachten
- De \C-instructie met één byte
- De "R newline match directive"
- De \K-begin van de begin-instructie voor het opnieuw instellen van overeenkomsten
- Bijschriften en ingesloten code
- Atomische groepering en bezittelijke kwantificatoren
Negate [optioneel]
U kunt de
negate
voorwaarde instellen op waar als het resultaat van een voorwaarde moet worden ontkend.Transformeren [optioneel]
Een lijst met tekenreeksen met namen van transformaties die moeten worden uitgevoerd voordat de overeenkomst wordt geprobeerd. Dit kunnen de volgende transformaties zijn:
- Hoofdletters
- Kleine letters
- Trim
- RemoveNulls
- UrlDecode
- UrlEncode
Overeenkomende waarde
Ondersteunde waarden voor de HTTP-aanvraagmethode zijn onder andere:
- GET
- POSTEN
- PUT
- HEAD
- DELETE
- SLOT
- ONTSLUITEN
- PROFIEL
- OPTIES
- PROPFIND
- PROPPATCH
- MKCOL
- COPY
- BEWEGEN
- PATCH
- VERBINDEN
Voorbeelden
Bekijk de volgende voorbeelden.
Overeenkomen op basis van HTTP-aanvraagparameters
Stel dat u een aangepaste regel moet configureren om aanvragen toe te staan die voldoen aan de volgende twee voorwaarden:
- De waarde van de
Referer
header is gelijk aan een bekende waarde. - De querytekenreeks bevat het woord
password
niet.
Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:
{
"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"
}
HTTP PUT-aanvragen blokkeren
Stel dat u een aanvraag moet blokkeren die gebruikmaakt van de HTTP PUT-methode.
Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:
{
"name": "BlockPUT",
"priority": 2,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestMethod",
"selector": null,
"operator": "Equal",
"negateCondition": false,
"matchValue": [
"PUT"
]
}
],
"action": "Block"
}
Groottebeperking
Met een Azure Front Door WAF kunt u aangepaste regels bouwen die een lengte- of groottebeperking toepassen op een deel van een binnenkomende aanvraag. Deze groottebeperking wordt gemeten in bytes.
Stel dat u aanvragen moet blokkeren waarbij de URL langer is dan 100 tekens.
Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:
{
"name": "URLOver100",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "GreaterThanOrEqual",
"negateCondition": false,
"matchValue": [
"100"
]
}
],
"action": "Block"
}
Overeenkomst op basis van aanvraag-URI
Stel dat u aanvragen wilt toestaan waarbij de URI aanmelding bevat.
Hier volgt een voorbeeld van een JSON-beschrijving van de aangepaste regel:
{
"name": "URIContainsLogin",
"priority": 5,
"ruleType": "MatchRule",
"matchConditions": [
{
"matchVariable": "RequestUri",
"selector": null,
"operator": "Contains",
"negateCondition": false,
"matchValue": [
"login"
]
}
],
"action": "Allow"
}
Aangepaste regels kopiëren en dupliceren
Aangepaste regels kunnen worden gedupliceerd binnen een bepaald beleid. Bij het dupliceren van een regel moet u een unieke naam voor de regel en een unieke prioriteitswaarde opgeven. Daarnaast kunnen aangepaste regels worden gekopieerd van het ene Azure Front Door WAF-beleid naar een ander, zolang het beleid zich beide in hetzelfde abonnement bevindt. Wanneer u een regel van het ene beleid naar het andere kopieert, moet u het Azure Front Door WAF-beleid selecteren waarnaar u de regel wilt kopiëren. Zodra u het WAF-beleid hebt geselecteerd, moet u de regel een unieke naam geven en een prioriteitsrang toewijzen.
Volgende stappen
- Een WAF-beleid configureren met behulp van Azure PowerShell.
- Meer informatie over Azure Web Application Firewall in Azure Front Door.
- Meer informatie over het maken van een Azure Front Door-exemplaar.