Az - Azure Network

Supporta HackTricks

Informazioni di Base

Le reti all'interno di Azure funzionano come parte integrante della sua piattaforma di cloud computing, consentendo la connessione e comunicazione tra vari servizi e risorse di Azure. L'architettura di rete in Azure è progettata per essere altamente scalabile, sicura e personalizzabile.

Alla base, Azure fornisce una rete virtuale (VNet) che consente agli utenti di creare reti isolate all'interno del cloud Azure. All'interno di queste VNets, risorse come macchine virtuali, applicazioni e database possono essere ospitate e gestite in modo sicuro. La rete in Azure supporta sia la comunicazione all'interno del cloud (tra i servizi Azure) sia la connessione a reti esterne e a Internet.

La sicurezza è un aspetto critico della rete Azure, con vari strumenti e servizi disponibili per proteggere i dati, gestire l'accesso e garantire la conformità. Queste misure di sicurezza includono firewall, gruppi di sicurezza di rete e capacità di crittografia, consentendo un alto livello di controllo sul traffico e sull'accesso.

In generale, le capacità di rete di Azure sono progettate per offrire flessibilità, consentendo agli utenti di creare un ambiente di rete che si adatti alle loro specifiche esigenze applicative e di carico di lavoro, mantenendo un forte accento sulla sicurezza e l'affidabilità.

Rete Virtuale (VNET) & Subnet

Una VNet in Azure è essenzialmente una rappresentazione della tua rete nel cloud. È un'isolamento logico del cloud Azure dedicato alla tua sottoscrizione. Una VNet ti consente di fornire e gestire reti private virtuali (VPN) in Azure e può essere utilizzata per ospitare e gestire diversi tipi di risorse Azure, come Macchine Virtuali (VM), database e servizi applicativi.

Le VNets ti forniscono pieno controllo sulle impostazioni della tua rete, inclusi gli intervalli di indirizzi IP, la creazione di subnet, le tabelle di routing e i gateway di rete.

Una subnet è un intervallo di indirizzi IP nella tua VNet. Puoi dividere una VNet in più subnet per organizzazione e sicurezza. Ogni subnet in una VNet può essere utilizzata per isolare e raggruppare risorse in base alla tua architettura di rete e applicativa.

Inoltre, le subnet ti consentono di segmentare la tua VNet in una o più sotto-reti, fornendo un intervallo di indirizzi IP che le risorse possono utilizzare.

Esempio

  • Supponiamo di avere una VNet chiamata MyVNet con un intervallo di indirizzi IP di 10.0.0.0/16. Puoi creare una subnet all'interno di questa VNet, diciamo Subnet-1, con un intervallo di indirizzi IP di 10.0.0.0/24 per ospitare i tuoi server web. Un'altra subnet, Subnet-2 con un intervallo di 10.0.1.0/24, potrebbe essere utilizzata per i tuoi server di database. Questa segmentazione consente una gestione efficiente e controlli di sicurezza all'interno della rete.

Enumerazione

Per elencare tutte le VNets e le subnet in un account Azure, puoi utilizzare l'interfaccia a riga di comando di Azure (CLI). Ecco i passaggi:

# List VNets
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List subnets of a VNet
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, addressPrefix:addressPrefix}" -o table

Network Security Groups (NSG)

In Azure, un Network Security Group (NSG) ha la funzione primaria di filtrare il traffico di rete sia verso che da risorse Azure all'interno di un Azure Virtual Network (VNet). Contiene un insieme di regole di sicurezza che dettano meticolosamente il flusso del traffico di rete.

Aspetti chiave degli NSG includono:

  • Controllo del Traffico: Ogni NSG contiene regole che sono strumentali nel permettere o bloccare il traffico di rete in entrata e in uscita associato a varie risorse Azure.

  • Componenti delle Regole: Le regole all'interno di un NSG sono altamente specifiche, filtrando il traffico basato su criteri come indirizzo IP di origine/destinazione, porta e protocollo. Questa specificità consente una gestione granulare del traffico di rete.

  • Miglioramento della Sicurezza: Garantendo che solo il traffico autorizzato possa entrare o uscire dalle tue risorse Azure, gli NSG giocano un ruolo cruciale nel rafforzare la postura di sicurezza della tua infrastruttura di rete.

Esempio

  • Immagina di avere un NSG chiamato MyNSG applicato a una subnet o a una specifica macchina virtuale all'interno del tuo VNet. Puoi creare regole come:

  • Una regola in entrata che permette il traffico HTTP (porta 80) da qualsiasi origine ai tuoi server web.

  • Una regola in uscita che permette solo il traffico SQL (porta 1433) a un intervallo specifico di indirizzi IP di destinazione.

