Configurare un criterio WAF usando Azure PowerShell

Un criterio web application firewall (WAF) definisce le ispezioni necessarie quando una richiesta arriva in Frontdoor di Azure.

Questo articolo illustra come configurare un criterio WAF costituito da alcune regole personalizzate e con il set di regole predefinite gestito da Azure abilitato.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

Prima di iniziare a configurare un criterio di limite di velocità, configurare l'ambiente PowerShell e creare un profilo frontdoor di Azure.

Configurare l'ambiente PowerShell

Azure PowerShell offre un set di cmdlet che usano il modello Azure Resource Manager per la gestione delle risorse di Azure.

È possibile installare Azure PowerShell nel computer locale e usarlo in qualsiasi sessione di PowerShell. Seguire le istruzioni nella pagina per accedere con le credenziali di Azure. Installare quindi il modulo Az PowerShell.

Accedere ad Azure

Connect-AzAccount

Prima di installare il modulo Frontdoor di Azure, assicurarsi di avere installato la versione corrente di PowerShellGet. Eseguire il comando seguente e riaprire PowerShell.

Install-Module PowerShellGet -Force -AllowClobber

Installare il modulo Az.FrontDoor

Install-Module -Name Az.FrontDoor

Creare un profilo frontdoor di Azure

Creare un profilo frontdoor di Azure seguendo le istruzioni descritte in Avvio rapido: Creare un profilo frontdoor di Azure.

Regola personalizzata basata sui parametri HTTP

L'esempio seguente illustra come configurare una regola personalizzata con due condizioni di corrispondenza usando New-AzFrontDoorWafMatchConditionObject. Le richieste provengono da un sito specificato come definito dal referrer e la stringa di query non contiene 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

Regola personalizzata basata su un metodo di richiesta HTTP

Creare una regola che blocca un metodo PUT usando New-AzFrontDoorWafCustomRuleObject.

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

Creare una regola personalizzata in base al vincolo di dimensione

Nell'esempio seguente viene creata una regola che blocca le richieste con un URL con più di 100 caratteri usando Azure PowerShell.

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

Aggiungere un set di regole predefinito gestito

Nell'esempio seguente viene creato un set di regole predefinito gestito usando Azure PowerShell.

$managedRules =  New-AzFrontDoorWafManagedRuleObject -Type DefaultRuleSet -Version 1.0

Configurare un criterio di sicurezza

Trovare il nome del gruppo di risorse che contiene il profilo frontdoor di Azure usando Get-AzResourceGroup. Configurare quindi un criterio di sicurezza con le regole create nei passaggi precedenti usando New-AzFrontDoorWafPolicy nel gruppo di risorse specificato che contiene il profilo frontdoor di Azure.

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

Collegare l'oggetto criteri di sicurezza a un host front-end front-end di Azure esistente e aggiornare le proprietà di Frontdoor di Azure. Recuperare prima di tutto l'oggetto Frontdoor di Azure usando Get-AzFrontDoor. Impostare quindi la proprietà front-end WebApplicationFirewallPolicyLink sull'oggetto resourceId dell'oggetto $myWAFPolicy$ creato nel passaggio precedente usando Set-AzFrontDoor.

L'esempio seguente usa il nome myResourceGroupFD1 del gruppo di risorse presupponendo che sia stato creato il profilo frontdoor di Azure usando le istruzioni fornite in Avvio rapido: Creare una frontdoor di Azure. Nell'esempio seguente sostituire $frontDoorName anche con il nome del profilo frontdoor di Azure.

   $FrontDoorObjectExample = Get-AzFrontDoor `
     -ResourceGroupName myResourceGroupFD1 `
     -Name $frontDoorName
   $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $myWAFPolicy.Id
   Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Nota

È sufficiente impostare la WebApplicationFirewallPolicyLink proprietà una sola volta per collegare un criterio di sicurezza a un front-end front-end di Frontdoor di Azure. Gli aggiornamenti successivi dei criteri vengono applicati automaticamente al front-end.

Passaggi successivi