Configurare Azure Firewall Standard e Premium

Azure Firewall è un nuovo servizio pensato per proteggere le reti virtuali in Microsoft Azure. Il servizio, interamente gestito da Microsoft e altamente disponibile, oltre che scalabile, offre tutta la sicurezza di cui le vostre reti virtuali hanno bisogno e vi permette di configurare attraverso delle policy il traffico di rete.

Il Firewall di Azure utilizza un indirizzo IP pubblico statico ed usa la modalità SNAT (Source Network Address Translation). Ciò consente ai firewall esterni di identificare il traffico proveniente dalla rete virtuale. Il filtro del traffico in ingresso per i servizi back-end nella rete virtuale è invece supportato dalla modalità DNAT (Destination Network Address Translation).

Le funzionalità offerte al momento della scrittura di questo articolo sono:

  • Built-in high availability La disponibilità elevata è integrata, quindi non sono necessari servizi di bilanciamento del carico aggiuntivi e non è necessario eseguire altre configurazioni.
  • Scalabilità del cloud senza restrizioni È possibile aumentare le prestazioni di Firewall di Azure a seconda delle esigenze in modo da soddisfare i mutevoli flussi del traffico di rete senza dover stabilire un budget per i periodi di traffico più intenso.
  • Regole di filtro del nome di dominio È possibile limitare il traffico HTTP/S in uscita a un elenco specifico di nomi di dominio (FQDN), inclusi i caratteri jolly.
  • Regole di filtro per il traffico di rete È possibile creare in modo centralizzato regole di filtro di rete per consentire o negare il traffico in base all’indirizzo IP di origine e di destinazione, alla porta e al protocollo. Azure Firewall è un servizio di tipo stateful, quindi in grado di distinguere i pacchetti validi per diversi tipi di connessioni. Le regole vengono applicate e registrate in più sottoscrizioni e reti virtuali.
  • Tag FQDN I tag FQDN rendono più semplice consentire il traffico di rete noto del servizio di Azure attraverso il firewall. Per consentire il traffico di rete di Windows Update attraverso il firewall è sufficiente creare una regola di applicazione e includere il tag di Windows Update. A questo punto il traffico di rete da Windows Update può attraversare il firewall.
  • Supporto SNAT ( Source Network Address Translation) in uscita Tutti gli indirizzi IP del traffico di rete virtuale in uscita vengono convertiti nell’indirizzo IP pubblico di Firewall di Azure (Source Network Address Translation). È possibile identificare e consentire il traffico proveniente dalla rete virtuale a destinazioni Internet remote.
  • Supporto DNAT (Destination Network Address Translation) in ingress Il traffico di rete in ingresso all’indirizzo IP pubblico del firewall viene convertito (Destination Network Address Translation) e filtrato per gli indirizzi IP nelle reti virtuali.
  • Integrazione con il Monitoraggio di Azure Tutti gli eventi vengono integrati con Monitoraggio di Azure, che consente di archiviare i log in un account di archiviazione, trasmettere gli eventi a Hub eventi o inviarli a Log Analytics.

Figura 1: Principio di funzionamento di Azure Firewall

Creazione di Azure Firewall Standard utilizzando il portale di Azure

La creazione è molto semplice e consiste in pochi passaggi.

Come prima operazione, se non ne avete già una disponibile, create una Azure Virtual Network. Io ho creato la rete chiamata ICTPOWER-VNET. Ho scelto come Address Space la rete 10.0.0.0/16 e ho creato una Subnet chiamata Workload-SN con indirizzamento 10.0.2.0/24.

Ho creato una seconda subnet chiamata AzureFirewallSubnet (questo nome è obbligatorio), che sia almeno una /25. Nel mio caso la rete scelta è 10.0.1.0/24

Figura 2: Configurazione delle Subnet nella Virtual Network

Dal portale di Azure filtrate dal Marketplace la parola Firewall e lanciate il wizard per creare un nuovo firewall.

Figura 3: Creazione di un nuovo Azure Firewall

