Configurazione del firewall di Azure per la protezione di rete avanzata

Configurazione del firewall di Azure per la protezione di rete avanzata

08/08/2024

Questo articolo tecnico ed educativo ha lo scopo di guidare analisti della sicurezza, amministratori IT e ingegneri di sistema nella configurazione e nell'uso del firewall di Azure per la protezione di rete avanzata. Azure Firewall è un servizio di sicurezza di rete gestito e basato su cloud che fornisce protezione dalle minacce di livello 4 e livello 7 per le risorse di rete di Azure, consentendo la centralizzazione del controllo della rete e l'implementazione di policy di sicurezza coerenti negli ambienti cloud [1].

Introduzione

In un panorama cloud in continua crescita, la sicurezza della rete è un pilastro fondamentale per proteggere applicazioni e dati. Il firewall di Azure fornisce una soluzione affidabile per l'ispezione e il controllo del traffico di rete, fungendo da punto centrale di applicazione dei criteri di sicurezza. Va oltre i gruppi di sicurezza di rete (NSG) di base fornendo funzionalità avanzate come il filtraggio del traffico basato sul nome di dominio completo (FQDN), l'intelligence sulle minacce, il sistema di rilevamento e prevenzione delle intrusioni (IDPS) e l'ispezione TLS, rendendolo essenziale per architetture di rete sicure in Azure, in particolare nei modelli Hub-and-Spoke [2].

Questa guida pratica riguarderà la distribuzione del firewall di Azure, la configurazione delle regole di rete e delle applicazioni, l'abilitazione dell'intelligence sulle minacce e l'IDPS, l'integrazione con altri servizi di Azure e le procedure consigliate per la governance della rete. Verranno fornite istruzioni dettagliate, esempi di comandi dell'interfaccia della riga di comando di Azure ed esempi in modo che il lettore possa implementare e convalidare un'efficace strategia di protezione della rete, riducendo la superficie di attacco e rafforzando la resilienza informatica della propria infrastruttura di Azure.

Perché il firewall di Azure è fondamentale per la protezione avanzata della rete?

  • Filtro traffico avanzato: consente di filtrare il traffico di rete in base a indirizzi IP, porte, protocolli, FQDN e URL, offrendo un controllo granulare.
  • Intelligence sulle minacce: blocca automaticamente il traffico da e verso domini e indirizzi IP noti come dannosi in base ai feed di intelligence sulle minacce di Microsoft.
  • IDPS (Sistema di rilevamento e prevenzione delle intrusioni): rileva e blocca gli attacchi basati su firme in tempo reale, inclusi exploit di vulnerabilità e malware.
  • Ispezione TLS: decrittografa il traffico TLS/SSL in uscita per ispezionare le minacce nascoste e applicare policy di sicurezza, crittografandolo nuovamente prima di inviarlo a destinazione.
  • Distribuzione centralizzata: può essere distribuito in una rete virtuale hub per proteggere reti virtuali a raggi multipli, semplificando la gestione e l'applicazione delle policy.
  • Elevata disponibilità e scalabilità: è un servizio completamente gestito, con elevata disponibilità integrata e scalabilità automatica per gestire i picchi di traffico.
  • Integrazione dell'ecosistema di Azure: si integra perfettamente con Monitoraggio di Azure, Azure Sentinel e Gestione firewall di Azure per monitoraggio, analisi e gestione centralizzati.

Prerequisiti

Per configurare Firewall di Azure per la protezione di rete avanzata, saranno necessari i seguenti elementi:

  1. Abbonamento Azure attivo: un abbonamento Azure per creare e gestire risorse.
  2. Accesso amministrativo: un account con il ruolo di "Proprietario" o "Collaboratore" nella sottoscrizione di Azure o nel gruppo di risorse in cui verranno distribuiti il ​​firewall e le reti virtuali.
  3. Reti virtuali di Azure (Reti virtuali): almeno una rete virtuale per distribuire il firewall di Azure e idealmente un'architettura Hub-and-Spoke per la dimostrazione.
  4. Facoltativo: macchine virtuali (VM): macchine virtuali distribuite nelle reti virtuali speak per testare le regole del firewall.
  5. CLI di Azure o Azure PowerShell: strumenti da riga di comando installati e configurati per interagire con Azure.

Passo dopo passo: configurazione del firewall di Azure per la protezione avanzata

Distribuiamo un firewall di Azure e configuriamo le sue funzionalità principali.

