Delen via


Een regel voor frequentielimiet voor Web Application Firewall configureren

De azure Web Application Firewall-frequentielimietregel voor Azure Front Door bepaalt het aantal aanvragen dat is toegestaan van een bepaald bron-IP-adres naar de toepassing tijdens een duur van de frequentielimiet. Zie Wat is snelheidsbeperking voor Azure Front Door? voor meer informatie over snelheidsbeperking.

In dit artikel wordt beschreven hoe u een waf-frequentielimietregel (Web Application Firewall) configureert in Azure Front Door Standard- en Premium-lagen.

Scenario

Stel dat u verantwoordelijk bent voor een openbare website. U hebt zojuist een pagina toegevoegd met informatie over een promotie die uw organisatie uitvoert. U bent bang dat als clients die pagina te vaak bezoeken, sommige van uw back-endservices mogelijk niet snel worden geschaald en de toepassing prestatieproblemen kan hebben.

U besluit een regel voor frequentielimiet te maken waarmee elk bron-IP-adres wordt beperkt tot maximaal 1000 aanvragen per minuut. U past deze regel alleen toe op aanvragen die de aanvraag-URL bevatten */promo* .

Tip

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Een Azure Front Door-profiel en WAF-beleid maken

  1. Selecteer in Azure Portal Een resource maken.

    Schermopname van de knop Een resource maken op de startpagina.

  2. Zoek naar Front Door en selecteer Front Door- en CDN-profielen.

    Schermopname van de marketplace, met Front Door gemarkeerd.

  3. Selecteer Maken.

    Schermopname van Front Door- en CDN-profielen, met de knop Maken gemarkeerd.

  4. Selecteer Doorgaan om een Front Door te maken om het proces voor het maken van de portal snel te gebruiken.

    Schermopname van de Azure Front Door-aanbiedingen, met de optie Snel maken geselecteerd en de knop Doorgaan om een Front Door-knop te maken gemarkeerd.

  5. Voer de vereiste gegevens in op de pagina Basisinformatie :

    • Resourcegroep: Selecteer een bestaande resourcegroep of maak een nieuwe resourcegroep voor de Azure Front Door- en WAF-resources.
    • Naam: Voer de naam in van uw Azure Front Door-profiel.
    • Laag: Selecteer Standard of Premium. Voor dit scenario bieden beide lagen ondersteuning voor frequentiebeperking.
    • Eindpuntnaam: Geef een unieke naam op voor uw eindpunt, omdat Azure Front Door-eindpunten wereldwijd unieke namen moeten hebben.
    • Oorsprongstype en hostnaam Van oorsprong: selecteer de oorspronkelijke toepassing die u wilt beveiligen met uw regel voor frequentielimiet.
  6. Selecteer Nieuwe maken naast WAF-beleid.

    Schermopname van de werkstroom voor het maken van Azure Front Door, met de knop Nieuw maken van WAF-beleid gemarkeerd.

  7. Voer de naam van een WAF-beleid in en selecteer Maken.

    Schermopname van de prompt voor het maken van WAF-beleid, met de knop Maken gemarkeerd.

  8. Selecteer Beoordelen en maken>Maken.

    Schermopname van de voltooide configuratie van het Azure Front Door-profiel.

  9. Nadat de implementatie is voltooid, selecteert u Ga naar de resource.

Een regel voor frequentielimiet maken

  1. Selecteer Aangepaste regels>Aangepaste regel toevoegen.

    Schermopname van de pagina aangepaste regels van het WAF-beleid.

  2. Voer de informatie in die nodig is om een regel voor frequentielimiet te maken:

    • Aangepaste regelnaam: Voer de naam van de aangepaste regel in, zoals rateLimitRule.
    • Regeltype: Frequentielimiet selecteren.
    • Prioriteit: Voer de prioriteit van de regel in, zoals 1.
    • Duur van frequentielimiet: Selecteer 1 minuut.
    • Drempelwaarde voor frequentielimiet (aanvragen): voer 1000 in.
  3. Voer in Voorwaarden de informatie in die vereist is om een overeenkomstvoorwaarde op te geven om aanvragen te identificeren waarin de URL de tekenreeks */promo*bevat:

    • Overeenkomsttype: Selecteer Tekenreeks.
    • Overeenkomstvariabele: Voer RequestUri in.
    • Bewerking: Selecteren is.
    • Operator: Select Contains.
    • Overeenkomende waarden: Voer /promo in.
  4. Selecteer Logboek of Blokkeren voor Actie.

    Regels voor frequentielimieten bieden alleen ondersteuning Log en Block acties. Allow wordt niet ondersteund.

    Schermopname van de configuratie van de aangepaste regel.

  5. Selecteer Toevoegen.

  6. Selecteer Opslaan.

    Schermopname van de aangepaste lijst met regels, inclusief de nieuwe regel voor frequentielimiet.

