Een WAF-beleid configureren met behulp van Azure PowerShell

Een WAF-beleid (Web Application Firewall) definieert de inspecties die nodig zijn wanneer een aanvraag binnenkomt bij Azure Front Door.

Dit artikel laat zien hoe je een WAF-beleid configureert voor Azure Front Door Standard of Premium dat bestaat uit enkele aangepaste regels en de door Azure beheerde Default Rule Set is ingeschakeld. Aangepaste regels gelden voor zowel de Standard- als Premium-niveaus. Beheerde regelsets, zoals de Default Rule Set, vereisen de Premium-laag.

Aangepaste regels en de Standaard Regelset zijn optioneel; voeg een of beide toe om aan je behoeften te voldoen. Je stelt de WAF-beleidsmodus (Detectie of Preventie) in wanneer je het beleid in een latere stap aanmaakt.

Vereiste voorwaarden

  • Een Azure-account met een actief abonnement. Gratis een account maken

  • Een Azure Front Door Standard- of Premium-profiel. Als je er een moet aanmaken, raadpleeg dan Snelstart: een Azure Front Door Standard/Premium-profiel maken met PowerShell. De voorbeelden in dit artikel gebruiken een Premium-profiel omdat beheerde regelsets de Premium-laag vereisen.

  • Azure Cloud Shell of Azure PowerShell.

    Met de stappen in dit artikel worden de Azure PowerShell-cmdlets interactief uitgevoerd in Azure Cloud Shell. Als u de cmdlets in de Cloud Shell wilt uitvoeren, selecteert u Open Cloud Shell in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt de Cloud Shell ook uitvoeren vanuit de Azure-portal.

    U kunt Azure PowerShell ook lokaal installeren om de cmdlets uit te voeren. Als u PowerShell lokaal uitvoert, meldt u zich aan bij Azure met behulp van de cmdlet Connect-AzAccount .

  • De Az.Cdn en Az.FrontDoor PowerShell-modules. Gebruik de Az.Cdn module om te werken met Azure Front Door Standard en Premium resources, en de Az.FrontDoor module om met WAF-resources te werken. Installeer beide modules door de volgende commando's uit te voeren:

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

Aangepaste regel op basis van HTTP-parameters

In het volgende voorbeeld wordt beschreven hoe u een aangepaste regel met twee overeenkomstvoorwaarden kunt configureren met behulp van New-AzFrontDoorWafMatchConditionObject. Aanvragen zijn afkomstig van een opgegeven site zoals gedefinieerd door de verwijzer, en de queryreeks bevat geen password.

$referer = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestHeader -OperatorProperty Equal -Selector "Referer" -MatchValue "www.mytrustedsites.com/referpage.html"
$password = New-AzFrontDoorWafMatchConditionObject -MatchVariable QueryString -OperatorProperty Contains -MatchValue "password"
$AllowFromTrustedSites = New-AzFrontDoorWafCustomRuleObject -Name "AllowFromTrustedSites" -RuleType MatchRule -MatchCondition $referer,$password -Action Allow -Priority 1

Aangepaste regel op basis van een HTTP-aanvraagmethode

Maak een regel die een PUT-methode blokkeert met behulp van New-AzFrontDoorWafCustomRuleObject.

$put = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestMethod -OperatorProperty Equal -MatchValue PUT
$BlockPUT = New-AzFrontDoorWafCustomRuleObject -Name "BlockPUT" -RuleType MatchRule -MatchCondition $put -Action Block -Priority 2

Een aangepaste regel maken op basis van groottebeperking

Het volgende voorbeeld maakt een regel die verzoeken blokkeert met een URL langer dan 100 tekens door gebruik te maken van Azure PowerShell.

$url = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty GreaterThanOrEqual -MatchValue 100
$URLOver100 = New-AzFrontDoorWafCustomRuleObject -Name "URLOver100" -RuleType MatchRule -MatchCondition $url -Action Block -Priority 3

Een beheerde standaardregelset toevoegen

Beheerde regelsets zijn beschikbaar op Azure Front Door Premium. Het volgende voorbeeld creëert een beheerd Default Rule Set-object met behulp van Azure PowerShell.

$managedRules = New-AzFrontDoorWafManagedRuleObject -Type Microsoft_DefaultRuleSet -Version 2.2

Opmerking

Beheerde regelsets vereisen Azure Front Door Premium. Azure Front Door Standard ondersteunt alleen aangepaste regels. Dit voorbeeld gebruikt Microsoft_DefaultRuleSet versie 2.2. Voor alle beschikbare versies, zie Web Application Firewall DRS regelgroepen en regels.

Een WAF-beleid maken

Maak een WAF-beleid aan dat de aangepaste regels en de beheerde Default Rule Set uit de vorige stappen bevat met behulp van New-AzFrontDoorWafPolicy. Stel -Sku in op Premium_AzureFrontDoor om beheerde regels op te nemen, of op Standard_AzureFrontDoor voor alleen aangepaste regels.

$myWAFPolicy = New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Sku Premium_AzureFrontDoor -CustomRule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention

Koppel het WAF-beleid aan je eindpunt

Voor Azure Front Door Standard en Premium koppel je een WAF-beleid aan je endpoint door een beveiligingsbeleid aan te maken op het Azure Front Door-profiel. Een beveiligingsbeleid koppelt je WAF-beleid aan de domeinen die je wilt dat de WAF beschermt.

Haal je endpoint op door Get-AzFrontDoorCdnEndpoint te gebruiken en vervang de resourcegroep-, profiel- en endpointnamen door je eigen naam. Gebruik vervolgens New-AzFrontDoorCdnSecurityPolicy om de standaard hostnaam van het endpoint te koppelen aan je WAF-beleid.

$frontDoorEndpoint = Get-AzFrontDoorCdnEndpoint -ResourceGroupName $resourceGroupName -ProfileName $frontDoorProfileName -EndpointName $frontDoorEndpointName

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

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

New-AzFrontDoorCdnSecurityPolicy `
  -Name 'MySecurityPolicy' `
  -ProfileName $frontDoorProfileName `
  -ResourceGroupName $resourceGroupName `
  -Parameter $securityPolicyParameters

Opmerking

Een beveiligingsbeleid geldt voor de domeinen in de associatie ervan. Om meer domeinen te beschermen, voeg je ze toe aan de associatie of maak je extra beveiligingsbeleid.