1. Preparazione dell'architettura Hub-and-Spoke

Un'architettura Hub-and-Spoke è una topologia di rete comune in Azure, in cui la rete virtuale dell'hub contiene servizi condivisi (come il firewall di Azure) e le reti virtuali Spoke contengono i carichi di lavoro. Il traffico tra gli raggi e verso Internet viene instradato attraverso l'hub.

  1. Crea gruppo di risorse: crea un gruppo di risorse per tutte le risorse. "bash." az group create --name RG-Firewall-Artigos --location eastus ```
  2. Crea VNet Hub: creare una rete virtuale per l'hub con una subnet dedicata per il firewall di Azure (AzureFirewallSubnet). "bash." az network vnet create --name VNet-Hub --resource-group RG-Firewall-Artigos --address-prefix 10.0.0.0/16 --location eastus az network vnet subnet create --name AzureFirewallSubnet --vnet-name VNet-Hub --resource-group RG-Firewall-Articles --address-prefix 10.0.1.0/24 ```
  3. Crea VNet Spoke: crea una rete virtuale per lo speak con una subnet per le VM. "bash." az network vnet create --name VNet-Spoke --resource-group RG-Firewall-Artigos --address-prefix 10.1.0.0/16 --location eastus az network vnet subnet create --name WorkloadSubnet --vnet-name VNet-Spoke --resource-group RG-Firewall-Articles --address-prefix 10.1.1.0/24 ```
  4. Configurare il peering di rete virtuale: connettere la rete virtuale dell'hub e la rete virtuale dello speak tramite peering. "bash." az network vnet peering create --name HubToSpoke --resource-group RG-Firewall-Articles --vnet-name VNet-Hub --remote-vnet VNet-Spoke --allow-vnet-access az network vnet peering create --name SpokeToHub --resource-group RG-Firewall-Articles --vnet-name VNet-Spoke --remote-vnet VNet-Hub --allow-vnet-access ```

2. Distribuzione del firewall di Azure

  1. Crea firewall di Azure: distribuisci il firewall di Azure nella "AzureFirewallSubnet" della rete virtuale dell'hub. "bash." az network firewall create --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --location eastus --sku Standard az network firewall ip-config create --nome-firewall AzureFirewall-01 --name AzureFirewall-IP --resource-group RG-Firewall-Articles --vnet-name VNet-Hub --public-ip-address az-firewall-pip ```

    • Nota: il comando az network firewall ip-config create creerà automaticamente un IP pubblico per il firewall se si fornisce un nome (ad esempio az-firewall-pip).
  2. Ottieni IP privato del firewall: annotare l'IP privato del firewall di Azure poiché verrà utilizzato per il routing. "bash." az firewall di rete mostra --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --query ipConfigurations[0].privateIpAddress -o tsv ```

3. Configurazione del routing per il firewall di Azure

Affinché il traffico della rete virtuale raggiata possa passare attraverso il firewall di Azure, è necessario creare una tabella di routing e associarla alla subnet raggiata.

  1. Crea tabella di routing: crea una tabella di routing. "bash." az tabella di routing della rete crea --name FirewallRouteTable --resource-group RG-Firewall-Artigos --location eastus ```
  2. Aggiungi percorso predefinito: aggiungi un percorso predefinito (0.0.0.0/0) che indirizza tutto il traffico all'IP privato del firewall di Azure. "bash." # Sostituisci con l'IP privato ottenuto nel passaggio precedente FIREWALL_PRIVATE_IP=$(az network firewall show --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --query ipConfigurations[0].privateIpAddress -o tsv) az tabella di routing della rete route create --name DefaultRouteToFirewall --resource-group RG-Firewall-Artigos --nome-tabella-di-route FirewallRouteTable --address-prefix 0.0.0.0/0 --next-hop-type VirtualAppliance --next-hop-ip-address $FIREWALL_PRIVATE_IP ```
  3. Associa tabella di routing alla sottorete Spoke: associa la tabella di routing a "WorkloadSubnet" di "VNet-Spoke". "bash." az network vnet subnet update --name WorkloadSubnet --vnet-name VNet-Spoke --resource-group RG-Firewall-Articles --route-table FirewallRouteTable ```

4. Configurazione delle regole del firewall di Azure

Il firewall di Azure usa raccolte di regole per controllare il traffico. Esistono tre tipi di regole: "Regole di rete", "Regole di applicazione" e "Regole NAT".

4.1. Regole di rete

Controlla il traffico Layer 3 e Layer 4 (IP, porte, protocolli).

  1. Consenti traffico in uscita per DNS: essenziale per la risoluzione dei nomi. "bash." az network firewall regola-rete crea --nome-firewall AzureFirewall-01 --nome-raccolta "Allow-DNS" --name "Allow-DNS-Outbound" --resource-group RG-Firewall-Articles --priority 100 --action Enable --source-addresses "" --destination-addresses "" --protocols UDP --destination-ports 53 ```

  2. Consenti traffico in uscita verso un IP specifico: Esempio: consentire l'accesso a un server patch. "bash." az network firewall regola-rete crea --nome-firewall AzureFirewall-01 --nome-raccolta "Allow-Patch-Server" --name "Allow-Patch-Server-Outbound" --resource-group RG-Firewall-Articles --priority 110 --actionConsenti --indirizzi-origine "10.1.1.0/24" --indirizzi-destinazione "20.1.2.3" --protocolli TCP --porte-destinazione 443 ```

