Configurare un criterio WAF usando Azure PowerShell

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

Questo articolo illustra come configurare un criterio WAF costituito da alcune regole personalizzate e con il set di regole predefinito 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 rate-limit, impostare l'ambiente di 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 una risorsa 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

Nell'esempio seguente viene illustrato 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 delle dimensioni

L'esempio seguente crea 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

L'esempio seguente crea 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 di Frontdoor 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à WebApplicationFirewallPolicyLink front-end sul resourceId di $myWAFPolicy$ creato nel passaggio precedente usando Set-AzFrontDoor.

Nota

Per Frontdoor di Azure Standard e Premium, è consigliabile usare Get-AzFrontDoorCdnProfile.

L'esempio seguente usa il nome del gruppo di risorse myResourceGroupFD1 presupponendo che sia stato creato il profilo frontdoor di Azure usando le istruzioni fornite in Avvio rapido: Creare un'istanza di Frontdoor di Azure. Nell'esempio seguente sostituire anche $frontDoorName 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

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

Passaggi successivi