Inserite le informazioni richieste per la creazione di Azure Firewall. Nel mio caso l’ho chiamato FIREWALL01 e l’ho collegato alla virtual network ICTPOWER-VNET che ho creato in precedenza. Al Firewall ho anche associato un indirizzo IP pubblico. Il Firewall verrà automaticamente collegato alla Subnet AzureFirewallSubnet.

Per poter gestire le regole di Azure Firewall è possibile utilizzare una Azure Firewall Policy, una risorsa di Azure che è anche riutilizzabile tra più Azure Firewall. Cliccate su Add New per creare una nuova Azure Firewall Policy.

Figura 4: Utilizzo di una Azure Firewall Policy per la gestione delle regole di Azure Firewall

Figura 5: Nome della Azure Firewall Policy

Verificate le Informazioni inserite e procedete alla creazione di Azure Firewall.

Figura 6: Verifica delle informazioni inserite e creazione di Azure Firewall

La creazione del firewall è durata meno di 4 minuti. Dal portale di Azure è possibile accedere alla risorsa per poterne verificare le configurazioni.

Figura 7: Azure Firewall creato

Come scritto in precedenza, la Azure Firewall Policy è una risorsa creata nella nostra Subscription, che potrà essere configurata e riutilizzata in modo indipendente, condividendo le configurazioni tra Azure Firewall diversi.

Figura 8: Azure Firewall Policy

Creazione delle regole in Azure Firewall Policy

Azure Firewall Policy permette di creare diversi tipi di regole:

  • Network rules Permettono di gestire il traffico proveniente da alcune reti e diretto verso altre reti in base alle porte utilizzate
  • NAT rules Permettono di consentire il traffico dall’esterno del firewall verso endpoint interni della rete
  • Application rules Permettono di limitare il traffico HTTP/S in uscita a un elenco specifico di nomi di dominio (FQDN).

Cliccate sul nodo Application Rules per creare una regola che permetta il traffico verso una determinata applicazione. Io ho scelto di far navigare le macchine virtuali della subnet Workload-SN (10.0.2.0/24) solo verso il sito www.ictpower.it e solo utilizzando il protocollo HTTPS.

Figura 9: Creazione di una Application Rule

Figura 10: Application rule create nella Azure Firewall Policy

Altra regola che è possibile creare è relativa alle reti o agli indirizzi verso i quali è consentita la navigazione. Nell’esempio sotto ho permesso alla subnet Workload-SN (10.0.2.0/24) di poter raggiungere in uscita due indirizzi IP sulla porta UDP 53 (DNS).

Figura 11: Creazione di una Network Rule in Azure Firewall Policy

Figura 12: Network Rule in Azure Firewall Policy completata

Ho anche creato una regola DNAT (Destination NAT) per poter raggiungere dall’indirizzo IP pubblico di Azure Firewall in Desktop Remoto tramite protocollo RDP su porta TCP 3389 la VM chiamata SERVER01, con indirizzo IP 10.0.2.4.

Nel campo Destination ho inserito l’IP pubblico del Firewall. Che ho ricavato dal portale di Azure.

Figura 13: Creazione di una regola DNAT che consente di connettere un desktop remoto alla macchina virtuale SERVER01 attraverso il firewall.

Figura 14: Creazione della DNAT rule completata

Nel portale di Azure le regole vengono mostrate anche nella scheda Overview di Azure Firewall.

Figura 15: Scheda Overview di Azure Firewall

Creazione delle regole di routing

Tutto il traffico delle nostre reti dovrà passare attraverso l’Azure Firewall che abbiamo creato, in modo tale da poter essere facilmente gestito. Per poter effettuare in maniera corretta la gestione del traffico dovremo creare una tabella di routing e gestire le regole per far comunicare tra di loro le diverse subnet. Come prima operazione dal Marketplace del portale Azure scegliete di creare una nuova Route Table, come mostrato in figura:

Figura 16: Creazione di una nuova tabella di routing

Figura 17: Inserimento del nome della risorsa Azure Route Table

Terminata la creazione della tabella di routing, spostatevi nel nodo Subnets ed associate la tabella alle Subnet che volete gestire. Io ho associato la Route Table alla Virtual
Network
ICTPOWER-VNET e alla subnet Workload-SN.

Figura 18: Associazione della Route Table alla Subnet