Preventiemodus gebruiken op de WAF

Standaard maakt Azure Portal WAF-beleid in de detectiemodus. Deze instelling betekent dat de WAF aanvragen niet blokkeert. Zie WAF-modi voor meer informatie.

Stem uw WAF af voordat u de preventiemodus gebruikt. Afstemming helpt bij het voorkomen van fout-positieve detecties. Het helpt ook om te voorkomen dat uw WAF legitieme aanvragen blokkeert.

Hier configureert u de WAF opnieuw om de preventiemodus te gebruiken.

  1. Open het WAF-beleid.

    U ziet dat de beleidsmodus is ingesteld bij Detectie.

    Schermopname van het WAF-beleid, met de beleidsmodus en de knop Overschakelen naar de preventiemodus gemarkeerd.

  2. Selecteer Overschakelen naar de preventiemodus.

Vereisten

Voordat u begint met het instellen van een beleid voor frequentielimiet, stelt u uw PowerShell-omgeving in en maakt u een Azure Front Door-profiel.

Uw PowerShell-omgeving instellen

Azure PowerShell voorziet in een set van cmdlets die gebruikmaken van het Azure Resource Manager-model om uw Azure-resources te beheren.

U kunt Azure PowerShell op uw lokale computer installeren en in elke PowerShell-sessie gebruiken. Hier meldt u zich aan met uw Azure-referenties en installeert u de Azure PowerShell-module voor Azure Front Door Standard of Premium.

Verbinding maken met Azure met een interactief dialoogvenster voor aanmelden

Meld u aan bij Azure door de volgende opdracht uit te voeren:

Connect-AzAccount

PowerShellGet installeren

Zorg ervoor dat de huidige versie van PowerShellGet is geïnstalleerd. Voer de volgende opdracht uit:

Install-Module PowerShellGet -Force -AllowClobber

Start Vervolgens PowerShell opnieuw om ervoor te zorgen dat u de nieuwste versie gebruikt.

De Azure Front Door PowerShell-modules installeren

Installeer de Az.FrontDoor en Az.Cdn PowerShell-modules om te werken met Azure Front Door Standard of Premium vanuit PowerShell.

Install-Module -Name Az.FrontDoor
Install-Module -Name Az.Cdn

U gebruikt de Az.Cdn module om te werken met Azure Front Door Standard- of Premium-resources. Gebruik de Az.FrontDoor module om te werken met WAF-resources.

Een brongroep maken

Gebruik de cmdlet New-AzResourceGroup om een nieuwe resourcegroep te maken voor uw Azure Front Door-profiel en WAF-beleid. Werk de naam en locatie van de resourcegroep bij voor uw eigen vereisten:

$resourceGroupName = 'FrontDoorRateLimit'

New-AzResourceGroup -Name $resourceGroupName -Location 'westus'

Een Azure Front Door-profiel maken

Gebruik de cmdlet New-AzFrontDoorCdnProfile om een nieuw Azure Front Door-profiel te maken.

In dit voorbeeld maakt u een Standaardprofiel voor Azure Front Door met de naam MyFrontDoorProfile:

$frontDoorProfile = New-AzFrontDoorCdnProfile `
  -Name 'MyFrontDoorProfile' `
  -ResourceGroupName $resourceGroupName `
  -Location global `
  -SkuName Standard_AzureFrontDoor

Een Azure Front Door-eindpunt maken

Gebruik de cmdlet New-AzFrontDoorCdnEndpoint om een eindpunt toe te voegen aan uw Azure Front Door-profiel.

Azure Front Door-eindpunten moeten wereldwijd unieke namen hebben, dus werk de waarde van de $frontDoorEndpointName variabele bij naar iets unieks.

$frontDoorEndpointName = '<unique-front-door-endpoint-name>'

$frontDoorEndpoint = New-AzFrontDoorCdnEndpoint `
  -EndpointName $frontDoorEndpointName `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Location $frontDoorProfile.Location

