Skapa hastighetsbegränsning för anpassade regler för Application Gateway WAF v2
Artikel 11/08/2023
4 deltagare
Feedback
I den här artikeln
Med hastighetsbegränsning kan du identifiera och blockera onormalt höga trafiknivåer som är avsedda för ditt program. Hastighetsbegränsning fungerar genom att räkna all trafik som matchar den konfigurerade hastighetsbegränsningsregeln och utföra den konfigurerade åtgärden för trafikmatchning av regeln som överskrider det konfigurerade tröskelvärdet. Mer information finns i Översikt över hastighetsbegränsning.
Använd följande information för att konfigurera hastighetsbegränsningsregler för Application Gateway WAFv2.
Scenario ett – Skapa en regel för att hastighetsbegränsa trafik efter klient-IP som överskrider det konfigurerade tröskelvärdet och som matchar all trafik.
Öppna en befintlig WAF-princip för Application Gateway
Välj anpassade regler
Lägg till anpassad regel
Lägg till namn för den anpassade regeln
Välj alternativknappen Frekvensgräns, regeltyp
Ange en prioritet för regeln
Välj 1 minut för Varaktighet för hastighetsbegränsning
Ange 200 som tröskelvärde för hastighetsgräns (begäranden)
Välj Klientadress för grupphastighetsgränstrafik efter
Under Villkor väljer du IP-adress för matchningstyp
För Åtgärd väljer du knappen Innehåller inte alternativ
Ange 255.255.255.255.255/32 under IP-adress eller intervall för matchningsvillkor
Lämna åtgärdsinställningen till Neka trafik
Välj Lägg till för att lägga till den anpassade regeln i principen
Välj Spara för att spara konfigurationen och gör den anpassade regeln aktiv för WAF-principen.
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator IPMatch -MatchValue 255.255.255.255/32 -NegationCondition $True
$groupByVariable = New-AzApplicationGatewayFirewallCustomRuleGroupByVariable -VariableName ClientAddr
$groupByUserSession = New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession -GroupByVariable $groupByVariable
$ratelimitrule = New-AzApplicationGatewayFirewallCustomRule -Name ClientIPRateLimitRule -Priority 90 -RateLimitDuration OneMin -RateLimitThreshold 100 -RuleType RateLimitRule -MatchCondition $condition -GroupByUserSession $groupByUserSession -Action Block -State Enabled
az network application-gateway waf-policy custom-rule create --policy-name ExamplePolicy --resource-group ExampleRG --action Block --name ClientIPRateLimitRule --priority 90 --rule-type RateLimitRule --rate-limit-threshold 100 --group-by-user-session '[{'"groupByVariables"':[{'"variableName"':'"ClientAddr"'}]}]'
az network application-gateway waf-policy custom-rule match-condition add --match-variables RemoteAddr --operator IPMatch --policy-name ExamplePolicy --name ClientIPRateLimitRule --resource-group ExampleRG --value 255.255.255.255/32 --negate true
Scenario två – Skapa anpassad regel för hastighetsbegränsning för att matcha all trafik förutom trafik som kommer från USA. Trafiken grupperas, räknas och hastighetsbegränsas baserat på GeoLocation för KLIENTENS KÄLL-IP-adress
Öppna en befintlig WAF-princip för Application Gateway
Välj anpassade regler
Lägg till anpassad regel
Lägg till namn för den anpassade regeln
Välj alternativknappen Frekvensgräns, regeltyp
Ange en prioritet för regeln
Välj 1 minut för Varaktighet för hastighetsbegränsning
Ange 500 som tröskelvärde för hastighetsgräns (begäranden)
Välj Geo-plats för grupphastighetsbegränsningstrafik efter
Under Villkor väljer du Geo-plats för Matchningstyp
I avsnittet Matcha variabler väljer du RemoteAddr för Match-variabel
Välj knappen Är inte alternativ för åtgärd
Välj USA för land/region
Lämna åtgärdsinställningen till Neka trafik
Välj Lägg till för att lägga till den anpassade regeln i principen
Välj Spara för att spara konfigurationen och gör den anpassade regeln aktiv för WAF-principen.
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator GeoMatch -MatchValue "US" -NegationCondition $True
$groupByVariable = New-AzApplicationGatewayFirewallCustomRuleGroupByVariablde -VariableName GeoLocation
$groupByUserSession = New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession -GroupByVariable $groupByVariable
$ratelimitrule = New-AzApplicationGatewayFirewallCustomRule -Name GeoRateLimitRule -Priority 95 -RateLimitDuration OneMin -RateLimitThreshold 500 -RuleType RateLimitRule -MatchCondition $condition -GroupByUserSession $groupByUserSession -Action Block -State Enabled
az network application-gateway waf-policy custom-rule create --policy-name ExamplePolicy --resource-group ExampleRG --action Block --name GeoRateLimitRule --priority 95 --rule-type RateLimitRule --rate-limit-threshold 500 --group-by-user-session '[{'"groupByVariables"':[{'"variableName"':'"GeoLocation"'}]}]'
az network application-gateway waf-policy custom-rule match-condition add --match-variables RemoteAddr --operator GeoMatch --policy-name ExamplePolicy --name GeoRateLimitRule --resource-group ExampleRG --value US --negate true
Scenario tre – Skapa anpassad regel för hastighetsbegränsning som matchar all trafik för inloggningssidan och med hjälp av variabeln GroupBy None. Detta grupperar och räknar all trafik som matchar regeln som en och tillämpar åtgärden för all trafik som matchar regeln (/inloggning).
Öppna en befintlig WAF-princip för Application Gateway
Välj anpassade regler
Lägg till anpassad regel
Lägg till namn för den anpassade regeln
Välj alternativknappen Frekvensgräns, regeltyp
Ange en prioritet för regeln
Välj 1 minut för Varaktighet för hastighetsbegränsning
Ange 100 som tröskelvärde för hastighetsgräns (begäranden)
Välj Ingen för grupphastighetsgränstrafik efter
Under Villkor väljer du Sträng för Matchningstyp
I avsnittet Matcha variabler väljer du RequestUri för Match-variabel
Välj knappen Är inte alternativ för åtgärd
För Operator väljer du innehåller
Ange sökvägen till inloggningssidan för matchningsvärde. I det här exemplet använder vi /login
Lämna åtgärdsinställningen till Neka trafik
Välj Lägg till för att lägga till den anpassade regeln i principen
Välj Spara för att spara konfigurationen och gör den anpassade regeln aktiv för WAF-principen.
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RequestUri
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator Contains -MatchValue "/login" -NegationCondition $True
$groupByVariable = New-AzApplicationGatewayFirewallCustomRuleGroupByVariable -VariableName None
$groupByUserSession = New-AzApplicationGatewayFirewallCustomRuleGroupByUserSession -GroupByVariable $groupByVariable
$ratelimitrule = New-AzApplicationGatewayFirewallCustomRule -Name LoginRateLimitRule -Priority 99 -RateLimitDuration OneMin -RateLimitThreshold 100 -RuleType RateLimitRule -MatchCondition $condition -GroupByUserSession $groupByUserSession -Action Block -State Enabled
az network application-gateway waf-policy custom-rule create --policy-name ExamplePolicy --resource-group ExampleRG --action Block --name LoginRateLimitRule --priority 99 --rule-type RateLimitRule --rate-limit-threshold 100 --group-by-user-session '[{'"groupByVariables"':[{'"variableName"':'"None"'}]}]'
az network application-gateway waf-policy custom-rule match-condition add --match-variables RequestUri --operator Contains --policy-name ExamplePolicy --name LoginRateLimitRule --resource-group ExampleRG --value '/login'
Nästa steg
Anpassa brandväggsregler för webbprogram