Enumerazione

# List NSGs
az network nsg list --query "[].{name:name, location:location}" -o table

# Get NSG rules
az network nsg rule list --nsg-name <NSGName> --resource-group <ResourceGroupName> --query "[].{name:name, priority:priority, direction:direction, access:access, protocol:protocol, sourceAddressPrefix:sourceAddressPrefix, destinationAddressPrefix:destinationAddressPrefix, sourcePortRange:sourcePortRange, destinationPortRange:destinationPortRange}" -o table

Azure Firewall

Azure Firewall è un servizio di sicurezza di rete gestito e basato su cloud che protegge le risorse della tua Azure Virtual Network. È un firewall completamente stateful come servizio con funzionalità integrate di alta disponibilità e scalabilità.

Azure Firewall fornisce funzionalità più avanzate rispetto agli NSG, inclusi filtraggio a livello di applicazione, filtraggio a livello di rete, filtraggio basato su intelligence delle minacce e integrazione con Azure Monitor per logging e analisi. Può filtrare il traffico in uscita, in entrata, spoke-to-spoke, VPN e ExpressRoute. Le regole del firewall possono essere create in base a FQDN (Fully Qualified Domain Name), indirizzi IP e porte.

Differenze tra Azure Firewall e NSG

  1. Ambito:

  • NSG: Funziona a livello di subnet o interfaccia di rete. È pensato per fornire un filtraggio di base del traffico in entrata e in uscita dalle interfacce di rete (NIC), VM o subnet.

  • Azure Firewall: Opera a livello di VNet, fornendo una protezione più ampia. È progettato per proteggere le risorse della tua rete virtuale e gestire il traffico in entrata e in uscita dalla VNet.

  1. Capacità:

  • NSG: Fornisce capacità di filtraggio di base basate su indirizzo IP, porta e protocollo. Non supporta funzionalità avanzate come l'ispezione a livello di applicazione o l'intelligence delle minacce.

  • Azure Firewall: Offre funzionalità avanzate come il filtraggio del traffico a livello di applicazione (Layer 7), il filtraggio basato su intelligence delle minacce, il filtraggio del traffico di rete e altro. Supporta anche più indirizzi IP pubblici.

  1. Casi d'uso:

  • NSG: Ideale per il filtraggio di base del traffico a livello di rete.

  • Azure Firewall: Adatto per scenari di filtraggio più complessi dove è necessario il controllo a livello di applicazione, il logging e l'intelligence delle minacce.

  1. Gestione e monitoraggio:

  • NSG: Offre logging di base e integrazione con Azure Monitor.

  • Azure Firewall: Fornisce capacità avanzate di logging e analisi tramite Azure Monitor, essenziali per comprendere la natura e il modello del traffico.

Enumerazione

# List Azure Firewalls
az network firewall list --query "[].{name:name, location:location, subnet:subnet, publicIp:publicIp}" -o table

# Get network rules of a firewall
az network firewall network-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get application rules of a firewall
az network firewall application-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get nat rules of a firewall
az network firewall nat-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

Network Virtual Appliance (NVA)

Un Network Virtual Appliance (NVA) in Azure è un'appliance virtuale che esegue funzioni di rete all'interno di una rete virtuale. Gli NVA sono tipicamente utilizzati per funzioni di rete che non sono nativamente disponibili in Azure o quando è necessaria una maggiore personalizzazione. Sono essenzialmente VM che eseguono applicazioni o servizi di rete, come firewall, ottimizzatori WAN o bilanciatori di carico.

Gli NVA sono utilizzati per compiti complessi di routing, sicurezza e gestione del traffico di rete. Possono essere distribuiti dal Marketplace di Azure, dove molti fornitori di terze parti offrono le loro appliance pronte per l'integrazione negli ambienti Azure.

Esempio

  • Un'organizzazione può distribuire un NVA in Azure per creare una soluzione firewall personalizzata. Questo NVA potrebbe eseguire un software firewall di terze parti, fornendo funzionalità avanzate come rilevamento delle intrusioni, ispezione dei pacchetti o connettività VPN. L'NVA può essere configurato per ispezionare e filtrare il traffico che lo attraversa, garantendo che siano in atto misure di sicurezza avanzate secondo le politiche dell'organizzazione.

Enumerazione

