Esercitazione: Creare un gateway applicazione con un'istanza di Web Application Firewall tramite il portale di Azure
Questa esercitazione illustra come usare il portale di Azure per creare un gateway applicazione con un web application firewall (WAF). Il WAF usa regole di OWASP per proteggere l'applicazione. Queste regole includono la protezione contro attacchi di tipo SQL injection, attacchi tramite script da altri siti (XSS) e hijack delle sessioni. Al termine della creazione, si testa il gateway applicazione per verificare che funzioni correttamente. Con il gateway applicazione di Azure si indirizza il traffico Web dell'applicazione a risorse specifiche assegnando listener alle porte, creando regole e aggiungendo risorse a un pool back-end. Per semplicità, questa esercitazione usa una semplice configurazione con un indirizzo IP front-end pubblico, un listener di base per ospitare un singolo sito in questo gateway applicazione, due macchine virtuali Linux usate per il pool back-end e una regola di routing delle richieste di base.
In questa esercitazione apprenderai a:
- Creare un gateway applicazione con WAF abilitato
- Creare le macchine virtuali usate come server back-end
- Creare un account di archiviazione e configurare la diagnostica
- Testare il gateway applicazione
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Accedere ad Azure
Accedere al portale di Azure.
Creare un gateway applicazione
Selezionare Crea una risorsa nel menu a sinistra del portale di Azure. Verrà visualizzata la finestra Crea una risorsa .
Selezionare Rete e quindi selezionare gateway applicazione nell'elenco Servizi di Azure più diffusi.
Scheda Informazioni di base
Nella scheda Informazioni di base immettere questi valori per le impostazioni del gateway applicazione seguenti:
Gruppo di risorse: selezionare myResourceGroupAG per il gruppo di risorse. Se non esiste, selezionare Crea nuovo per crearlo.
Nome gateway applicazione: immettere myAppGateway come nome gateway applicazione.
Livello: selezionare WAF V2.
Criteri WAF: selezionare Crea nuovo, digitare un nome per il nuovo criterio e quindi selezionare OK. In questo modo viene creato un criterio WAF di base con un set di regole di base gestito.
Per le comunicazioni tra le risorse create in Azure è necessaria una rete virtuale. È possibile creare una nuova rete virtuale oppure usarne una esistente. In questo esempio viene creata una nuova rete virtuale contemporaneamente alla creazione del gateway applicazione. Le istanze del gateway applicazione vengono create in subnet separate. In questo esempio vengono create due subnet: una per il gateway applicazione e quindi aggiungere un'altra per i server back-end.
In Configura rete virtuale selezionare Crea nuovo per creare una nuova rete virtuale. Nella finestra Crea rete virtuale visualizzata immettere i valori seguenti per creare la rete virtuale e una subnet:
Nome: immettere myVNet come nome della rete virtuale.
Spazio indirizzi: accettare l'intervallo di indirizzi 10.0.0.0/16 .
Nome subnet (gateway applicazione subnet): l'area Subnet mostra una subnet denominata Default. Modificare il nome di questa subnet in myAGSubnet e lasciare l'intervallo di indirizzi IPv4 predefinito 10.0.0.0/24.
La subnet del gateway applicazione può contenere solo i gateway applicazione. Non sono consentite altre risorse.Selezionare OK per chiudere la finestra Crea rete virtuale e salvare le impostazioni della rete virtuale.
Nella scheda Informazioni di base, accettare i valori predefiniti per le altre impostazioni, quindi selezionare Avanti: Front-end.
Scheda Front-end
Nella scheda Front- end verificare che Tipo di indirizzo IP front-end sia impostato su Pubblico.
È possibile configurare l'indirizzo IP front-end come pubblico o Entrambi in base al caso d'uso. In questo esempio si sceglie un indirizzo IP front-end pubblico.Nota
Per lo SKU gateway applicazione v2, i tipi di indirizzi IP pubblici e front-end sono attualmente supportati. La configurazione IP front-end privato non è attualmente supportata.
Scegliere Aggiungi nuovo per Indirizzo IP pubblico e immettere myAGPublicIPAddress come nome dell'indirizzo IP pubblico, quindi selezionare OK.
Selezionare Avanti: Back-end.
Scheda Back-end
Il pool back-end viene usato per instradare le richieste ai server back-end che gestiscono la richiesta. I pool back-end possono essere costituiti da schede di interfaccia di rete, set di scalabilità di macchine virtuali, indirizzi IP pubblici, indirizzi IP interni, nomi di dominio completi (FQDN) e back-end multi-tenant come app Azure Service. In questo esempio si crea un pool back-end vuoto con il gateway applicazione e quindi si aggiungono destinazioni back-end al pool back-end.
Nella scheda Back-end selezionare Aggiungi un pool back-end.
Nella finestra Aggiungi un pool back-end visualizzata immettere i valori seguenti per creare un pool back-end vuoto:
- Nome: immettere myBackendPoolcome nome del pool back-end.
- Aggiungere un pool back-end senza destinazioni: selezionare Sì per creare un pool back-end senza destinazioni. Le destinazioni back-end verranno aggiunte dopo la creazione del gateway applicazione.
Nella finestra Aggiungi un pool back-end selezionare Aggiungi per salvare la configurazione del pool back-end e tornare alla scheda Back-end.
Nella scheda Back-end selezionare Avanti: Configurazione.
Scheda Configurazione
Nella scheda Configurazione si connettono il front-end e il pool back-end creati usando una regola di routing.
Selezionare Aggiungi una regola di gestione nella colonna Regole di gestione.
Nella finestra Aggiungi una regola di routing visualizzata immettere myRoutingRule per Nome regola.
In Priorità digitare un numero di priorità.
Una regola di routing richiede un listener. Nella scheda Listener nella finestra Aggiungi una regola di routing immettere i valori seguenti per il listener:
Nome listener: immettere myListener come nome del listener.
Protocollo IP front-end: selezionare IPv4 pubblico per scegliere l'indirizzo IP pubblico creato per il front-end.
Accettare i valori predefiniti per le altre impostazioni nella scheda Listener, quindi selezionare la scheda Destinazioni back-end per configurare il resto della regola di routing.
Nella scheda Destinazioni back-end selezionare myBackendPool per Destinazione back-end.
Per le impostazioni back-end selezionare Aggiungi nuovo per creare una nuova impostazione back-end. Questa impostazione determina il comportamento della regola di routing. Nella finestra Aggiungi impostazione back-end visualizzata immettere myBackendSetting come nome delle impostazioni back-end. Accettare i valori predefiniti per le altre impostazioni nella finestra, quindi selezionare Aggiungi per tornare alla finestra Aggiungi una regola di routing.
Nella finestra Aggiungi una regola di routing selezionare Aggiungi per salvare la regola di routing e tornare alla scheda Configurazione.
Selezionare Avanti: Tag, quindi Avanti: Rivedi e crea.
Scheda Rivedi e crea
Rivedere le impostazioni nella scheda Rivedi e crea e quindi selezionare Crea per creare la rete virtuale, l'indirizzo IP pubblico e il gateway applicazione. La creazione del gateway applicazione da parte di Azure potrebbe richiedere alcuni minuti.
Attendere fino al termine della distribuzione prima di passare alla sezione successiva.
Aggiungere la subnet del server back-end
- Aprire la rete virtuale myVNet.
- In Impostazioni selezionare Subnet.
- Selezionare + Subnet.
- In Nome digitare myBackendSubnet.
- Per Indirizzo iniziale digitare 10.0.1.0.
- Selezionare Aggiungi per aggiungere la subnet.
Aggiungere destinazioni back-end
In questo esempio, come back-end di destinazione si usano macchine virtuali. È possibile usare macchine virtuali esistenti o crearne di nuove. Si creano due macchine virtuali usate da Azure come server back-end per il gateway applicazione.
A questo scopo, è necessario:
- Creare due nuove macchine virtuali Linux, myVM e myVM2, da usare come server back-end.
- Installare NGINX nelle macchine virtuali per verificare che il gateway applicazione sia stato creato correttamente.
- Aggiungere i server back-end al pool back-end.
Creare una macchina virtuale
Nel portale di Azure fare clic su Crea una risorsa. Verrà visualizzata la finestra Crea una risorsa .
In Macchina virtuale selezionare Crea.
Immettere questi valori nella scheda Informazioni di base per le seguenti impostazioni della macchina virtuale:
- Gruppo di risorse: selezionare myResourceGroupAG come nome del gruppo di risorse.
- Nome macchina virtuale: immettere myVM come nome della macchina virtuale.
- Immagine: Ubuntu Server 20.04 LTS - Gen2.
- Tipo di autenticazione: password
- Nome utente: immettere un nome per il nome utente dell'amministratore.
- Password: immettere una password per la password amministratore.
- Porte in ingresso pubbliche: selezionare Nessuno.
Accettare tutte le altre impostazioni predefinite, quindi selezionare Avanti: Dischi.
Accettare le impostazioni predefinite della scheda Dischi, quindi selezionare Avanti: Rete.
Nella scheda Rete verificare che myVNet sia selezionato per la Rete virtuale e che la Subnet sia myBackendSubnet.
In IP pubblico selezionare Nessuno.
Accettare tutte le altre impostazioni predefinite, quindi selezionare Avanti: Gestione.
Selezionare Avanti: Monitoraggio, impostare Diagnostica di avvio su Disabilita. Accettare tutte le altre impostazioni predefinite e quindi selezionare Rivedi e crea.
Nella scheda Rivedi e crea rivedere le impostazioni, correggere eventuali errori di convalida e quindi selezionare Crea.
Attendere il termine della creazione della macchina virtuale prima di continuare.
Installare NGINX per i test
In questo esempio si installa NGINX nelle macchine virtuali solo per verificare che Azure abbia creato correttamente il gateway applicazione.
Aprire Bash Cloud Shell. A tale scopo, selezionare l'icona di Cloud Shell nella barra di spostamento superiore del portale di Azure e quindi selezionare Bash dall'elenco a discesa.
Verificare che la sessione bash sia impostata per la sottoscrizione:
az account set --subscription "<your subscription name>"
Eseguire il comando seguente per installare NGINX nella macchina virtuale:
az vm extension set \ --publisher Microsoft.Azure.Extensions \ --version 2.0 \ --name CustomScript \ --resource-group myResourceGroupAG \ --vm-name myVM \ --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
Creare una seconda macchina virtuale e installare NGINX seguendo questa procedura completata in precedenza. Usare myVM2 per il nome della macchina virtuale e per l'impostazione
--vm-name
del cmdlet.
Aggiungere i server back-end al pool back-end
Fare clic su Tutte le risorse e quindi selezionare myAppGateway.
Selezionare Pool back-end dal menu a sinistra.
Selezionare myBackendPool.
In Tipo di destinazione, selezionare Macchina virtuale dall'elenco a discesa.
In Destinazione selezionare l'interfaccia di rete associata per myVM dall'elenco a discesa.
Ripetere per myVM2.
Seleziona Salva.
Attendere il completamento della distribuzione prima di procedere al passaggio successivo.
Testare il gateway applicazione
Anche se NGINX non è necessario per creare il gateway applicazione, è stato installato per verificare se Azure ha creato correttamente il gateway applicazione. Usare il servizio Web per testare il gateway applicazione:
Trovare l'indirizzo IP pubblico del gateway applicazione nella relativa pagina Panoramica.
In alternativa, è possibile selezionare Tutte le risorse, immettere myAGPublicIPAddress nella casella di ricerca e quindi selezionarlo nei risultati della ricerca. Azure mostra l'indirizzo IP pubblico nella pagina Panoramica.
Copiare l'indirizzo IP pubblico e quindi incollarlo nella barra degli indirizzi del browser.
Controllare la risposta. Una risposta valida verifica che il gateway applicazione sia stato creato correttamente e possa connettersi al back-end.
Pulire le risorse
Quando le risorse create con il gateway applicazione non sono più necessarie, rimuovere il gruppo di risorse. La rimozione del gruppo di risorse comporta anche la rimozione del gateway applicazione e di tutte le risorse correlate.
Per rimuovere il gruppo di risorse:
- Nel menu a sinistra del portale di Azure, selezionare Gruppi di risorse.
- Nella pagina Gruppo di risorse cercare myResourceGroupAG nell'elenco e selezionarlo.
- Nella pagina Gruppo di risorse selezionare Elimina gruppo di risorse.
- Immettere myResourceGroupAG in DIGITARE IL NOME DEL GRUPPO DI RISORSE e quindi selezionare Elimina.