Usare i gruppi di sicurezza di rete per controllare l'accesso alla rete

Completato

Come parte del progetto di trasferimento del sistema ERP in Azure, è necessario assicurarsi che per i server sia predisposto un isolamento appropriato, in modo che solo i sistemi autorizzati possano stabilire connessioni di rete. Ad esempio, alcuni server di database archiviano i dati per l'app ERP. Si vuole impedire ai sistemi non autorizzati di comunicare con i server in rete e allo stesso tempo consentire ai server applicazioni di comunicare con i server di database.

Gruppi di sicurezza di rete

I gruppi di sicurezza di rete filtrano il traffico di rete alle e dalle risorse di Azure. Contengono inoltre regole di sicurezza che vengono configurate per consentire o negare il traffico in ingresso e in uscita. È possibile usare i gruppi di sicurezza di rete per filtrare il traffico tra macchine virtuali o subnet, sia all'interno di una rete virtuale che da Internet.

Assegnazione e valutazione dei gruppi di sicurezza di rete

I gruppi di sicurezza di rete vengono assegnati a un'interfaccia di rete o una subnet. Quando si assegna un gruppo di sicurezza di rete a una subnet, le regole vengono applicate a tutte le interfacce di rete della subnet. È possibile limitare ulteriormente il traffico associando un gruppo di sicurezza di rete all'interfaccia di rete di una macchina virtuale.

Quando si applicano gruppi di sicurezza di rete sia alla subnet che all'interfaccia, ogni gruppo di sicurezza di rete viene valutato in modo indipendente. Il traffico in ingresso viene valutato prima dal gruppo di sicurezza di rete applicato alla subnet, quindi dal gruppo di sicurezza di rete applicato all'interfaccia di rete. Al contrario, il traffico in uscita da una macchina virtuale viene valutato prima dal gruppo di sicurezza di rete applicato all'interfaccia di rete, quindi dal gruppo di sicurezza di rete applicato alla subnet.

Diagram of network security groups.

Applicare a una subnet un gruppo di sicurezza di rete anziché singole interfacce di rete può rendere la gestione e l'amministrazione meno impegnative. Questo approccio assicura inoltre che tutte le macchine virtuali all'interno della subnet specificata siano protette con lo stesso set di regole.

A ogni subnet e ogni interfaccia di rete è possibile applicare un gruppo di sicurezza di rete. I gruppi di sicurezza di rete supportano TCP, UDP e ICMP e operano al livello 4 del modello OSI.

In questo scenario di un'azienda di produzione i gruppi di sicurezza di rete possono essere utili per proteggere la rete. È possibile controllare quali computer possono connettersi ai server applicazioni. È possibile configurare il gruppo di sicurezza di rete in modo che solo un intervallo specifico di indirizzi IP possa connettersi ai server. Per aggiungere un ulteriore blocco, si può consentire l'accesso solo da porte specifiche o da singoli indirizzi IP. È possibile applicare queste regole ai dispositivi che si connettono in remoto da reti locali o tra risorse all'interno di Azure.

Regole di sicurezza

Un gruppo di sicurezza di rete contiene una o più regole di sicurezza. È possibile configurare le regole di sicurezza per consentire o negare il traffico.

Le regole hanno diverse proprietà:

Proprietà Spiegazione
Nome Nome univoco all'interno del gruppo di sicurezza di rete
Priorità Un numero compreso tra 100 e 4096
Origine e destinazione Qualsiasi indirizzo IP, blocco CIDR (Classless Inter-Domain Routing), ad esempio 10.0.0.0/24, tag di servizio o gruppo di sicurezza delle app
Protocollo TCP, UDP o qualsiasi
Orientamento Definisce se la regola si applica al traffico in ingresso o in uscita
Intervallo di porte Una singola porta o un intervallo di porte
Azione Consentire o negare il traffico

Le regole di sicurezza del gruppo di sicurezza di rete vengono valutate in base alla priorità, usando informazioni a 5 tuple (origine, porta di origine, destinazione, porta di destinazione e protocollo) per consentire o negare il traffico. Quando le condizioni per una regola corrispondono alla configurazione del dispositivo, l'elaborazione della regola si arresta.