Een URL-overeenkomstvoorwaarde definiëren

Gebruik de cmdlet New-AzFrontDoorWafMatchConditionObject om een overeenkomstvoorwaarde te maken om aanvragen te identificeren waarop de frequentielimiet moet worden toegepast.

Het volgende voorbeeld komt overeen met aanvragen waarbij de RequestUri variabele de tekenreeks /promo bevat:

$promoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
  -MatchVariable RequestUri `
  -OperatorProperty Contains `
  -MatchValue '/promo'

Een aangepaste regel voor frequentielimiet maken

Gebruik de cmdlet New-AzFrontDoorWafCustomRuleObject om de frequentielimietregel te maken, die de overeenkomstvoorwaarde bevat die u in de vorige stap hebt gedefinieerd en de drempelwaarde voor aanvragen.

In het volgende voorbeeld wordt de limiet ingesteld op 1000:

$promoRateLimitRule = New-AzFrontDoorWafCustomRuleObject `
  -Name 'rateLimitRule' `
  -RuleType RateLimitRule `
  -MatchCondition $promoMatchCondition `
  -RateLimitThreshold 1000 `
  -Action Block `
  -Priority 1

Wanneer een bron-IP-adres binnen één minuut meer dan 1000 aanvragen verzendt, blokkeert de WAF volgende aanvragen tot de volgende minuut begint.

Een WAF-beleid maken

Gebruik de cmdlet New-AzFrontDoorWafPolicy om een WAF-beleid te maken, dat de aangepaste regel bevat die u hebt gemaakt.