4.2. Regole di applicazione

Controlla il traffico Layer 7 (HTTP/HTTPS) in base agli FQDN.

  1. Consenti l'accesso ai siti Microsoft: Esempio: consenti l'accesso a learn.microsoft.com. "bash." az network firewall application-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-Microsoft-Sites" --name "Allow-Learn-Microsoft" --resource-group RG-Firewall-Articles --priority 100 --action Enable --source-addresses "10.1.1.0/24" --protocols Http=80 Https=443 --fqdn-tags "Microsoft.Siti Web" --target-fqdns "learn.microsoft.com" ```

    • Suggerimento: i Fqdn-tags sono gruppi di FQDN predefiniti da Microsoft per i servizi comuni.
  2. Blocca l'accesso a siti Web dannosi: per impostazione predefinita, il firewall di Azure blocca tutto ciò che non è esplicitamente consentito. Tuttavia, puoi creare regole di rifiuto esplicite per FQDN specifici. "bash." az network firewall application-rule create --firewall-name AzureFirewall-01 --collection-name "Block-Malicious-Sites" --name "Block-Bad-Site" --resource-group RG-Firewall-Articles --priority 200 --action Deny --source-addresses "10.1.1.0/24" --protocols Https=443 --target-fqdns "sitocattivo.com" ```

4.3. Regole NAT (Network Address Translation).

Permettono di indirizzare il traffico in entrata verso risorse interne (DNAT - Destination NAT).

  1. Consenti l'accesso RDP esterno a una VM (con cautela!): Esempio: consenti l'RDP a una VM da un IP pubblico specifico. "bash." # Crea una VM sulla WorkloadSubnet da testare az vm create --name TestVM --resource-group RG-Firewall-Articles --image UbuntuLTS --size Standard_B1s --vnet-name VNet-Spoke --subnet WorkloadSubnet --admin-username azureuser --admin-password "P@ssw0rd12345!" --no-aspetta

    Ottieni l'IP privato della VM

    VM_PRIVATE_IP=$(az VM show --name TestVM --resource-group RG-Firewall-Artigos --query privateIps -o tsv)

    Ottieni l'IP pubblico del firewall

    FIREWALL_PUBLIC_IP=$(az network public-ip show --name az-firewall-pip --resource-group RG-Firewall-Artigos --query ipAddress -o tsv)

    Crea la regola DNAT

    az network firewall nat-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-RDP-Inbound" --name "RDP-to-TestVM" --resource-group RG-Firewall-Articles --priority 100 --action Dnat --source-addresses "YOUR_PUBLIC_IP" --destination-addresses $FIREWALL_PUBLIC_IP --protocols TCP --porte-destinazione 3389 --indirizzo-translato $VM_PRIVATE_IP --porta-translated 3389 `` * **ATTENZIONE**: sostituisciYOUR_PUBLIC_IP` con il tuo vero indirizzo IP pubblico per limitare l'accesso. Non utilizzare "*" nella produzione per le regole DNAT.

5. Configurazione di Azure Firewall Premium (ispezione IDPS e TLS)