Spostatevi nel nodo Routes e aggiungete le rotte. Nonostante Azure Firewall sia un managed service è necessario specificare Virtual appliance come next hop. L’indirizzo del next hop sarà l’IP privato dell’Azure Firewall (che potete recuperare dal portale di Azure). Aggiungete le rotte secondo le vostre necessità. Io ho creato una sola rotta per gestire il traffico verso Internet.

Figura 19: Aggiunta della rotta alla Route Table

Figura 20: Configurazione della rotta per la navigazione verso Internet

Figura 21: Creazione della rotta completata

Da questo momento in poi il traffico verso Internet sarà gestito da Azure Firewall. Pertanto, tutto il traffico che non è gestito dalla Azure Firewall Policy sarà bloccato.

Test di funzionamento

Come primo testo di funzionamento mi sono collegato in RDP all’indirizzo IP pubblico di Azure Firewall. La regola di DNAT mi ha consentito di connettermi alla macchina SERVER01 con IP privato 10.0.2.4.

Figura 22: Verifica della regola di DNAT

Successivamente, per verificare la corretta applicazione della Application Rule, ho navigato verso www.ictpower.it (con successo) e verso www.microsoft.com (senza successo). Il firewall infatti non permette la navigazione se non verso i siti consentiti e nel browser è apparso un messaggio di errore che mi avvisa che la navigazione verso quel sito e quella porta è negata.

Figura 23: Verifica della Application Rule di Azure Firewall Policy

Azure Firewall Premium (preview)

Al momento della scrittura di questa guida Azure Firewall Premium è disponibile in anteprima pubblica. Questa versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero essere limitate.

Figura 24: Funzionalità di Azure Firewall Premium

Azure Firewall Premium utilizza obbligatoriamente le Azure Firewall Policy per la sua configurazione e include le seguenti funzionalità aggiuntive rispetto ad Azure Firewall Standard:

  • Ispezione TLS: decrittografa il traffico in uscita, elabora i dati, quindi crittografa i dati e li invia alla destinazione.
  • IDPS: un sistema di rilevamento e prevenzione delle intrusioni di rete consente di monitorare le attività di rete per rilevare attività dannose, registrare informazioni su questa attività, segnalarla e, facoltativamente, tentare di bloccarla.
  • Filtro URL: estende la Firewall di Azure di filtro FQDN di per considerare un intero URL. Ad esempio, www.contoso.com/a/c anziché www.contoso.com .
  • Categorie Web: gli amministratori possono consentire o negare l’accesso utente a categorie di siti Web, ad esempio siti Web di siti Web, siti Web di social media e altri.

Un elenco complete delle funzionalità è disponibile alla pagina Firewall di Azure Premium funzionalità di anteprima | Microsoft Docs

Creazione di Azure Firewall Premium utilizzando il portale di Azure

La creazione di Azure Firewall Premium è identica a quella di Azure Firewall Standard. L’unica differenza è la scelta della funzionalità Premium e la creazione di una Azure Firewall Policy Premium.

Figura 25: Creazione di Azure Firewall Premium

Figura 26: Creazione di una Azure Firewall Policy Premium

Figura 27: Verifica delle configurazioni e creazione di Azure Firewall

La creazione dura circa 4 minuti. Dal portale potete verificare che sono state create le nuove risorse.

Figura 28: Scheda Overview di Azure Firewall Premium

Figura 29: Azure Firewall Policy Premium

Poichè è stata creata una Azure Firewal Policy Premium, oltre alle configurazioni viste prima (DNAT Rules, Network Rules e Application Rules) sarà possibile abilitare anche il network intrusion detection and prevention system (IDPS)  e il Transport Layer Security (TLS) inspection.

L’abilitazione dell’IDPS è molto semplice e consiste nel decidere se ricevere solo gli alert in caso di tentativi di attacco oppure se bloccare il traffico. Attualmente vengono utilizzate 35.000 regole in oltre 50 categorie (malware command and control, DoS attacks, botnets, informational events, exploits, vulnerabilities, SCADA network protocols, exploit kit activity ed altre) e vengono aggiunte circa 20-40 regole nuove al giorno!

Figura 30: Abilitazione della funzionalità IDPS

