إنشاء قواعد مخصصة للحد من المعدل ل Application Gateway WAF v2
مقالة 11/08/2023
4 من المساهمين
الملاحظات
في هذه المقالة
يتيح لك تحديد المعدل اكتشاف وحظر مستويات عالية بشكل غير طبيعي من نسبة استخدام الشبكة الموجهة لتطبيقك. يعمل تقييد المعدل عن طريق حساب كافة نسبة استخدام الشبكة التي تطابق قاعدة حد المعدل المكونة وتنفيذ الإجراء المكون لحركة المرور المطابقة لتلك القاعدة التي تتجاوز الحد المكون. لمزيد من المعلومات، راجع نظرة عامة على تحديد المعدل.
استخدم المعلومات التالية لتكوين قواعد حد المعدل لبوابة التطبيق WAFv2.
السيناريو الأول - إنشاء قاعدة لتقييد نسبة استخدام الشبكة حسب عنوان IP للعميل الذي يتجاوز الحد الذي تم تكوينه، مطابقا لجميع نسبة استخدام الشبكة.
فتح نهج WAF لبوابة التطبيق الحالية
تحديد قواعد مخصصة
إضافة قاعدة مخصصة
إضافة اسم للقاعدة المخصصة
حدد الزر التبادلي نوع قاعدة حد السعر
أدخل أولوية للقاعدة
اختر دقيقة واحدة لمدة حد السعر
أدخل 200 للحد الأقصى للمعدل (الطلبات)
حدد عنوان العميل لحركة مرور حد معدل المجموعة حسب
ضمن الشروط، اختر عنوان IP ل Match Type
بالنسبة إلى العملية، حدد الزر لا يحتوي على تبادلي
بالنسبة لحالة المطابقة، ضمن عنوان IP أو النطاق، أدخل 255.255.255.255/32
اترك إعداد الإجراء لرفض نسبة استخدام الشبكة
حدد إضافة لإضافة القاعدة المخصصة إلى النهج
حدد حفظ لحفظ التكوين وجعل القاعدة المخصصة نشطة لنهج 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
السيناريو الثاني - إنشاء قاعدة مخصصة للحد من المعدل لمطابقة جميع نسبة استخدام الشبكة باستثناء نسبة استخدام الشبكة التي تنشأ من الولايات المتحدة. سيتم تجميع نسبة استخدام الشبكة، وحصرها، ومحدودة المعدل استنادا إلى الموقع الجغرافي لعنوان IP لمصدر العميل
فتح نهج WAF لبوابة التطبيق الحالية
تحديد قواعد مخصصة
إضافة قاعدة مخصصة
إضافة اسم للقاعدة المخصصة
حدد الزر التبادلي نوع قاعدة حد السعر
أدخل أولوية للقاعدة
اختر دقيقة واحدة لمدة حد السعر
أدخل 500 للحد الأقصى للمعدل (الطلبات)
حدد الموقع الجغرافي لحركة مرور حد معدل المجموعة حسب
ضمن الشروط، اختر الموقع الجغرافي لنوع المطابقة
في قسم Match variables، حدد RemoteAddr لمتغير Match
حدد الزر Is not radio للعملية
تحديد الولايات المتحدة للبلد/المنطقة
اترك إعداد الإجراء لرفض نسبة استخدام الشبكة
حدد إضافة لإضافة القاعدة المخصصة إلى النهج
حدد حفظ لحفظ التكوين وجعل القاعدة المخصصة نشطة لنهج 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
السيناريو الثالث - إنشاء قاعدة مخصصة للحد من المعدل تطابق كافة نسبة استخدام الشبكة لصفحة تسجيل الدخول، واستخدام متغير GroupBy None. سيؤدي ذلك إلى تجميع كل نسبة استخدام الشبكة التي تطابق القاعدة واحصاءها، وتطبيق الإجراء عبر كافة نسبة استخدام الشبكة المطابقة للقاعدة (/تسجيل الدخول).
فتح نهج WAF لبوابة التطبيق الحالية
تحديد قواعد مخصصة
إضافة قاعدة مخصصة
إضافة اسم للقاعدة المخصصة
حدد الزر التبادلي نوع قاعدة حد السعر
أدخل أولوية للقاعدة
اختر دقيقة واحدة لمدة حد السعر
أدخل 100 للحد الأقصى للمعدل (الطلبات)
حدد بلا لنسبة استخدام الشبكة لتقييد معدل المجموعة حسب
ضمن الشروط، اختر سلسلة لنوع المطابقة
في قسم Match variables، حدد RequestUri لمتغير Match
حدد الزر Is not radio للعملية
بالنسبة إلى عامل التشغيل، حدد يحتوي على
أدخل مسار صفحة تسجيل الدخول لمطابقة القيمة. في هذا المثال نستخدم /login
اترك إعداد الإجراء لرفض نسبة استخدام الشبكة
حدد إضافة لإضافة القاعدة المخصصة إلى النهج
حدد حفظ لحفظ التكوين وجعل القاعدة المخصصة نشطة لنهج 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'
الخطوات التالية
تخصيص قواعد جدار الحماية لتطبيق الويب