Application Gateway WAF v2 için hız sınırlama özel kuralları oluşturma
Makale 11/08/2023
4 katılımcı
Geri Bildirim
Bu makalede
Hız sınırlama, uygulamanız için hedeflenen anormal yüksek trafik düzeylerini algılamanızı ve engellemenizi sağlar. Hız Sınırlama, yapılandırılan Hız Sınırı kuralıyla eşleşen tüm trafiği sayarak ve yapılandırılan eşiği aşan bu kuralla eşleşen trafik için yapılandırılmış eylemi gerçekleştirerek çalışır. Daha fazla bilgi için bkz . Hız sınırlamaya genel bakış .
Application Gateway WAFv2 için Hız Sınırı Kurallarını yapılandırmak için aşağıdaki bilgileri kullanın.
Senaryo Bir - Tüm trafikle eşleşen, yapılandırılan eşiği aşan İstemci IP'sine göre trafiği sınırlamak için kural oluşturun.
Mevcut bir Application Gateway WAF İlkesini açma
Özel Kurallar'ı seçin
Özel Kural Ekle
Özel Kural için Ad Ekle
Hız sınırı Kural Türü radyo düğmesini seçin
Kural için bir Öncelik girin
Hız sınırı süresi için 1 dakika seçin
Hız sınırı eşiği (istekler) için 200 girin
Grup hız sınırı trafiği için İstemci adresi'ne göre
Koşullar'ın altında, Eşleştirme Türü için IP adresi'ni seçin
İşlem için Radyo içermiyor düğmesini seçin
Eşleşme koşulu için, IP adresi veya aralığı altında 255.255.255.255/32 girin
Eylem ayarını Trafiği reddet olarak bırakın
Özel kuralı ilkeye eklemek için Ekle'yi seçin
Kaydet'i seçerek yapılandırmayı kaydedin ve WAF ilkesi için özel kuralı etkin hale getirin.
$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
Senaryo İki - Birleşik Devletler kaynaklı trafik dışındaki tüm trafikle eşleşecek Şekilde Hız Sınırı Özel Kuralı oluşturun. trafik, İstemci Kaynağı IP adresinin Coğrafi Konumuna göre gruplandırılır, sayılır ve hız sınırlaması olur
Mevcut bir Application Gateway WAF İlkesini açma
Özel Kurallar'ı seçin
Özel Kural Ekle
Özel Kural için Ad Ekle
Hız sınırı Kural Türü radyo düğmesini seçin
Kural için bir Öncelik girin
Hız sınırı süresi için 1 dakika seçin
Hız sınırı eşiği (istekler) için 500 girin
Grup oranı sınırı trafiği için Coğrafi konum'a göre
Koşullar'ın altında, Eşleştirme Türü için Coğrafi konum'u seçin
Değişkenleri eşleştir bölümünde, Değişkeni eşleştirmek için RemoteAddr'ı seçin
İşlem için Radyo değil düğmesini seçin
Ülke/Bölge için Birleşik Devletler seçin
Eylem ayarını Trafiği reddet olarak bırakın
Özel kuralı ilkeye eklemek için Ekle'yi seçin
Kaydet'i seçerek yapılandırmayı kaydedin ve WAF ilkesi için özel kuralı etkin hale getirin.
$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
Senaryo Üç - Oturum açma sayfasının tüm trafiğiyle eşleşen ve GroupBy None değişkenini kullanan Hız Sınırı Özel Kuralı oluşturun. Bu, kuralla eşleşen tüm trafiği tek bir trafik olarak gruplandırıp sayar ve eylemi kuralla eşleşen tüm trafik (/oturum açma) boyunca uygular.
Mevcut bir Application Gateway WAF İlkesini açma
Özel Kurallar'ı seçin
Özel Kural Ekle
Özel Kural için Ad Ekle
Hız sınırı Kural Türü radyo düğmesini seçin
Kural için bir Öncelik girin
Hız sınırı süresi için 1 dakika seçin
Hız sınırı eşiği (istekler) için 100 girin
Grup hız sınırı trafiği için Yok'a göre
Koşullar altında, Eşleştirme Türü için Dize'yi seçin
Değişkenleri eşleştir bölümünde, Match değişkeni için RequestUri'yi seçin
İşlem için Radyo değil düğmesini seçin
İşleç için select contains
Değerle eşleşmesi için Oturum açma sayfası yolunu girin. Bu örnekte /login kullanıyoruz
Eylem ayarını Trafiği reddet olarak bırakın
Özel kuralı ilkeye eklemek için Ekle'yi seçin
Kaydet'i seçerek yapılandırmayı kaydedin ve WAF ilkesi için özel kuralı etkin hale getirin.
$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'
Sonraki adımlar
Web uygulaması güvenlik duvarı kurallarını özelleştirme