Il TLS inspection invece consiste nell’intercettare gli attacchi anche quando vengono effettuati utilizzando connessioni protette da TLS (come avviene per la navigazione HTTPS).

Azure Firewall Premium può intercettare il traffico HTTP/S in uscita e autogenerare un certificato per il sito web da navigare, generato utilizzando una Certification Authority intermedia.

Figura 31: Funzionamento di Azure Firewall Premium TLS Inspection

Alla pagina Azure Firewall Premium Preview certificates | Microsoft Docs trovate tutte le informazioni relative ai tipi di certificati supportati.

Per poter abilitare la funzionalità di TLS Inspection è necessario effettuare i seguenti passaggi:

  • Creare ed esportare un certificato di una CA intermedia con la relativa chiave privata
  • Salvare il certificato e la chiave in un Azure Key Vault
  • Creare una identità gestita che permetta ad Azure Firewall di accedere al Key Vault ed utilizzare il certificato
  • Configurare la policy per il TLS Inspection
  • Assicurarsi che il client consideri attendibile il certificato emesso dalla CA intermedia

Creazione della identità gestita

Per creare una identità gestita è sufficiente cercare nel marketplace di Azure Managed Identities e creare l’identità come mostrato nelle figure sotto:

Figura 32: Creazione di una nuova Managed Identity

Figura 33: Parametri di configurazione della Managed Identity

Dopo aver creato la Managed Identity date i permessi di accesso all’Azure Key Vault modificando la Access Policy. La creazione di un Azure Key Vault esula dale finalità di questa guida. Per maggiori Informazioni vi rimando alla lettura della guida Azure Key Vault: Gestione sicura di password, chiavi crittografiche e certificati – ICT Power

Figura 34: Modifica della Access Policy dell’Azure Key Vault

Permettete alla Managed Identity che avete creato di poter accedere sia i Secret che ai Certificate con i permessi di Get e List, come mostrato nella figura sotto. Utilizzate i menu a tendina di Secret
permissions e Certificate permissions per assegnare i due permessi di Get e List e poi cliccate su Select Principal per aggiungere la Managed Identity.

Figura 35: Modifica dei permessi per I Secret e per I Certificates da assegnare alla Managed Identity

Figura 36: Aggiunta della nuova Access Policy

Come si può vedere dalla figura sotto, all’Access policy è stata aggiunta una nuova voce nella parte Application. Cliccate su Save per completare la confgiurazione.

Figura 37: Salvataggio della configurazione della Access Policy

Creazione di un nuovo certificato da Intermediate Certification Authority

Attualmente, oltre l’80% del traffico dei clienti avviene tramite HTTPS, creando un punto cieco massivo. L’ispezione HTTPS rende possibile decrittografare il traffico HTTPS, esaminare il contenuto per segnali di attacco e quindi crittografare nuovamente il traffico con un nuovo certificato per invio sicuro. Senza decrittografia, non c’è visibilità di tipo di dati, applicazione, adesione alla politica, tipo di file o tentativi di esfiltrazione dei dati effettuati nei confronti dei clienti tramite HTTPS.

Il nuovo certificato deve essere emsso da una Certification Authority conosciuta, per evitare che appaiano errori nella connessione.

Per questa guida ho utilizzato un certificato emesso da una Certification Authority integrata nel mio dominio. Ci sono diversi articoli che vi spiegano come creare una PKI integrate nel vostro dominio. Potete partire dalla lettura della guida Deploy PKI in Windows Server 2016 – Parte 1 Architettura di una PKI Two-Tier – ICT Power

NOTA: Trovate la guida completa per richiedere un certificato da Subordinate CA al link Distribuire e configurare i certificati della CA globale (Enterprise) per Azure Firewall Premium Preview | Microsoft Docs

Ho quindi fatto emettere dalla mia ROOT CA integrata in dominio un certificato da Intermediate Certification Authority.

Figura 38: Emissione del certificato da Intermediate Certification Authority

Il certificato, completo di chiave privata, deve essere poi importato nell’Azure Key Vault, come mostrato nelle figure sotto:

Figura 39: Importazione del certificato nell’Azure Key Vault