# Usually NVAs are named or tagged in a way to distinguish them from other VMs
az vm list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# For a specific VM identified as an NVA, list its network interfaces
az vm nic list --vm-name <VMName> --resource-group <ResourceGroupName> --query "[].{id:id}" -o table

Route Tables di Azure & User Defined Routes (UDR)

Route Tables di Azure sono una funzionalità all'interno di Microsoft Azure che consente di controllare il routing del traffico di rete all'interno delle Azure Virtual Networks (VNets). In sostanza, definiscono come i pacchetti vengono inoltrati tra subnet all'interno delle VNets, tra VNets o verso reti esterne. Ogni route table contiene un insieme di regole, note come route, che specificano come i pacchetti devono essere instradati in base ai loro indirizzi IP di destinazione.

User Defined Routes (UDR) in Azure sono route personalizzate che crei all'interno delle Route Tables di Azure per controllare il flusso del traffico di rete all'interno e tra le Azure Virtual Networks (VNets), e verso connessioni esterne. Le UDR ti danno la flessibilità di dirigere il traffico di rete secondo le tue specifiche esigenze, sovrascrivendo le decisioni di routing predefinite di Azure.

Queste route sono particolarmente utili in scenari in cui è necessario instradare il traffico attraverso un virtual appliance, imporre un percorso specifico per la sicurezza o la conformità alle politiche, o integrare con reti on-premises.

Esempio

  • Supponiamo di aver distribuito un Network Virtual Appliance (NVA) per ispezionare il traffico tra subnet all'interno di una VNet. Puoi creare una UDR che indirizza tutto il traffico da una subnet a un'altra subnet attraverso il NVA. Questa UDR garantisce che il NVA ispezioni il traffico per motivi di sicurezza prima che raggiunga la sua destinazione.

Enumerazione

# List Route Tables
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List UDRs for a table
az network route-table route list --route-table-name <RouteTableName> --resource-group <ResourceGroupName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table

Azure Private Link è un servizio in Azure che consente l'accesso privato ai servizi Azure garantendo che il traffico tra la tua rete virtuale Azure (VNet) e il servizio viaggi interamente all'interno della rete backbone di Azure di Microsoft. In pratica, porta il servizio nella tua VNet. Questa configurazione migliora la sicurezza non esponendo i dati a internet pubblico.

Private Link può essere utilizzato con vari servizi Azure, come Azure Storage, Azure SQL Database e servizi personalizzati condivisi tramite Private Link. Fornisce un modo sicuro per consumare servizi all'interno della tua VNet o anche da diverse sottoscrizioni Azure.

Gli NSG non si applicano agli endpoint privati, il che significa chiaramente che associare un NSG a una subnet che contiene il Private Link non avrà alcun effetto.

Esempio

  • Considera uno scenario in cui hai un Azure SQL Database che vuoi accedere in modo sicuro dalla tua VNet. Normalmente, questo potrebbe comportare il passaggio attraverso internet pubblico. Con Private Link, puoi creare un endpoint privato nella tua VNet che si connette direttamente al servizio Azure SQL Database. Questo endpoint fa apparire il database come se fosse parte della tua VNet, accessibile tramite un indirizzo IP privato, garantendo così un accesso sicuro e privato.

Enumerazione

# List Private Link Services
z network private-link-service list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List Private Endpoints
az network private-endpoint list --query "[].{name:name, location:location, resourceGroup:resourceGroup, privateLinkServiceConnections:privateLinkServiceConnections}" -o table

Azure Service Endpoints

Azure Service Endpoints estendono lo spazio degli indirizzi privati della tua rete virtuale e l'identità del tuo VNet ai servizi Azure tramite una connessione diretta. Abilitando i service endpoints, le risorse nel tuo VNet possono connettersi in modo sicuro ai servizi Azure, come Azure Storage e Azure SQL Database, utilizzando la rete backbone di Azure. Questo garantisce che il traffico dal VNet al servizio Azure rimanga all'interno della rete Azure, fornendo un percorso più sicuro e affidabile.

Esempio

  • Ad esempio, un account Azure Storage per impostazione predefinita è accessibile tramite internet pubblico. Abilitando un service endpoint per Azure Storage all'interno del tuo VNet, puoi garantire che solo il traffico dal tuo VNet possa accedere all'account di storage. Il firewall dell'account di storage può quindi essere configurato per accettare traffico solo dal tuo VNet.

Enumerazione

# List Virtual Networks with Service Endpoints
az network vnet list --query "[].{name:name, location:location, serviceEndpoints:serviceEndpoints}" -o table

