Vytvoření vlastních pravidel omezování rychlosti pro WAF služby Application Gateway v2
Článek 11/08/2023
Přispěvatelé: 4
Váš názor
V tomto článku
Omezování rychlosti umožňuje detekovat a blokovat neobvykle vysoké úrovně provozu určeného pro vaši aplikaci. Omezování rychlosti funguje počítáním všech přenosů, které odpovídají nakonfigurovaným pravidlu omezení rychlosti, a provedením nakonfigurované akce pro provoz odpovídající tomuto pravidlu, který překračuje nakonfigurovanou prahovou hodnotu. Další informace najdete v tématu Přehled omezování rychlosti.
Následující informace použijte ke konfiguraci pravidel omezení rychlosti pro WAFv2 služby Application Gateway.
Scénář 1 – Vytvořte pravidlo pro omezení přenosů podle IP adresy klienta, které překročí nakonfigurovanou prahovou hodnotu a odpovídá veškerému provozu.
Otevření existující zásady WAF služby Application Gateway
Vybrat vlastní pravidla
Přidat vlastní pravidlo
Přidání názvu vlastního pravidla
Výběr přepínače Typ pravidla omezení rychlosti
Zadejte prioritu pravidla.
Zvolte 1 minutu pro dobu trvání limitu rychlosti.
Jako prahovou hodnotu limitu rychlosti (žádosti) zadejte 200.
Výběr adresy klienta pro omezení rychlosti skupiny provozu podle
V části Podmínky zvolte IP adresu pro typ shody.
V části Operace vyberte přepínač Neobsahuje
Jako podmínku shody zadejte v části IP adresa nebo rozsah 255.255.255.255/32.
Ponechat nastavení akce na Odepřít provoz
Výběrem možnosti Přidat přidáte vlastní pravidlo do zásad.
Výběrem možnosti Uložit uložíte konfiguraci a nastavíte vlastní pravidlo jako aktivní pro zásady WAF.
$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
Scénář 2 – Vytvoření vlastního pravidla omezení rychlosti, které odpovídá veškerému provozu s výjimkou provozu pocházejícího z USA Provoz se seskupí, počítá a omezuje rychlost na základě geografické polohy zdrojové IP adresy klienta.
Otevření existující zásady WAF služby Application Gateway
Vybrat vlastní pravidla
Přidat vlastní pravidlo
Přidání názvu vlastního pravidla
Výběr přepínače Typ pravidla omezení rychlosti
Zadejte prioritu pravidla.
Zvolte 1 minutu pro dobu trvání limitu rychlosti.
Jako prahovou hodnotu limitu rychlosti (žádosti) zadejte 500.
Výběr geografického umístění pro omezení rychlosti skupiny provozu podle
V části Podmínky zvolte Geografické umístění pro typ shody.
V části Match variables (Shoda proměnných) vyberte RemoteAddr pro match variable (Shoda proměnné).
Vyberte přepínač Není pro operaci
Výběr USA pro zemi nebo oblast
Ponechat nastavení akce na Odepřít provoz
Výběrem možnosti Přidat přidáte vlastní pravidlo do zásad.
Výběrem možnosti Uložit uložíte konfiguraci a nastavíte vlastní pravidlo jako aktivní pro zásady WAF.
$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
Scénář 3 – Vytvoření vlastního pravidla omezení rychlosti odpovídající veškerému provozu pro přihlašovací stránku a použití proměnné GroupBy None Tím se seskupí a spočítá veškerý provoz, který odpovídá pravidlu, jako jeden, a použije akci u všech přenosů odpovídajících pravidlu (/přihlášení).
Otevření existující zásady WAF služby Application Gateway
Vybrat vlastní pravidla
Přidat vlastní pravidlo
Přidání názvu vlastního pravidla
Výběr přepínače Typ pravidla omezení rychlosti
Zadejte prioritu pravidla.
Zvolte 1 minutu pro dobu trvání limitu rychlosti.
Jako prahovou hodnotu limitu rychlosti (žádosti) zadejte 100.
Výběr možnosti Žádná pro omezení rychlosti skupiny provozu podle
V části Podmínky zvolte Řetězec pro typ shody.
V části Match variables (Shoda proměnných) vyberte RequestUri for Match variable (Shoda proměnné).
Vyberte přepínač Není pro operaci
Výběr operátora obsahuje
Zadejte cestu k přihlašovací stránce pro hodnotu shody. V tomto příkladu používáme /login.
Ponechat nastavení akce na Odepřít provoz
Výběrem možnosti Přidat přidáte vlastní pravidlo do zásad.
Výběrem možnosti Uložit uložíte konfiguraci a nastavíte vlastní pravidlo jako aktivní pro zásady WAF.
$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'
Další kroky
Přizpůsobení pravidel firewallu webových aplikací