Proteggere il traffico destinato agli endpoint privati nella rete WAN virtuale di Azure
Nota
Questo articolo si applica solo all'hub virtuale protetto. Per esaminare il traffico destinato agli endpoint privati usando Firewall di Azure in una rete virtuale hub, vedere Usare Firewall di Azure per controllare il traffico destinato a un endpointprivato.
Un endpoint privato di Azure è il blocco costitutivo fondamentale del collegamento privato di Azure. Gli endpoint privati consentono alle risorse di Azure distribuite in una rete virtuale di comunicare privatamente con le risorse di un collegamento privato.
Gli endpoint privati consentono alle risorse di accedere al servizio del collegamento privato distribuito in una rete virtuale. L'accesso all'endpoint privato tramite il peering di reti virtuali e le connessioni di reti locali estendono la connettività.
Potrebbe essere necessario filtrare il traffico dai client locali o in Azure destinati ai servizi esposti tramite endpoint privati in una rete virtuale connessa alla rete WAN virtuale. Questo articolo illustra questa attività usando l'hub virtuale protetto con Firewall di Azure come provider di sicurezza.
Firewall di Azure filtra il traffico usando uno dei metodi seguenti:
- FQDN nelle regole di rete per i protocolli TCP e UDP
- FQDN nelle regole dell'applicazione per HTTP, HTTPS e MSSQL.
- Indirizzi IP di origine e di destinazione, porta e protocollo usando le regole di rete
Le regole dell'applicazione sono preferibili rispetto alle regole di rete per controllare il traffico destinato agli endpoint privati perché Firewall di Azure esegue sempre il traffico SNAT con le regole dell'applicazione. SNAT è consigliato quando si esamina il traffico destinato a un endpoint privato a causa della limitazione descritta qui: Che cos'è un endpoint privato?. Se invece si prevede di usare le regole di rete, è consigliabile configurare Firewall di Azure per eseguire sempre SNAT: intervalli di indirizzi IP privati SNAT di Firewall di Azure.
Microsoft gestisce hub virtuali protetti, che non possono essere collegati a una zona DNS privata. Questa operazione è necessaria per risolvere un nome di dominio completo della risorsa di collegamento privato nell'indirizzo IP dell'endpoint privato corrispondente.
Il filtro FQDN di SQL è supportato solo in modalità proxy (porta 1433). La modalità Proxy può comportare una latenza maggiore rispetto al reindirizzamento. Se si vuole continuare a usare la modalità di reindirizzamento, che è l'impostazione predefinita per i client che si connettono all'interno di Azure, è possibile filtrare l'accesso usando il nome di dominio completo nelle regole di rete del firewall.
Filtrare il traffico usando regole di rete o applicazione in Firewall di Azure
La procedura seguente consente a Firewall di Azure di filtrare il traffico usando regole di rete (FQDN o basate su indirizzi IP) o regole dell'applicazione:
Regole di rete:
Distribuire una macchina virtuale server d'inoltro DNS in una rete virtuale connessa all'hub virtuale protetto e collegata alle zone DNS private che ospitano i tipi di record A per gli endpoint privati.
Configurare server DNS personalizzati per le reti virtuali connesse all'hub virtuale protetto:
- Regole di rete basate su FQDN: configurare le impostazioni DNS personalizzate per puntare all'indirizzo IP della macchina virtuale del server d'inoltro DNS e abilitare il proxy DNS nei criteri firewall associati a Firewall di Azure. L'abilitazione del proxy DNS è necessaria se si vuole filtrare FQDN nelle regole di rete.
- Regole di rete basate su indirizzi IP: le impostazioni DNS personalizzate descritte nel punto precedente sono facoltative. È possibile configurare i server DNS personalizzati in modo che puntino all'indirizzo IP privato della macchina virtuale del server d'inoltro DNS.
A seconda della configurazione scelta nel passaggio 2., configurare i server DNS locali per inoltrare le query DNS per le zone DNS pubbliche degli endpoint privati all'indirizzo IP privato del Firewall di Azure o alla macchina virtuale del server d'inoltro DNS.
Configurare una regola di rete in base alle esigenze nei criteri del firewall associati a Firewall di Azure. Scegliere Indirizzi IP tipo di destinazione se si usa una regola basata su indirizzi IP e si configura l'indirizzo IP dell'endpoint privato come destinazione. Per le regole di rete basate su FQDN, scegliere FQDN tipo di destinazione e configurare l'FQDN pubblico della risorsa collegamento privato come destinazione.
Passare ai criteri del firewall associati a Firewall di Azure distribuiti nell'hub virtuale protetto. Selezionare Intervalli IP privati (SNAT) e selezionare l'opzione Esegui sempre SNAT.
Regole di applicazione:
Per le regole dell'applicazione, i passaggi da 1. a 3. della sezione precedente sono ancora applicabili. Per la configurazione personalizzata del server DNS, è possibile scegliere di usare Firewall di Azure come proxy DNS o di puntare direttamente alla macchina virtuale del server d'inoltro DNS.
Configurare una regola dell'applicazione come richiesto nei criteri del firewall associati a Firewall di Azure. Scegliere FQDN tipo di destinazione e FQDN pubblico della risorsa collegamento privato come Destinazione.
Infine, e indipendentemente dal tipo di regole configurate in Firewall di Azure, assicurarsi che i criteri di rete (almeno per il supporto UDR) siano abilitati nelle subnet in cui vengono distribuiti gli endpoint privati. In questo modo il traffico destinato agli endpoint privati non ignora Firewall di Azure.
Importante
Per impostazione predefinita, i prefissi RFC 1918 vengono inclusi automaticamente nei prefissi del traffico privato di Firewall di Azure. Per la maggior parte degli endpoint privati, questo sarà sufficiente per assicurarsi che il traffico proveniente da client locali o in reti virtuali diverse connesse allo stesso hub protetto venga controllato dal firewall. Nel caso in cui il traffico destinato agli endpoint privati non venga registrato nel firewall, provare ad aggiungere il prefisso /32 per ogni endpoint privato all'elenco di prefissi del traffico privato.
Se necessario, è possibile modificare i prefissi CIDR controllati tramite Firewall di Azure in un hub protetto come indicato di seguito:
Passare a Hub virtuali protetti nei criteri firewall associati al Firewall di Azure distribuito nell'hub virtuale protetto e selezionare l'hub virtuale protetto in cui è configurato il filtro del traffico destinato agli endpoint privati.
Passare a Configurazione di sicurezza, selezionare Invia tramite Firewall di Azure in Traffico privato.
Selezionare Prefissi traffico privato per modificare i prefissi CIDR controllati tramite Firewall di Azure nell'hub virtuale protetto e aggiungere un prefisso /32 per ogni endpoint privato.
Per controllare il traffico dai client nella stessa rete virtuale degli endpoint privati, non è necessario eseguire l'override specifico delle route /32 dagli endpoint privati. Se i criteri di rete sono abilitati nelle subnet degli endpoint privati, una route definita dall'utente con un intervallo di indirizzi più ampio ha la precedenza. Ad esempio, configurare questa route definita dall'utente con tipo hop successivo impostato su appliance virtuale, l'indirizzo hop successivo impostato sull'indirizzo IP privato del Firewall di Azure e la destinazione prefisso indirizzo impostata sulla subnet dedicata a tutti gli endpoint privati distribuiti nella rete virtuale. Propaga le route del gateway deve essere impostato su Sì.
Il diagramma seguente illustra i flussi di traffico DNS e dati per i diversi client per connettersi a un endpoint privato distribuito nella rete WAN virtuale di Azure:
Risoluzione dei problemi
I problemi principali che possono verificarsi quando si tenta di filtrare il traffico destinato agli endpoint privati tramite l'hub virtuale protetto sono:
I client non sono in grado di connettersi agli endpoint privati.
Firewall di Azure viene ignorato. È possibile convalidare questo sintomo dell'assenza di voci di log delle regole di rete o dell'applicazione in Firewall di Azure.
Nella maggior parte dei casi, uno dei problemi seguenti causa questi problemi:
Risoluzione dei nomi DNS non corretta
Configurazione del routing non corretta
Risoluzione dei nomi DNS non corretta
Verificare che i server DNS della rete virtuale siano impostati su Personalizzato e che l'indirizzo IP sia l'indirizzo IP privato di Firewall di Azure nell'hub virtuale protetto.
Interfaccia della riga di comando di Azure:
az network vnet show --name <VNET Name> --resource-group <Resource Group Name> --query "dhcpOptions.dnsServers"
Verificare che i client nella stessa rete virtuale della macchina virtuale del server d'inoltro DNS possano risolvere l'FQDN pubblico dell'endpoint privato nel corrispondente indirizzo IP privato eseguendo direttamente una query sulla macchina virtuale configurata come server d'inoltro DNS.
Linux:
dig @<DNS forwarder VM IP address> <Private endpoint public FQDN>
Esaminare le voci di log di Firewall di Azure AzureFirewallDNSProxy e verificare che possa ricevere e risolvere query DNS dai client.
AzureDiagnostics | where Category contains "DNS" | where msg_s contains "database.windows.net"
Verificare che il proxy DNS sia stato abilitato e che sia stato configurato un server DNS personalizzato che punta all'indirizzo IP della macchina virtuale del server d'inoltro DNS nei criteri del firewall associati a Firewall di Azure nell'hub virtuale protetto.
Interfaccia della riga di comando di Azure:
az network firewall policy show --name <Firewall Policy> --resource-group <Resource Group Name> --query dnsSettings
Configurazione del routing non corretta
Verificare la configurazione della sicurezza nei criteri del firewall associati al Firewall di Azure distribuito nell'hub virtuale protetto. Assicurarsi che nella colonna TRAFFICO PRIVATO venga visualizzato come Protetto da Firewall di Azure per tutte le connessioni di rete virtuale e rami per cui si vuole filtrare il traffico.
Verificare la configurazione della sicurezza nei criteri del firewall associati al Firewall di Azure distribuito nell'hub virtuale protetto. Nel caso in cui il traffico destinato agli endpoint privati non venga registrato nel firewall, provare ad aggiungere il prefisso /32 per ogni endpoint privato all'elenco di prefissi del traffico privato.
Nell'hub virtuale protetto nella rete WAN virtuale esaminare le route valide per le tabelle di route associate alle reti virtuali e alle connessioni rami per cui si vuole filtrare il traffico. Se sono state aggiunte voci /32 per ogni endpoint privato per cui si vuole controllare il traffico, assicurarsi che siano elencate nelle route valide.
Esaminare le route valide sulle schede di interfaccia di rete collegate alle macchine virtuali distribuite nelle reti virtuali per cui si vuole filtrare il traffico. Assicurarsi che siano presenti /32 voci per ogni indirizzo IP privato dell'endpoint privato per cui si vuole filtrare il traffico (se aggiunto).
Interfaccia della riga di comando di Azure:
az network nic show-effective-route-table --name <Network Interface Name> --resource-group <Resource Group Name> -o table
Esaminare le tabelle di routing dei dispositivi di routing locali. Assicurarsi di apprendere gli spazi indirizzi delle reti virtuali in cui vengono distribuiti gli endpoint privati.
La rete WAN virtuale di Azure non annuncia i prefissi configurati in Prefissi del traffico privato nella configurazione di sicurezza dei criteri del firewall in locale. È previsto che le voci /32 non vengano visualizzate nelle tabelle di routing dei dispositivi di routing locali.
Esaminare i log di Firewall di Azure AzureFirewallApplicationRule e AzureFirewallNetworkRule. Assicurarsi che il traffico destinato agli endpoint privati venga registrato.
Le voci di log AzureFirewallNetworkRule non includono informazioni FQDN. Filtrare in base all'indirizzo IP e alla porta quando si esaminano le regole di rete.
Quando si filtra il traffico destinato agli endpoint privati di File di Azure, le voci di log di AzureFirewallNetworkRule vengono generate solo quando un client esegue il primo montaggio o si connette alla condivisione file. Firewall di Azure non genera log per le operazioni CRUD per i file nella condivisione file. Ciò avviene perché le operazioni CRUD vengono eseguite sul canale TCP persistente aperto quando il client si connette o monta per la prima volta alla condivisione file.
Esempio di query del log delle regole dell'applicazione:
AzureDiagnostics | where msg_s contains "database.windows.net" | where Category contains "ApplicationRule"