# List Subnets with Service Endpoints
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}" -o table

Microsoft raccomanda l'uso dei Private Links nei docs:\

Service Endpoints:

  • Il traffico dalla tua VNet al servizio Azure viaggia sulla rete backbone di Microsoft Azure, bypassando internet pubblico.

  • L'endpoint è una connessione diretta al servizio Azure e non fornisce un IP privato per il servizio all'interno della VNet.

  • Il servizio stesso è ancora accessibile tramite il suo endpoint pubblico dall'esterno della tua VNet a meno che non configuri il firewall del servizio per bloccare tale traffico.

  • È una relazione uno-a-uno tra la subnet e il servizio Azure.

  • Meno costoso rispetto ai Private Links.

Private Links:

  • Private Link mappa i servizi Azure nella tua VNet tramite un endpoint privato, che è un'interfaccia di rete con un indirizzo IP privato all'interno della tua VNet.

  • Il servizio Azure è accessibile utilizzando questo indirizzo IP privato, facendolo apparire come se fosse parte della tua rete.

  • I servizi connessi tramite Private Link possono essere accessibili solo dalla tua VNet o reti connesse; non c'è accesso internet pubblico al servizio.

  • Consente una connessione sicura ai servizi Azure o ai tuoi servizi ospitati in Azure, nonché una connessione ai servizi condivisi da altri.

  • Fornisce un controllo degli accessi più granulare tramite un endpoint privato nella tua VNet, rispetto al controllo degli accessi più ampio a livello di subnet con i service endpoints.

In sintesi, mentre sia i Service Endpoints che i Private Links forniscono connettività sicura ai servizi Azure, i Private Links offrono un livello più alto di isolamento e sicurezza garantendo che i servizi siano accessibili privatamente senza esporli a internet pubblico. I Service Endpoints, d'altra parte, sono più facili da configurare per casi generali in cui è richiesto un accesso semplice e sicuro ai servizi Azure senza la necessità di un IP privato nella VNet.

Azure Front Door (AFD) & AFD WAF

Azure Front Door è un punto di ingresso scalabile e sicuro per la consegna rapida delle tue applicazioni web globali. Combina vari servizi come bilanciamento del carico globale, accelerazione del sito, offloading SSL e funzionalità di Web Application Firewall (WAF) in un unico servizio. Azure Front Door fornisce un instradamento intelligente basato sulla posizione edge più vicina all'utente, garantendo prestazioni e affidabilità ottimali. Inoltre, offre instradamento basato su URL, hosting di più siti, affinità di sessione e sicurezza a livello di applicazione.

Azure Front Door WAF è progettato per proteggere le applicazioni web dagli attacchi basati sul web senza modifiche al codice di back-end. Include regole personalizzate e set di regole gestite per proteggere da minacce come SQL injection, cross-site scripting e altri attacchi comuni.

Esempio

  • Immagina di avere un'applicazione distribuita globalmente con utenti in tutto il mondo. Puoi utilizzare Azure Front Door per instradare le richieste degli utenti al data center regionale più vicino che ospita la tua applicazione, riducendo così la latenza, migliorando l'esperienza utente e difendendola dagli attacchi web con le capacità del WAF. Se una particolare regione subisce un'interruzione, Azure Front Door può automaticamente reindirizzare il traffico alla prossima posizione migliore, garantendo un'alta disponibilità.

Enumerazione

# List Azure Front Door Instances
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List Front Door WAF Policies
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

Azure Application Gateway e Azure Application Gateway WAF

Azure Application Gateway è un bilanciatore di carico del traffico web che ti consente di gestire il traffico verso le tue applicazioni web. Offre bilanciamento del carico di livello 7, terminazione SSL e funzionalità di web application firewall (WAF) nel Application Delivery Controller (ADC) come servizio. Le caratteristiche principali includono il routing basato su URL, l'affinità di sessione basata su cookie e l'offloading del secure sockets layer (SSL), che sono cruciali per le applicazioni che richiedono capacità di bilanciamento del carico complesse come il routing globale e il routing basato su percorso.

Esempio

  • Considera uno scenario in cui hai un sito web di e-commerce che include più sottodomini per diverse funzioni, come account utente e elaborazione dei pagamenti. Azure Application Gateway può instradare il traffico ai server web appropriati in base al percorso URL. Ad esempio, il traffico verso example.com/accounts potrebbe essere diretto al servizio account utente, e il traffico verso example.com/pay potrebbe essere diretto al servizio di elaborazione dei pagamenti. E proteggere il tuo sito web dagli attacchi utilizzando le funzionalità WAF.

