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 che consente di 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).
Esistono due tipi di variabili di corrispondenza in una corrispondenza dell'indirizzo IP: RemoteAddr
e SocketAddr
. La variabile RemoteAddr
è l'indirizzo IP client originale che viene in genere inviato tramite l'intestazione della richiesta di X-Forwarded-For
. La variabile SocketAddr
è l'indirizzo IP di origine visualizzato dal WAF. Se l'utente si trova dietro 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, è possibile creare una regola di corrispondenza IP contenente l'elenco di indirizzi IP come valori corrispondenti e imposta l'operatore su Not
(nega è true) e l'azione su Block
. Dopo l'applicazione di 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.
Creare un criterio 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 |
WAF globale (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 |
Selected |
Modalità criterio |
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 |
Status |
Attivata |
Tipo di regola |
Corrispondenza |
Priorità |
100 |
Tipo di corrispondenza |
Indirizzo IP |
Variabile di corrispondenza |
SocketAddr |
Operazione |
Non contiene |
Indirizzo IP o intervallo |
10.10.10.0/24 |
Risultato |
Nega traffico |
Selezionare Aggiungi.
Selezionare Avanti: Associazione.
Selezionare Associa un profilo frontdoor.
Per profilo front-end, selezionare il 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 WAF
Al termine della distribuzione dei criteri WAF, passare al nome host front-end di Frontdoor di Azure.
Verrà visualizzato il messaggio di blocco personalizzato.
Nota
Un indirizzo IP privato è stato usato intenzionalmente nella regola personalizzata per garantire che la regola venga attivata. In una distribuzione effettiva, creare le regole consenti e nega usando indirizzi IP per una 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, configurare l'ambiente dell'interfaccia della riga di comando e creare 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 si usa l'interfaccia della riga di comando in locale in Bash, accedere ad Azure usando
az login
.
Creare una risorsa 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.
Creare un criterio WAF
Creare un criterio WAF usando il comando az network front-door waf-policy create.
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 i criteri univoci creati 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
è obbligatorio 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
Trovare l'ID di un criterio 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 creati 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 front-end di Frontdoor di Azure
Impostare l'ID frontdoor di Azure WebApplicationFirewallPolicyLink sull'ID criterio 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 WAF a un front-end frontdoor di Azure. Gli aggiornamenti successivi del criterio 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 una risorsa Frontdoor di Azure
Creare un profilo Frontdoor di Azure seguendo le istruzioni descritte in Avvio rapido: 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, ip-address-range-2 con il proprio intervallo.
$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 non provenienti da indirizzi IP client che 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
. Configurare quindi 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 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 WAF a un front-end frontdoor di Azure. Gli aggiornamenti successivi del criterio 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.