Questo articolo illustra come configurare le regole di restrizione IP in un web application firewall (WAF) per Frontdoor di Azure usando il portale di Azure, l'interfaccia della riga di comando di Azure, Azure PowerShell o un modello di Azure Resource Manager.
Una regola di controllo degli accessi in base all'indirizzo IP è una regola WAF personalizzata usata per controllare l'accesso alle applicazioni Web. La regola specifica un elenco di indirizzi IP o intervalli di indirizzi IP in formato CIDR (Classless Inter-Domain Routing).
Una corrispondenza dell'indirizzo IP ha due tipi di variabili di corrispondenza: RemoteAddr e SocketAddr. La variabile RemoteAddr è l'IP client originale che viene in genere inviato tramite l'intestazione della richiesta X-Forwarded-For. La variabile SocketAddr è l'indirizzo IP di origine visualizzato dal WAF. Se l'utente è protetto da un proxy, SocketAddr è spesso l'indirizzo del server proxy.
Per impostazione predefinita, l'applicazione Web è accessibile da Internet. Se si vuole limitare l'accesso ai client da un elenco di indirizzi IP noti o intervalli di indirizzi IP, crea una regola di corrispondenza IP che contenga l'elenco di indirizzi IP come valori corrispondenti, imposta l'operatore su Not (con negazione attiva) e imposta l'azione su Block. Dopo aver applicato una regola di restrizione IP, le richieste provenienti da indirizzi esterni a questo elenco di indirizzi consentiti ricevono una risposta 403 Non consentito.
Seguire questa procedura per configurare un criterio WAF usando il portale di Azure.
Prerequisiti
Creare un profilo Frontdoor di Azure seguendo le istruzioni descritte in Avvio rapido: Creare un'istanza di Frontdoor di Azure per un'applicazione Web globale a disponibilità elevata.
Impostare una politica WAF
Nel portale di Azure fare clic su Crea una risorsa. Immettere Web application firewall nella casella di ricerca Servizi di ricerca e marketplace e selezionare Invio. Selezionare quindi Web application firewall (WAF).
Seleziona Crea.
Nella pagina Crea un criterio WAF usare i valori seguenti per completare la scheda Informazioni di base.
| Impostazione |
Valore |
| Criteri per |
Global WAF (Frontdoor). |
| Livello Frontdoor |
Selezionare Premium o Standard per corrispondere al livello Frontdoor di Azure. |
| Abbonamento |
Selezionare la propria sottoscrizione. |
| Gruppo di risorse |
Selezionare il gruppo di risorse in cui si trova l'istanza di Frontdoor di Azure. |
| Nome del criterio |
Immettere un nome per il criterio. |
| Stato criteri |
Selezionato |
| Modalità politica |
Prevenzione |
Selezionare Avanti: Regole gestite.
Selezionare Avanti: Impostazioni dei criteri.
Nella scheda Impostazioni criteri, immettere Sei stato bloccato! per il corpo della risposta blocco in modo da poter vedere che la regola personalizzata è attiva.
Selezionare Avanti: Regole personalizzate.
Selezionare Aggiungi regola personalizzata.
Nella pagina Aggiungi regola personalizzata usare i valori di test seguenti per creare una regola personalizzata.
| Impostazione |
Valore |
| Nome regola personalizzata |
FdWafCustRule |
| Stato |
Attivata |
| Tipo di regola |
Match |
| Priorità |
100 |
| Tipo di corrispondenza |
Indirizzo IP |
| Variabile di corrispondenza |
SocketAddr |
| Operazione |
Non contiene |
| Indirizzo IP o intervallo |
10.10.10.0/24 |
| Poi |
Blocca traffico |
Selezionare Aggiungi.
Selezionare Avanti: Associazione.
Selezionare Associa un profilo Frontdoor.
Per il profilo front-end, scegli il tuo profilo front-end.
In Dominio, selezionare il dominio.
Selezionare Aggiungi.
Selezionare Rivedi e crea.
Dopo aver superato la convalida dei criteri, selezionare Crea.
Testare i criteri di WAF
Una volta completata la distribuzione dei criteri di WAF, accedere al nome host front-end di Frontdoor di Azure.
Verrà visualizzato il messaggio di blocco personalizzato.
Nota
Un indirizzo IP privato viene usato nella regola personalizzata per garantire i trigger della regola. In una distribuzione effettiva, creare le regole consenti e nega usando indirizzi IP per la situazione specifica.
Seguire questa procedura per configurare un criterio WAF usando l'interfaccia della riga di comando di Azure.
Prerequisiti
Prima di iniziare a configurare un criterio di restrizione IP, imposta l'ambiente CLI (Command Line Interface) e crea un profilo Frontdoor di Azure.
Configurare l'ambiente dell'interfaccia della riga di comando di Azure
- Installare l'interfaccia della riga di comando di Azure o usare Azure Cloud Shell. Azure Cloud Shell è una shell Bash gratuita che è possibile eseguire direttamente nel portale di Azure. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account. Selezionare il pulsante Prova nei comandi dell'interfaccia della riga di comando che seguono. Accedere quindi all'account Azure nella sessione di Cloud Shell visualizzata. Dopo l'avvio della sessione, immettere
az extension add --name front-door per aggiungere l'estensione Frontdoor di Azure.
- Se stai usando la CLI localmente su Bash, accedi ad Azure usando
az login.
Creare un profilo di Frontdoor di Azure
Creare un profilo Frontdoor di Azure seguendo le istruzioni descritte in Avvio rapido: Creare un'istanza di Frontdoor di Azure per un'applicazione Web globale a disponibilità elevata.
Impostare una politica WAF
Usa il comando az network front-door waf-policy create per creare un criterio WAF.
Nell'esempio seguente sostituire il nome del criterio IPAllowPolicyExampleCLI con un nome di criterio univoco.
az network front-door waf-policy create \
--resource-group <resource-group-name> \
--subscription <subscription ID> \
--name IPAllowPolicyExampleCLI
Aggiungere una regola di controllo di accesso IP personalizzata
Usare il comando az network front-door waf-policy custom-rule create per aggiungere una regola di controllo di accesso IP personalizzata per il criterio WAF creato.
Negli esempi seguenti:
- Sostituire IPAllowPolicyExampleCLI con la tua politica univoca che hai creato in precedenza.
- Sostituire ip-address-range-1, ip-address-range-2 con il proprio intervallo.
Creare prima di tutto una regola di autorizzazione IP per i criteri creati nel passaggio precedente.
Nota
--defer è necessario perché una regola deve avere una condizione di corrispondenza da aggiungere nel passaggio successivo.
az network front-door waf-policy rule create \
--name IPAllowListRule \
--priority 1 \
--rule-type MatchRule \
--action Block \
--resource-group <resource-group-name> \
--policy-name IPAllowPolicyExampleCLI --defer
Aggiungere quindi una condizione di corrispondenza alla regola:
az network front-door waf-policy rule match-condition add \
--match-variable SocketAddr \
--operator IPMatch \
--values "ip-address-range-1" "ip-address-range-2" \
--negate true \
--name IPAllowListRule \
--resource-group <resource-group-name> \
--policy-name IPAllowPolicyExampleCLI
Trova l'ID di una policy WAF
Trovare l'ID di un criterio WAF usando il comando az network front-door waf-policy show. Sostituire IPAllowPolicyExampleCLI nell'esempio seguente con i criteri univoci che hai creato in precedenza.
az network front-door waf-policy show \
--resource-group <resource-group-name> \
--name IPAllowPolicyExampleCLI
Collegare un criterio WAF a un host front-end di Frontdoor di Azure
Imposta l'ID di Frontdoor di Azure WebApplicationFirewallPolicyLink su quello della politica usando il comando az network front-door update. Sostituire IPAllowPolicyExampleCLI con i criteri univoci creati in precedenza.
az network front-door update \
--set FrontendEndpoints[0].WebApplicationFirewallPolicyLink.id=/subscriptions/<subscription ID>/resourcegroups/resource-group-name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/IPAllowPolicyExampleCLI \
--name <frontdoor-name> \
--resource-group <resource-group-name>
In questo esempio, i criteri WAF vengono applicati a FrontendEndpoints[0]. È possibile collegare il criterio WAF a uno qualsiasi dei front-end.
Nota
È necessario impostare la proprietà WebApplicationFirewallPolicyLink una sola volta per collegare un criterio di WAF a un front-end di Frontdoor di Azure. Gli aggiornamenti successivi della politica vengono applicati automaticamente al front-end.
Seguire questa procedura per configurare un criterio WAF usando Azure PowerShell.
Prerequisiti
Prima di iniziare a configurare un criterio di restrizione IP, 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 a PowerShell usando le credenziali di Azure e quindi installare il modulo Az PowerShell.
Connettersi ad Azure usando il comando seguente e quindi usare una finestra di dialogo interattiva per accedere.
Connect-AzAccount
Prima di installare un modulo Frontdoor di Azure, assicurarsi di avere installato la versione corrente del modulo PowerShellGet. Eseguire il comando seguente e quindi riaprire PowerShell.
Install-Module PowerShellGet -Force -AllowClobber
Installare il modulo Az.FrontDoor usando il comando seguente:
Install-Module -Name Az.FrontDoor
Creare un profilo di Frontdoor di Azure
Creare un profilo di Frontdoor di Azure seguendo le istruzioni riportate in Quickstart: Creare una frontdoor per un'applicazione Web globale a disponibilità elevata.
Definire una condizione di corrispondenza IP
Usare il comando New-AzFrontDoorWafMatchConditionObject per definire una condizione di corrispondenza IP.
Nell'esempio seguente sostituire ip-address-range-1 e ip-address-range-2 con intervalli personalizzati.
$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1
Creare una regola di autorizzazione IP personalizzata
Usare il comando New-AzFrontDoorWafCustomRuleObject per definire un'azione e impostare una priorità. Nell'esempio seguente le richieste da indirizzi IP client che non corrispondono all'elenco vengono bloccate.
$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1
Trovare il nome del gruppo di risorse che contiene il profilo frontdoor di Azure usando Get-AzResourceGroup. Successivamente, configura un criterio WAF con la regola IP usando New-AzFrontDoorWafPolicy.
$IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
-Name "IPRestrictionExamplePS" `
-resourceGroupName <resource-group-name> `
-Customrule $IPAllowRule`
-Mode Prevention `
-EnabledState Enabled
Collegare un criterio WAF a un host front-end di Frontdoor di Azure
Collegare un oggetto dei Criteri WAF a un host front-end 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 sull'ID risorsa di $IPAllowPolicyExamplePS, creato nel passaggio precedente, usando il comando Set-AzFrontDoor.
$FrontDoorObjectExample = Get-AzFrontDoor `
-ResourceGroupName <resource-group-name> `
-Name $frontDoorName
$FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]
Nota
In questo esempio, i criteri WAF vengono applicati a FrontendEndpoints[0]. È possibile collegare un criterio WAF a uno qualsiasi dei front-end. È necessario impostare la proprietà WebApplicationFirewallPolicyLink una sola volta per collegare un criterio di WAF a un front-end di Frontdoor di Azure. Gli aggiornamenti successivi della politica vengono applicati automaticamente al front-end.
Per visualizzare il modello di Resource Manager che crea un criterio frontdoor di Azure e un criterio WAF con regole di restrizione IP personalizzate, passare a GitHub.