Konfigurera en WAF-princip med hjälp av Azure PowerShell

En waf-princip (web application firewall) definierar de inspektioner som krävs när en begäran kommer till Azure Front Door.

Den här artikeln visar hur man konfigurerar en WAF-policy för Azure Front Door Standard eller Premium som består av några anpassade regler och har Azure-hanterad standardregeluppsättning aktiverad. Anpassade regler gäller både Standard- och Premium-nivåerna. Hanterade regeluppsättningar, såsom Default Rule Set, kräver Premium-nivån.

Anpassade regler och standardregeluppsättningen är valfria; inkludera antingen eller båda för att passa dina behov. Du sätter WAF-policyläget (Detection or Prevention) när du skapar policyn i ett senare steg.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.

  • En Azure Front Door Standard- eller Premium-profil. Om du behöver skapa en profil finns mer information i Snabbstart: Skapa en Azure Front Door Standard/Premium-profil med PowerShell. Exemplen i denna artikel använder en Premium-profil eftersom hanterade regeluppsättningar kräver Premium-nivån.

  • Azure Cloud Shell eller Azure PowerShell.

    Stegen i den här artikeln kör Azure PowerShell-cmdletarna interaktivt i Azure Cloud Shell. Om du vill köra cmdletarna i Cloud Shell väljer du Öppna Cloud Shell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra sedan in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell inifrån Azure-portalen.

    Du kan också installera Azure PowerShell lokalt för att köra cmdletarna. Om du kör PowerShell lokalt loggar du in på Azure med hjälp av cmdleten Connect-AzAccount .

  • PowerShell-modulerna Az.Cdn och Az.FrontDoor. Använd modulen Az.Cdn för att arbeta med Azure Front Door Standard och Premium-resurser, och modulen Az.FrontDoor för att arbeta med WAF-resurser. Installera båda modulerna genom att köra följande kommandon:

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

Anpassad regel baserat på HTTP-parametrar

I följande exempel visas hur du konfigurerar en anpassad regel med två matchningsvillkor med hjälp av New-AzFrontDoorWafMatchConditionObject. Begäranden kommer från en angiven webbplats som definierats av referenten och frågesträngen innehåller passwordinte .

$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

Anpassad regel baserad på en HTTP-begärandemetod

Skapa en regel som blockerar en PUT-metod med hjälp av New-AzFrontDoorWafCustomRuleObject.

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

Skapa en anpassad regel baserat på storleksbegränsning

Följande exempel skapar en regel som blockerar förfrågningar med en URL längre än 100 tecken genom att använda Azure PowerShell.

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

Lägga till en hanterad standardregeluppsättning

Hanterade regeluppsättningar finns tillgängliga på Azure Front Door Premium. Följande exempel skapar ett hanterat Default Rule Set-objekt genom att använda Azure PowerShell.

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

Kommentar

Managed rule sets kräver Azure Front Door Premium. Azure Front Door Standard stöder endast anpassade regler. Detta exempel använder Microsoft_DefaultRuleSet version 2.2. För alla tillgängliga versioner, se Web Application Firewall DRS regelgrupper och regler.

Skapa en WAF-policy

Skapa en WAF-policy som inkluderar de anpassade reglerna och den hanterade standardregeluppsättningen från föregående steg genom att använda New-AzFrontDoorWafPolicy. Ställ -Sku in på Premium_AzureFrontDoor för att inkludera hanterade regler, eller till endast Standard_AzureFrontDoor för anpassade regler.

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

Koppla WAF-policyn till din endpoint

För Azure Front Door Standard och Premium kopplar du en WAF-policy till din endpoint genom att skapa en säkerhetspolicy på Azure Front Door-profilen. En säkerhetspolicy kopplar din WAF-policy till de domäner som du vill att WAF ska skydda.

Hämta din endpoint genom att använda Get-AzFrontDoorCdnEndpoint och ersätt resursgruppen, profilen och endpoint-namnen med dina egna. Använd sedan New-AzFrontDoorCdnSecurityPolicy för att koppla endpointens standardvärdnamn till din WAF-policy.

$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

Kommentar

En säkerhetspolicy gäller för domänerna i dess association. För att skydda fler domäner, lägg till dem i associationen eller skapa ytterligare säkerhetspolicyer.