Per funzionalità di protezione avanzate come IDPS e ispezione TLS, è necessario Azure Firewall Premium.

  1. Aggiorna SKU Firewall (se necessario): se hai creato un Firewall Standard, puoi aggiornarlo a Premium. "bash." aggiornamento del firewall di rete az --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --sku Premium ```

  2. Configurare l'ispezione TLS: per l'ispezione TLS, è necessario un certificato SSL/TLS emesso da una CA aziendale o pubblica, archiviato in Azure Key Vault.

    • Prerequisito: certificato in Azure Key Vault (vedere l'articolo precedente su Azure Key Vault per i dettagli).
    • Crea una policy firewall e associala al firewall. "bash." az criterio firewall di rete crea --name FirewallPolicy-01 --resource-group RG-Firewall-Artigos --location eastus aggiornamento dei criteri firewall di rete az --name FirewallPolicy-01 --resource-group RG-Firewall-Artigos --threat-intel-mode Alert aggiornamento del firewall di rete az --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --firewall-policy FirewallPolicy-01 ```
    • Nel portale di Azure, accedere a "Criteri firewall" -> Impostazioni -> Ispezione TLS.
    • Abilita l'ispezione TLS e seleziona il certificato radice per Key Vault.
  3. Configura IDPS: IDPS è abilitato e configurato tramite la policy firewall.

    • Nel portale di Azure, accedere a "Criteri firewall" -> Impostazioni -> IDPS.
    • È possibile configurare la modalità IDPS (Avviso o Avviso e Nega) e creare regole di firma IDPS personalizzate.

6. Attivazione dell'intelligenzadelle minacce

L'intelligence sulle minacce del firewall di Azure può essere configurata su "Avvisa" o "Avvisa e nega" il traffico da/verso indirizzi IP e FQDN dannosi noti.

  1. Nel portale di Azure passare al firewall di Azure (AzureFirewall-01).
  2. Nel riquadro di navigazione a sinistra, seleziona Intelligence sulle minacce.
  3. Impostare la "Modalità" su "Avvisa e nega".

Convalida e test

La convalida della configurazione del firewall di Azure è fondamentale per garantire che i criteri di sicurezza vengano applicati correttamente.

1. Testare le regole di rete

  1. Test di connettività DNS: da una VM su "WorkloadSubnet", prova a risolvere un nome di dominio. Dovrebbe funzionare se la regola DNS è configurata. "bash." nslookupgoogle.com ```

    • Risultato previsto: risoluzione DNS riuscita.
  2. Test di blocco delle porte: provare ad accedere a una porta non consentita per un IP esterno. "bash." nc -vz 8.8.8.8 80 ```

    • Risultato previsto: Connessione rifiutata o timeout.

2. Testare le regole dell'applicazione

  1. Test di accesso consentito al FQDN: da una VM su "WorkloadSubnet", provare ad accedere a "learn.microsoft.com" tramite browser.

    • Risultato previsto: Accesso riuscito.
  2. Test di blocco FQDN: prova ad accedere a "badsite.com" (se hai configurato la regola di rifiuto per questo).

    • Risultato previsto: Accesso bloccato dal firewall, con messaggio di errore nel browser.