Figura 40: Il certificato è stato importato nell’Azure Key Vault

Procedete a questo punto a configurare la Azure Firewall Premium policy. Dal nodo TLS Inspection (preview) abilitate la funzionalità cliccando su Enabled e completate i diversi campi scegliendo dal menu a tendina le diverse risorse che avete creato in precedenza (Managed identity, Azure Key Vault e certificato della Intermediate Certification Authority).

Figura 41: Abilitazione della funzionalità di TLS Inspection

Figura 42: Abilitazione del TLS inspection completata

Da questo momento in poi sarà possibile utilizzare il TLS Inspection. Se infatti create una nuova Application Rule vedrete che la checkbox TLS inspection sarà selezionabile e non sarà più in grigio chiaro.

Figura 43: la funzionalità di TLS Inspection è adesso disponibile

Per testare il corretto funzionamento della regola di TLS Inspection vi basterà navigare su uno dei siti che avete consentito tramite la Application Rule della vostra Azure Firewall Policy e veriifcare che il certificato utilizzato sia quello generato da Azure Firewall Premium tramite la vostra Intermediate Certification Auhtority. Nella figure sotto ho evidenziato le caratteristiche di emissione del certificato. Per l’utente risulta tutto trasparente.

Figura 44: Il ceritifcato presentato dal sito web è stato emesso da Azure Firewall tramite il nostro certificato di Intermediate Certification Authority

Figura 45: In evidenza si può notare la gerarchia di emissione del certificato digitale presentato

Filtro tramite le categorie web (preview)

Le categorie Web consentono agli amministratori di permettere o negare l’accesso utente a categorie di siti Web, ad esempio siti Web di scomesse, siti Web di social media e altro ancora. Le categorie Web sono incluse in Azure Firewall Standard, ma sono più ottimizzate in Azure Firewall Premium (preview). A differenza della funzionalità Categorie Web nello SKU Standard che permette di categorizzare un nome di dominio completo, lo SKU Premium permette di categorizzare anche una porzione dell’intero URL per il traffico HTTP e HTTPS.

Ad esempio, se Azure Firewall intercetta una richiesta HTTPS per www.google.com/news , è prevista la categorizzazione seguente:

  • Firewall Standard: esamina solo la parte FQDN, www.google.com quindi verrà categorizzata come motore di ricerca.
  • Firewall Premium: esamina l’URL completo, quindi www.google.com/news verrà categorizzato come Notizie.

Figura 46: Regola di filtro tramite categorie web

Firewall Policies

Come abbiamo visto in questa guida, Azure Firewall Standard e Azure Firewall Premium utilizzano le Azure Firewall Policy, che sono risorse Azure che possono essere riutilizzate per gestire più Azure Firewall con le stesse configurazioni. Le Azure Firewall Policy possono essere utilizzate anche tra regioni diverse e tra sottoscrizioni diverse.

Figura 47: Azure Firewall Policy

Nel portale di Azure è possibile cercare Firewall Policy per poterle creare da zero o per modificare quelle esistenti. Possono essere organizzate in maniera gerarchica, in modo tale da ereditare le configurazioni dalla policy padre, ma solo le regole relative alle applicazioni,le regole di rete e la modalità di intelligence sulle minacce. Le raccolte di regole NAT non sono ereditabili perché sono specifiche di un determinato firewall.

Nella figura sotto sono mostrate le due policy create durante la stesura di questa guida.

Figura 48: Policy create durante la stesura di questa guida

Conclusioni

Azure Firewall è semplicissimo da configurare ed è interamente gestito da Microsoft. Un servizio che abilita le funzionalità del firewall chiavi in mano nella rete virtuale, per controllare e registrare l’accesso ad app e risorse, è sicuramente vantaggioso e non ha noente da invidiare ai firewall moderni e alla virtual appliance presenti sul mercato. L’alta disponibilità e la capacità di scalare automaticamente in base ai picchi di utilizzo sono sicuramente un punto di forza del prodotto.

AGGIORNAMENTO DEL 19/07/2021: Sono stati rilasciati ulteriori aggiornamenti su Azure Firewall Premium che potete leggere alla pagina Next-generation firewall capabilities with Azure Firewall Premium