Enumerazione

# List the Web Application Firewall configurations for your Application Gateways
az network application-gateway waf-config list --gateway-name <AppGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, firewallMode:firewallMode, ruleSetType:ruleSetType, ruleSetVersion:ruleSetVersion}" -o table

Azure Hub, Spoke & VNet Peering

VNet Peering è una funzionalità di rete in Azure che consente a diverse Virtual Networks (VNets) di essere connesse direttamente e senza soluzione di continuità. Attraverso VNet peering, le risorse in una VNet possono comunicare con le risorse in un'altra VNet utilizzando indirizzi IP privati, come se fossero nella stessa rete. VNet Peering può essere utilizzato anche con reti on-prem configurando una VPN site-to-site o Azure ExpressRoute.

Azure Hub and Spoke è una topologia di rete utilizzata in Azure per gestire e organizzare il traffico di rete. L'"hub" è un punto centrale che controlla e instrada il traffico tra diversi "spokes". L'hub contiene tipicamente servizi condivisi come network virtual appliances (NVAs), Azure VPN Gateway, Azure Firewall o Azure Bastion. Gli "spokes" sono VNets che ospitano carichi di lavoro e si connettono all'hub utilizzando VNet peering, permettendo loro di sfruttare i servizi condivisi all'interno dell'hub. Questo modello promuove una disposizione della rete pulita, riducendo la complessità centralizzando i servizi comuni che più carichi di lavoro attraverso diverse VNets possono utilizzare.

Il pairing VNET è non transitivo in Azure, il che significa che se spoke 1 è connesso a spoke 2 e spoke 2 è connesso a spoke 3, allora spoke 1 non può comunicare direttamente con spoke 3.

Esempi

  • Immagina un'azienda con dipartimenti separati come Vendite, HR e Sviluppo, ognuno con la propria VNet (gli spokes). Queste VNets richiedono accesso a risorse condivise come un database centrale, un firewall e un gateway internet, che sono tutti situati in un'altra VNet (l'hub). Utilizzando il modello Hub and Spoke, ogni dipartimento può connettersi in modo sicuro alle risorse condivise attraverso la VNet hub senza esporre quelle risorse a internet pubblico o creare una struttura di rete complessa con numerose connessioni.

Enumerazione

# List all VNets in your subscription
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List VNet peering connections for a given VNet
az network vnet peering list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}" -o table

# List Shared Resources (e.g., Azure Firewall) in the Hub
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

Site-to-Site VPN

Una Site-to-Site VPN in Azure consente di connettere la tua rete on-premises alla tua Azure Virtual Network (VNet), permettendo alle risorse come le VM all'interno di Azure di apparire come se fossero sulla tua rete locale. Questa connessione viene stabilita tramite un VPN gateway che cripta il traffico tra le due reti.

Esempio

  • Un'azienda con sede principale a New York ha un data center on-premises che deve connettersi in modo sicuro alla sua VNet in Azure, che ospita i suoi carichi di lavoro virtualizzati. Configurando una Site-to-Site VPN, l'azienda può garantire una connettività criptata tra i server on-premises e le VM di Azure, permettendo l'accesso sicuro alle risorse in entrambi gli ambienti come se fossero nella stessa rete locale.

Enumerazione

# List VPN Gateways
az network vnet-gateway list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List VPN Connections
az network vpn-connection list --gateway-name <VpnGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, connectionType:connectionType, connectionStatus:connectionStatus}" -o table

Azure ExpressRoute

Azure ExpressRoute è un servizio che fornisce una connessione privata, dedicata e ad alta velocità tra la tua infrastruttura on-premises e i data center di Azure. Questa connessione viene effettuata tramite un provider di connettività, bypassando internet pubblico e offrendo maggiore affidabilità, velocità più elevate, latenza inferiore e sicurezza superiore rispetto alle connessioni internet tipiche.

Esempio

  • Una multinazionale richiede una connessione coerente e affidabile ai suoi servizi Azure a causa dell'elevato volume di dati e della necessità di un'alta velocità di trasmissione. L'azienda opta per Azure ExpressRoute per connettere direttamente il suo data center on-premises ad Azure, facilitando trasferimenti di dati su larga scala, come backup giornalieri e analisi dei dati in tempo reale, con maggiore privacy e velocità.

Enumerazione

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
Supporta HackTricks

Last updated