Share via


Een regel voor Web Application Firewall-frequentielimiet configureren

De Azure Web Application Firewall regel voor frequentielimiet 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-regel (Web Application Firewall) voor frequentielimieten 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 door uw organisatie wordt uitgevoerd. 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 ondervindt.

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

Tip

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Een Azure Front Door-profiel en WAF-beleid maken

  1. Selecteer een resource maken in de Azure Portal.

    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 snel maken van de portal te gebruiken.

    Schermopname van de Azure Front Door-aanbiedingen, met de optie Snel maken geselecteerd en de knop Doorgaan met het maken van een Front Door 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 van uw Azure Front Door-profiel in.
    • Laag: selecteer Standard of Premium. Voor dit scenario ondersteunen beide lagen snelheidsbeperking.
    • 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 oorsprongtoepassing die u wilt beveiligen met de regel voor frequentielimiet.
  6. Selecteer nieuwe maken naast WAF-beleid.

    Schermopname van de werkstroom voor het maken van Azure Front Door, met de waf-beleidsknop Nieuwe maken 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 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 gegevens in die nodig zijn om een regel voor frequentielimiet te maken:

    • Naam van aangepaste regel: voer de naam in van de aangepaste regel, zoals rateLimitRule.
    • Regeltype: Selecteer Frequentielimiet.
    • 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 nodig is om een overeenkomstvoorwaarde op te geven om aanvragen te identificeren waarbij de URL de tekenreeks */promo*bevat:

    • Overeenkomsttype: Selecteer Tekenreeks.
    • Overeenkomstvariabele: Voer RequestUri in.
    • Bewerking: selecteer is.
    • Operator: selecteer Bevat.
    • Overeenkomende waarden: voer /promo in.
  4. Bij Actie selecteert u Logboek of Blokkeren.

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

    Schermopname van de configuratie van de aangepaste regel.

  5. Selecteer Toevoegen.

  6. Selecteer Opslaan.

    Schermopname van de lijst met aangepaste regels, met inbegrip van de nieuwe regel voor frequentielimieten.

De preventiemodus op de WAF gebruiken

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

Stem uw WAF af voordat u de preventiemodus gebruikt. Afstemmen helpt fout-positieve detecties te voorkomen. 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 op Detectie.

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

  2. Selecteer Overschakelen naar preventiemodus.

Vereisten

Voordat u begint met het instellen van een frequentielimietbeleid, moet u uw PowerShell-omgeving instellen en een Azure Front Door-profiel maken.

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 module Azure PowerShell 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 PowerShell-modules en Az.Cdn 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 resourcegroep 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 Azure Front Door-standaardprofiel 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 regel voor frequentielimiet te maken, waaronder de overeenkomstvoorwaarde die u in de vorige stap hebt gedefinieerd en de aanvraagdrempelwaarde.

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 meer dan 1000 aanvragen binnen één minuut verzendt, blokkeert de WAF volgende aanvragen totdat 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 frequentielimieten, moet u uw Azure CLI-omgeving instellen en een Azure Front Door-profiel maken.

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 in elke shellsessie gebruiken. 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 resourcegroep 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 Azure Front Door-standaardprofiel 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

Het toevoegen van een aangepaste regel voor frequentielimiet voorbereiden

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

Regels voor frequentielimieten moeten een overeenkomstvoorwaarde bevatten, die u in de volgende stap maakt. In deze opdracht neemt u het --defer argument op, waarmee de Azure CLI wordt verteld dat de regel nog niet naar Azure moet worden verzonden.

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 meer dan 1000 aanvragen binnen één minuut verzendt, blokkeert de WAF volgende aanvragen totdat de volgende minuut begint.

Een overeenkomstvoorwaarde 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 de voorwaarde voor overeenkomst 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 wordt gezocht naar de Azure-resource-id's voor het WAF-beleid en het Azure Front Door-eindpunt, 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 behulp van Bicep, raadpleegt u de quickstart Azure Front Door Standard of Premium met frequentielimiet Bicep.

Volgende stappen

Meer informatie over Azure Front Door.