3. Testare le regole NAT (DNAT)

  1. Da un computer esterno ad Azure (con l'IP pubblico specificato nella regola DNAT), provare a connettersi tramite RDP/SSH all'IP pubblico del firewall di Azure sulla porta 3389/22.
    • Risultato previsto: connessione riuscita alla VM interna.

4. Controllo dei log del firewall di Azure

I log del firewall di Azure sono essenziali per monitorare il traffico e convalidare le regole.

  1. Nel portale di Azure passare al firewall di Azure (AzureFirewall-01).
  2. Nel riquadro di navigazione a sinistra, seleziona Registri.
  3. È possibile utilizzare Log Analytics per eseguire query sui log del firewall. Cerca gli eventi "AzureFirewallNetworkRule" e "AzureFirewallApplicationRule" per vedere quali regole sono state attivate e se il traffico è stato consentito o negato.

5. Testare l'intelligence sulle minacce e gli IDPS (Premium)

  1. Intelligence sulle minacce: provare ad accedere a un IP o FQDN noto per essere dannoso (utilizzare un sito sicuro per testare il malware come "test.malware.testing.com" o un IP per testare l'intelligence sulle minacce). Il Firewall deve bloccare l'accesso.
  2. IDPS: provare a simulare un attacco che verrebbe rilevato da IDPS (ad esempio, utilizzare uno strumento di test di vulnerabilità per tentare un'iniezione SQL su un'applicazione Web sulla VM speak, se applicabile). Il Firewall deve generare un avviso e/o bloccare il traffico.

Suggerimenti e best practice per la sicurezza

  • Modello Hub-and-Spoke: quando possibile, usare il modello Hub-and-Spoke con firewall di Azure nell'hub per centralizzare il controllo della rete e semplificare la gestione dei criteri.
  • Principio del privilegio minimo: crea regole firewall con il minor privilegio possibile, consentendo solo il traffico essenziale. Blocca tutto il traffico per impostazione predefinita e consenti esplicitamente tutto ciò che è necessario.
  • Priorità delle regole: comprendere l'ordine di elaborazione delle regole (NAT > Rete > Applicazione) e la priorità all'interno di ciascuna raccolta per evitare conflitti e garantire che vengano applicate le regole desiderate.
  • Intelligence sulle minacce abilitata: mantieni l'intelligence sulle minacce abilitata in modalità "Avvisa e nega" per la protezione automatica contro fonti dannose note.
  • Azure Firewall Premium: per ambienti che richiedono protezione avanzata, usare lo SKU Premium per sfruttare funzionalità come IDPS e ispezione TLS.
  • Ispezione TLS: implementa l'ispezione TLS per il traffico in uscita per rilevare le minacce nascoste nelle sessioni crittografate, ma pianifica attentamente la gestione dei certificati.
  • Monitoraggio e controllo: integra i log del firewall di Azure con Monitoraggio di Azure e Azure Sentinel per il monitoraggio continuo, l'analisi della sicurezza e la risposta agli incidenti.
  • Gestione firewall di Azure: per ambienti con più firewall e criteri complessi, utilizzare Gestione firewall di Azure per la gestione centralizzata e gerarchica dei criteri.
  • Documentazione: mantieni una documentazione chiara delle regole del firewall e della motivazione di ciascuna.

Risoluzione dei problemi comuni

  • Blocchi del trafficoda Inaspettatamente: controllare i log del firewall di Azure in Log Analytics. Indicheranno quale regola (rete, applicazione o intelligence sulle minacce) ha bloccato il traffico. Modifica la regola secondo necessità.
  • Connettività lenta: se il traffico è lento, controllare l'utilizzo della CPU del firewall in Monitoraggio di Azure. Il firewall potrebbe aver raggiunto i limiti prestazionali. Valuta la possibilità di ridimensionare lo SKU o di ottimizzare le regole.
  • Le regole NAT non funzionano: Controlla che l'IP pubblico, la destinazione e le porte tradotte siano corrette. Assicurati che l'IP di origine nella regola NAT sia corretto (se limitato). Controllare la VM di destinazione per i gruppi di rete che potrebbero bloccare il traffico.
  • Problemi di ispezione TLS: assicurarsi che il certificato radice sia configurato correttamente in Key Vault e criteri firewall. Verificare che i client considerino attendibile la CA radice utilizzata per l'ispezione TLS.
  • IDPS non rileva attacchi: verifica che IDPS sia in modalità "Alert and Deny" e che le firme pertinenti siano abilitate. Assicurati che il traffico stia effettivamente attraversando il firewall.
  • Routing errato: controlla la tabella di routing associata alla sottorete della tua VM. Assicurarsi che la route predefinita (0.0.0.0/0) punti all'IP privato del firewall di Azure.

Conclusione

Il firewall di Azure è uno strumento potente ed essenziale per stabilire un solido livello di sicurezza della rete in Azure. Implementando il filtraggio avanzato del traffico, l'intelligence sulle minacce, l'IDPS e l'ispezione TLS, le organizzazioni possono proteggere i propri carichi di lavoro da un'ampia gamma di minacce informatiche. L'adozione di un modello Hub-and-Spoke con il firewall di Azure al centro, insieme all'applicazione di best practice e monitoraggio continuo, garantisce che il traffico di rete venga ispezionato e controllato in modo efficace. Con questa guida pratica, i professionisti della sicurezza saranno ben attrezzati per configurare e gestire il firewall di Azure, rafforzando la sicurezza della rete e la resilienza dei loro ambienti Azure contro le minacce più recenti.


Riferimenti:

[1]Microsoft Learn. Che cos'è il firewall di Azure?. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/firewall/overview [2]Microsoft Learn. Panoramica dell'architettura del firewall di Azure. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/firewall/firewall-architecture [3]Microsoft Learn. Funzionalità Premium di Azure Firewall. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/firewall/premium-features [4]Microsoft Learn. Filtro basato sull'intelligence sulle minacce del firewall di Azure. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/firewall/threat-intel