Si supponga, ad esempio, che l'azienda abbia creato una regola di sicurezza per consentire il traffico in ingresso sulla porta 3389 (RDP) ai server Web, con priorità 200. Si supponga inoltre che un altro amministratore abbia creato una regola per negare il traffico in ingresso sulla porta 3389, con priorità 150. La regola di negazione ha la precedenza perché viene elaborata per prima. La regola con priorità 150 viene elaborata prima della regola con priorità 200.

Con i gruppi di sicurezza di rete, le connessioni sono con stato. Il traffico di ritorno viene autorizzato automaticamente per la stessa sessione TCP/UDP. Ad esempio, una regola in ingresso che consente il traffico sulla porta 80 consente anche alla macchina virtuale di rispondere alla richiesta, in genere su una porta temporanea. Non occorre una regola in uscita corrispondente.

Per quanto riguarda il sistema ERP, i server Web per l'app ERP si connettono ai server di database che si trovano nelle stesse subnet. È possibile applicare regole di sicurezza per indicare che l'unica comunicazione consentita dai server Web ai server di database è la porta 1433 per le comunicazioni del database SQL Server. Tutto il traffico di altro tipo ai server di database verrà negato.

Regole di sicurezza predefinite

Quando si crea un gruppo di sicurezza di rete, Azure crea diverse regole di sicurezza predefinite. Queste regole predefinite non possono essere modificate, ma l'utente può sostituirle con le proprie regole. Le regole predefinite consentono la connettività all'interno di una rete virtuale e dai servizi di bilanciamento del carico di Azure. Inoltre, consentono le comunicazioni in uscita verso Internet e rifiutano il traffico in ingresso da Internet.

Le regole predefinite per il traffico in ingresso sono:

Priorità Nome regola Descrizione
65000 AllowVnetInbound Consentire l'ingresso proveniente da qualsiasi macchina virtuale a qualsiasi macchina virtuale all'interno della rete virtuale
65001 AllowAzureLoadBalancerInbound Consente il traffico dal bilanciamento del carico predefinito a tutte le macchine virtuali all'interno della subnet
65500 DenyAllInBound Nega il traffico da qualsiasi origine esterna a tutte le macchine virtuali

Le regole predefinite per il traffico in uscita sono:

Priorità Nome regola Descrizione
65000 AllowVnetOutbound Consentire il passaggio in uscita da qualsiasi macchina virtuale a qualsiasi macchina virtuale all'interno della rete virtuale
65001 AllowInternetOutbound Consente il traffico in uscita verso Internet da qualsiasi macchina virtuale
65500 DenyAllOutBound Nega il traffico da tutte le macchine virtuali interne a un sistema esterno alla rete virtuale

Regole di sicurezza ottimizzate

È possibile usare regole di sicurezza aumentate per i gruppi di sicurezza di rete per semplificare la gestione di un numero elevato di regole. Le regole di sicurezza ottimizzate inoltre sono utili quando è necessario implementare set di regole più complesse per la rete. Le regole ottimizzate consentono di aggiungere le opzioni seguenti in una singola regola di sicurezza:

  • Indirizzi IP multipli
  • Più porte
  • Tag di servizio
  • Gruppi di sicurezza delle app

Si supponga che l'azienda voglia limitare l'accesso alle risorse del data center, distribuite in diversi intervalli di indirizzi di rete. Con le regole ottimizzate, è possibile aggiungere tutti questi intervalli in una sola regola, riducendo il sovraccarico amministrativo e la complessità nei gruppi di sicurezza di rete.

Tag di servizio

È possibile usare i tag di servizio per semplificare ulteriormente la protezione dei gruppi di sicurezza di rete. È possibile consentire o impedire il traffico verso uno specifico servizio di Azure, sia a livello globale che di area.

Questi tag semplificano la sicurezza per le macchine virtuali e le reti virtuali di Azure poiché consentono di limitare l'accesso da parte di risorse o servizi. I tag di servizio rappresentano un gruppo di indirizzi IP e consentono di semplificare la configurazione delle regole di sicurezza. Per le risorse che è possibile specificare usando un tag, non è necessario conoscere i dettagli relativi all'indirizzo IP o alla porta.

