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 il criterio a un host front-end di Frontdoor di Azure
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
- Altre informazioni su Frontdoor di Azure.
- Altre informazioni su Web application firewall di Azure in Frontdoor di Azure.