$wafPolicy = New-AzFrontDoorWafPolicy `
  -Name 'MyWafPolicy' `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Sku Standard_AzureFrontDoor `
  -CustomRule $promoRateLimitRule

Een beveiligingsbeleid configureren om uw Azure Front Door-profiel te koppelen aan uw WAF-beleid

Gebruik de cmdlet New-AzFrontDoorCdnSecurityPolicy om een beveiligingsbeleid te maken voor uw Azure Front Door-profiel. Een beveiligingsbeleid koppelt uw WAF-beleid aan domeinen die u wilt beveiligen door de WAF-regel.

In dit voorbeeld koppelt u de standaardhostnaam van het eindpunt aan uw WAF-beleid:

$securityPolicyAssociation = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallAssociationObject `
  -PatternsToMatch @("/*") `
  -Domain @(@{"Id"=$($frontDoorEndpoint.Id)})

$securityPolicyParameters = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallParametersObject `
  -Association $securityPolicyAssociation `
  -WafPolicyId $wafPolicy.Id

$frontDoorSecurityPolicy = New-AzFrontDoorCdnSecurityPolicy `
  -Name 'MySecurityPolicy' `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Parameter $securityPolicyParameters

Vereisten

Voordat u begint met het instellen van een beleid voor frequentielimiet, stelt u uw Azure CLI-omgeving in en maakt u een Azure Front Door-profiel.

Uw Azure CLI-omgeving instellen

De Azure CLI biedt een set opdrachten die gebruikmaken van het Azure Resource Manager-model voor het beheren van uw Azure-resources.

U kunt de Azure CLI installeren op uw lokale computer en deze gebruiken in elke shell-sessie. Hier meldt u zich aan met uw Azure-referenties en installeert u de Azure CLI-extensie voor Azure Front Door Standard of Premium.

Verbinding maken met Azure met een interactief dialoogvenster voor aanmelden

Meld u aan bij Azure door de volgende opdracht uit te voeren:

az login

De Azure Front Door-extensie voor de Azure CLI installeren

Installeer de front-door extensie om te werken met de Azure Front Door WAF vanuit de Azure CLI:

az extension add --name front-door

U gebruikt de az afd opdrachten om te werken met Azure Front Door Standard- of Premium-resources. Gebruik de az network front-door waf-policy opdrachten om te werken met WAF-resources.

Een brongroep maken

Gebruik de opdracht az group create om een nieuwe resourcegroep te maken voor uw Azure Front Door-profiel en WAF-beleid. Werk de naam en locatie van de resourcegroep bij voor uw eigen vereisten:

resourceGroupName='FrontDoorRateLimit'

az group create \
  --name $resourceGroupName \
  --location westus

Een Azure Front Door-profiel maken

Gebruik de opdracht az afd profile create om een nieuw Azure Front Door-profiel te maken.

In dit voorbeeld maakt u een Standaardprofiel voor Azure Front Door met de naam MyFrontDoorProfile:

frontDoorProfileName='MyFrontDoorProfile'

az afd profile create \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Een Azure Front Door-eindpunt maken

Gebruik de opdracht az afd endpoint create om een eindpunt toe te voegen aan uw Azure Front Door-profiel.

Azure Front Door-eindpunten moeten wereldwijd unieke namen hebben, dus werk de waarde van de frontDoorEndpointName variabele bij naar iets unieks.

frontDoorEndpointName='<unique-front-door-endpoint-name>'

az afd endpoint create \
  --endpoint-name $frontDoorEndpointName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \

Een WAF-beleid maken

Gebruik de opdracht az network front-door waf-policy create om een WAF-beleid te maken:

wafPolicyName='MyWafPolicy'

az network front-door waf-policy create \
  --name $wafPolicyName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Een aangepaste regel voor frequentielimiet toevoegen voorbereiden

Gebruik de opdracht az network front-door waf-policy rule create om een aangepaste frequentielimietregel te maken. In het volgende voorbeeld wordt de limiet ingesteld op 1000 aanvragen per minuut.

Regels voor frequentielimiet moeten een overeenkomstvoorwaarde bevatten, die u in de volgende stap maakt. In deze opdracht neemt u het --defer argument op, waarmee de Azure CLI de regel nog niet naar Azure verzendt.

az network front-door waf-policy rule create \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName \
  --rule-type RateLimitRule \
  --rate-limit-duration 1 \
  --rate-limit-threshold 1000 \
  --action Block \
  --priority 1 \
  --defer

Wanneer een bron-IP-adres binnen één minuut meer dan 1000 aanvragen verzendt, blokkeert de WAF volgende aanvragen tot de volgende minuut begint.

Een voorwaarde voor overeenkomst toevoegen

Gebruik de opdracht az network front-door waf-policy rule match-condition add om een overeenkomstvoorwaarde toe te voegen aan uw aangepaste regel. De overeenkomstvoorwaarde identificeert aanvragen waarop de frequentielimiet moet worden toegepast.

Het volgende voorbeeld komt overeen met aanvragen waarbij de RequestUri variabele de tekenreeks /promo bevat:

az network front-door waf-policy rule match-condition add \
  --match-variable RequestUri \
  --operator Contains \
  --values '/promo' \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName

Wanneer u deze opdracht verzendt, maakt de Azure CLI de regel voor frequentielimiet en overeenkomstvoorwaarde samen.

Een beveiligingsbeleid configureren om uw Azure Front Door-profiel te koppelen aan uw WAF-beleid

Gebruik de opdracht az afd security-policy create om een beveiligingsbeleid te maken voor uw Azure Front Door-profiel. Een beveiligingsbeleid koppelt uw WAF-beleid aan domeinen die u wilt beveiligen door de WAF-regel.

In dit voorbeeld koppelt u de standaardhostnaam van het eindpunt aan uw WAF-beleid:

securityPolicyName='MySecurityPolicy'

wafPolicyResourceId=$(az network front-door waf-policy show --name $wafPolicyName --resource-group $resourceGroupName --query id --output tsv)
frontDoorEndpointResourceId=$(az afd endpoint show --endpoint-name $frontDoorEndpointName --profile-name $frontDoorProfileName --resource-group $resourceGroupName --query id --output tsv)

az afd security-policy create \
  --security-policy-name $securityPolicyName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --domains $frontDoorEndpointResourceId \
  --waf-policy $wafPolicyResourceId

Met de voorgaande code worden de Azure-resource-id's voor het WAF-beleid en het Azure Front Door-eindpunt opgezoekd, zodat deze kunnen worden gekoppeld aan uw beveiligingsbeleid.

Notitie

Wanneer u wijzigingen aanbrengt in uw WAF-beleid, hoeft u het Azure Front Door-beveiligingsbeleid niet opnieuw te maken. WAF-beleidsupdates worden automatisch toegepast op de Azure Front Door-domeinen.

Snelstart

Als u een Azure Front Door-profiel met een regel voor frequentielimiet wilt maken met Bicep, raadpleegt u de QuickStart voor Azure Front Door Standard of Premium met snelheidslimiet Bicep.

Volgende stappen

Meer informatie over Azure Front Door.