Configurare una regola di restrizione IP con un WAF per Frontdoor di Azure

Questo articolo illustra come configurare le regole di restrizione IP in un web application firewall (WAF) per Frontdoor di Azure usando l'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 Classless Inter-Domain Routing (CIDR).

Esistono due tipi di variabili di corrispondenza in una corrispondenza dell'indirizzo IP: RemoteAddr e SocketAddr. La RemoteAddr variabile è l'INDIRIZZO IP client originale in genere inviato tramite l'intestazione della X-Forwarded-For richiesta. La SocketAddr variabile è l'indirizzo IP di origine visualizzato dal WAF. Se l'utente è 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 che contiene 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 consentito ricevono una risposta non consentita 403.

Configurare un criterio WAF con l'portale di Azure

Seguire questa procedura per configurare un criterio WAF usando la 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

  1. 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).

  2. Selezionare Crea.

  3. Nella pagina Crea criteri WAF usare i valori seguenti per completare la scheda Nozioni di base .

    Impostazione Valore
    Criteri per WAF globale (frontdoor).
    Livello frontdoor Selezionare Premium o Standard per corrispondere al livello Frontdoor di Azure.
    Subscription Selezionare la propria sottoscrizione.
    Resource group Selezionare il gruppo di risorse in cui si trova l'istanza di Frontdoor di Azure.
    Nome criteri Immettere un nome per il criterio.
    Stato criteri Opzione selezionata.
    Modalità criteri Prevenzione.
  4. Selezionare Avanti: regole gestite.

  5. Selezionare Avanti: impostazioni dei criteri.

  6. Nella scheda Impostazioni criteri immettere È stato bloccato! per il corpo della risposta Blocca in modo da poter notare che la regola personalizzata è effettiva.

  7. Selezionare Avanti: regole personalizzate.

  8. Selezionare Aggiungi regola personalizzata.

  9. Nella pagina Aggiungi regola personalizzata usare i valori di test seguenti per creare una regola personalizzata.

    Impostazione Valore
    Nome della regola personalizzata FdWafCustRule
    Stato Attivato
    Tipo 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 Negare il traffico

    Regola personalizzata

    Selezionare Aggiungi.

  10. Selezionare Avanti: Associazione.

  11. Selezionare Associa un profilo Frontdoor.

  12. Per il profilo front-end selezionare il profilo front-end.

  13. Per Dominio selezionare il dominio.

  14. Selezionare Aggiungi.

  15. Selezionare Rivedi e crea.

  16. Dopo aver superato la convalida dei criteri, selezionare Crea.

Testare i criteri WAF

  1. Al termine della distribuzione dei criteri WAF, passare al nome host front-end di Azure Frontdoor.

  2. Verrà visualizzato il messaggio di blocco personalizzato.

    Test delle regole WAF

    Nota

    Un indirizzo IP privato è stato usato intenzionalmente nella regola personalizzata per garantire che la regola venga attivata. In una distribuzione effettiva creare regole di autorizzazione e negazione usando gli indirizzi IP per la situazione specifica.

Configurare un criterio WAF con l'interfaccia della riga di comando di Azure

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

  1. 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 aperta. Dopo l'avvio della sessione, immettere az extension add --name front-door per aggiungere l'estensione Frontdoor di Azure.
  2. Se si usa l'interfaccia della riga di comando in locale in Bash, accedere ad Azure usando az login.

Creare un profilo 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 i criteri WAF creati.

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

Impostare l'ID del servizio 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 il criterio WAF viene applicato a FrontendEndpoints[0]. È possibile collegare il criterio WAF a uno qualsiasi dei front-end.

Nota

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

Configurare un criterio WAF con Azure PowerShell

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 fornisce un set di cmdlet che usano il modello di 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.

  1. Connettersi ad Azure usando il comando seguente e quindi usare una finestra di dialogo interattiva per accedere.

    Connect-AzAccount
    
  2. 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
    
  3. Installare il modulo Az.FrontDoor usando il comando seguente:

    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 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 corrispondenti all'elenco vengono bloccate.

$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1

Configurare un criterio WAF

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

Suggerimento

Per un criterio WAF esistente, è possibile usare Update-AzFrontDoorWafPolicy per aggiornare i criteri.

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 WebApplicationFirewallPolicyLink proprietà 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 il criterio WAF viene applicato a FrontendEndpoints[0]. È possibile collegare un criterio WAF a uno qualsiasi dei front-end. È necessario impostare la WebApplicationFirewallPolicyLink proprietà una sola volta per collegare un criterio WAF a un front-end front-end di Frontdoor di Azure. Gli aggiornamenti successivi dei criteri vengono applicati automaticamente al front-end.

Configurare un criterio WAF con un modello di Resource Manager

Per visualizzare il modello che crea un criterio frontdoor di Azure e un criterio WAF con regole di restrizione IP personalizzate, passare a GitHub.

Passaggi successivi

Informazioni su come creare un profilo frontdoor di Azure.