È possibile limitare l'accesso a molti servizi. I tag di servizio sono gestiti da Microsoft, pertanto non è possibile crearne di propri. Ecco alcuni esempi di tag:

  • VirtualNetwork: Rappresenta tutti gli indirizzi di rete virtuale ovunque in Azure e nella rete locale se si usa la connettività ibrida.
  • AzureLoadBalancer: Indica il servizio di bilanciamento del carico dell'infrastruttura di Azure. Viene convertito nell'indirizzo IP virtuale dell'host (168.63.129.16) da cui hanno origine i probe di integrità di Azure.
  • Internet: Rappresenta qualsiasi elemento esterno all'indirizzo della rete virtuale che sia raggiungibile pubblicamente, incluse le risorse con indirizzi IP pubblici. Un esempio di una risorsa di questo tipo è la funzionalità App Web del servizio app di Azure.
  • AzureTrafficManager: Rappresenta l'indirizzo IP per Gestione traffico di Azure.
  • Archiviazione: Rappresenta lo spazio di indirizzi IP per il servizio Archiviazione di Azure. È possibile specificare se il traffico è consentito o negato. È anche possibile specificare se l'accesso è consentito solo per un'area specifica, ma non è possibile selezionare singoli account di archiviazione.
  • SQL: Rappresenta l'indirizzo dei servizi database SQL di Azure, Database MySQL di Azure, Database di Azure per PostgreSQL e Azure Synapse Analytics. È possibile specificare se il traffico è consentito o negato e limitarlo a un'area specifica.
  • AppService: Rappresenta i prefissi degli indirizzi per il servizio app di Azure.

Gruppi di sicurezza delle app

I gruppi di sicurezza delle app consentono di configurare la sicurezza di rete per le risorse usate da app specifiche. È possibile raggruppare le macchine virtuali in modo logico, indipendentemente dall'assegnazione di indirizzo IP o subnet.

È possibile usare i gruppi di sicurezza delle app all'interno di un gruppo di sicurezza di rete per applicare una regola di sicurezza a un gruppo di risorse. È più facile distribuire e aumentare le prestazioni di carichi di lavoro di app specifici; è sufficiente aggiungere una nuova distribuzione di macchina virtuale a uno o più gruppi di sicurezza delle applicazioni e la macchina virtuale selezionerà automaticamente le regole di sicurezza per tale carico di lavoro.

Un gruppo di sicurezza delle app consente di raggruppare le interfacce di rete. Si potrà poi usare quel gruppo di sicurezza delle app come regola di origine o di destinazione all'interno di un gruppo di sicurezza di rete.

Ad esempio, l'azienda ha diversi server front-end in una rete virtuale. I server Web devono essere accessibili sulle porte 80 e 8080. I server di database devono essere accessibili sulla porta 1433. Assegnare le interfacce di rete per i server Web a un gruppo di sicurezza delle app e le interfacce di rete per i server di database a un altro gruppo di sicurezza delle app. Creare quindi due regole in ingresso nel gruppo di sicurezza di rete. Una regola consente il traffico HTTP verso tutti i server nel gruppo di sicurezza delle app dei server Web. L'altra regola consente il traffico SQL verso tutti i server nel gruppo di sicurezza delle app dei server di database.

Diagram of app security groups.

Senza i gruppi di sicurezza delle app, è necessario creare una regola separata per ogni macchina virtuale o aggiungere un gruppo di sicurezza di rete a una subnet, quindi aggiungere tutte le macchine virtuali a tale subnet.

Il vantaggio principale dei gruppi di sicurezza delle app è che l'amministrazione diventa più semplice. È possibile aggiungere o rimuovere facilmente interfacce di rete da un gruppo di sicurezza delle app man mano che si distribuiscono o si ridistribuiscono server applicazioni. È anche possibile applicare dinamicamente nuove regole a un gruppo di sicurezza delle app, che verranno poi automaticamente applicate a tutte le macchine virtuali di quel gruppo di sicurezza delle app.

Quando usare i gruppi di sicurezza di rete

Come procedura consigliata, è opportuno usare sempre i gruppi di sicurezza di rete per proteggere le risorse in rete dal traffico indesiderato. I gruppi di sicurezza di rete offrono l'accesso a un controllo granulare a livello di rete, senza la potenziale complessità dell'impostazione di regole di sicurezza per ogni macchina virtuale o rete virtuale.