Az - Azure Network

Support 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.

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

La sicurezza è un aspetto critico della rete di 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 soddisfi le loro specifiche esigenze applicative e di carico di lavoro, mantenendo un forte focus sulla sicurezza e sull'affidabilità.

Rete Virtuale (VNET) e Sottoreti

Una VNet in Azure è essenzialmente una rappresentazione della tua rete nel cloud. È un isolamento logico del cloud di 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 più tipi di risorse di Azure, come macchine virtuali (VM), database e servizi applicativi.

Le VNet ti forniscono il pieno controllo sulle impostazioni della tua rete, inclusi intervalli di indirizzi IP, creazione di sottoreti, tabelle di routing e gateway di rete.

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

Inoltre, le sottoreti 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 sottorete 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 sottorete, 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 VNet e le sottoreti in un account Azure, puoi utilizzare l'Interfaccia della 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 principale di filtrare il traffico di rete sia verso che da risorse Azure all'interno di una 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 ostacolare 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 in base a criteri come indirizzo IP di origine/destinazione, porta e protocollo. Questa specificità consente una gestione granulare del traffico di rete.

  • Miglioramento della Sicurezza: Assicurando che solo il traffico autorizzato possa entrare o uscire dalle tue risorse Azure, gli NSG svolgono 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 della tua VNet. Puoi creare regole come:

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

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

Enumeration

# 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 della rete basato su cloud gestito che protegge le risorse della tua rete virtuale Azure. È un firewall completamente stateful come servizio con funzionalità integrate di alta disponibilità e scalabilità.

Azure Firewall fornisce funzionalità più avanzate rispetto a 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 outbound, inbound, 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. È progettato per fornire un filtraggio di base del traffico inbound e outbound dalle interfacce di rete (NIC), VM o subnet.

  • Azure Firewall: Opera a livello di VNet, fornendo un ambito di protezione più ampio. È 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), filtraggio basato su intelligence delle minacce, filtraggio del traffico di rete e altro ancora. Supporta anche più indirizzi IP pubblici.

  1. Casi d'uso:

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

  • Azure Firewall: Adatto per scenari di filtraggio più complessi in cui sono necessari controllo a livello di applicazione, logging e 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. Le NVA sono tipicamente utilizzate per funzioni di rete che non sono disponibili nativamente in Azure o quando è necessaria maggiore personalizzazione. Sono essenzialmente VM che eseguono applicazioni o servizi di rete, come firewall, ottimizzatori WAN o bilanciatori di carico.

Le NVA sono utilizzate per compiti complessi di routing, sicurezza e gestione del traffico di rete. Possono essere distribuite da Azure Marketplace, 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. Questa 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 configurata per ispezionare e filtrare il traffico che la 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

Tabelle di Routing di Azure e Route Definite dall'Utente (UDR)

Le Tabelle di Routing di Azure sono una funzionalità all'interno di Microsoft Azure che consentono il controllo del routing del traffico di rete all'interno delle Reti Virtuali di Azure (VNets). Fondamentalmente, definiscono come i pacchetti vengono inoltrati tra le sottoreti all'interno delle VNets, tra le VNets o verso reti esterne. Ogni tabella di routing contiene un insieme di regole, note come rotte, che specificano come i pacchetti devono essere instradati in base ai loro indirizzi IP di destinazione.

Le Route Definite dall'Utente (UDR) in Azure sono rotte personalizzate che crei all'interno delle Tabelle di Routing di Azure per controllare il flusso del traffico di rete all'interno e tra le Reti Virtuali di Azure (VNets), e verso connessioni esterne. Le UDR ti offrono la flessibilità di dirigere il traffico di rete secondo le tue specifiche esigenze, sovrascrivendo le decisioni di routing predefinite di Azure.

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

Esempio

  • Supponiamo di aver distribuito un'Appliance Virtuale di Rete (NVA) per ispezionare il traffico tra le sottoreti all'interno di una VNet. Puoi creare una UDR che dirige tutto il traffico da una sottorete a un'altra sottorete attraverso l'NVA. Questa UDR garantisce che l'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 abilita 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 Microsoft Azure. Porta effettivamente 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 propria 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 a cui desideri 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 collega 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

Endpoint di Servizio Azure

Gli Endpoint di Servizio Azure estendono lo spazio degli indirizzi privati della tua rete virtuale e l'identità della tua VNet ai servizi Azure tramite una connessione diretta. Abilitando gli endpoint di servizio, le risorse nella tua 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 dalla VNet al servizio Azure rimanga all'interno della rete Azure, fornendo un percorso più sicuro e affidabile.

Esempio

  • Ad esempio, un account Azure Storage è accessibile per impostazione predefinita tramite internet pubblico. Abilitando un endpoint di servizio per Azure Storage all'interno della tua VNet, puoi garantire che solo il traffico dalla tua VNet possa accedere all'account di archiviazione. Il firewall dell'account di archiviazione può quindi essere configurato per accettare traffico solo dalla tua 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 di utilizzare i Private Links nella docs:\

Service Endpoints:

  • Il traffico dalla tua VNet al servizio Azure viaggia attraverso la 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 tu non configuri il firewall del servizio per bloccare tale traffico.

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

  • Meno costoso dei Private Links.

Private Links:

  • Il 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 dalle reti connesse; non c'è accesso a Internet pubblico al servizio.

  • Consente una connessione sicura ai servizi Azure o ai tuoi servizi ospitati in Azure, così come una connessione a servizi condivisi da altri.

  • Fornisce un controllo degli accessi più granulare tramite un endpoint privato nella tua VNet, rispetto a un controllo degli accessi più ampio a livello di subnet con gli 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 superiore di isolamento e sicurezza garantendo che i servizi siano accessibili privatamente senza esporli a Internet pubblico. Gli 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 rapida consegna delle tue applicazioni web globali. Combina vari servizi come bilanciamento del carico globale, accelerazione del sito, offloading SSL e capacità di Web Application Firewall (WAF) in un unico servizio. Azure Front Door fornisce 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 backend. Include regole personalizzate e set di regole gestite per proteggere contro minacce come SQL injection, cross-site scripting e altri attacchi comuni.

Esempio

  • Immagina di avere un'applicazione distribuita a livello globale con utenti in tutto il mondo. Puoi utilizzare Azure Front Door per instradare le richieste degli utenti al centro dati regionale più vicino che ospita la tua applicazione, riducendo così la latenza, migliorando l'esperienza dell'utente e difendendola dagli attacchi web con le capacità WAF. Se una particolare regione subisce un'interruzione, Azure Front Door può automaticamente reindirizzare il traffico alla posizione successiva migliore, garantendo 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 per il traffico web che ti consente di gestire il traffico verso le tue applicazioni web. Offre bilanciamento del carico a livello 7, terminazione SSL e capacità di firewall per applicazioni web (WAF) nel Controller di Distribuzione delle Applicazioni (ADC) come servizio. Le caratteristiche principali includono il routing basato su URL, l'affinità delle sessioni basata su cookie e il caricamento del layer di socket sicuri (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 proteggi il tuo sito web dagli attacchi utilizzando le capacità 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 Reti Virtuali (VNets) di essere collegate direttamente e senza soluzione di continuità. Attraverso il 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. Il 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 i diversi "spoke". L'hub contiene tipicamente servizi condivisi come appliance virtuali di rete (NVA), Azure VPN Gateway, Azure Firewall o Azure Bastion. Gli "spoke" sono VNets che ospitano carichi di lavoro e si connettono all'hub utilizzando il VNet peering, consentendo loro di sfruttare i servizi condivisi all'interno dell'hub. Questo modello promuove una disposizione di rete pulita, riducendo la complessità centralizzando i servizi comuni che più carichi di lavoro su diverse VNets possono utilizzare.

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

Esempi

  • Immagina un'azienda con dipartimenti separati come Vendite, Risorse Umane e Sviluppo, ognuno con la propria VNet (gli spoke). Queste VNet richiedono accesso a risorse condivise come un database centrale, un firewall e un gateway internet, che si trovano tutti in un'altra VNet (l'hub). Utilizzando il modello Hub e 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

VPN Site-to-Site

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

Esempio

  • Un'azienda con la sua 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 VPN Site-to-Site, l'azienda può garantire una connettività criptata tra i server on-premises e le VM di Azure, consentendo 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 avviene tramite un fornitore di connettività, bypassando Internet pubblico e offrendo maggiore affidabilità, velocità più elevate, latenza inferiore e maggiore sicurezza rispetto alle connessioni internet tipiche.

Esempio

  • Una multinazionale richiede una connessione coerente e affidabile ai suoi servizi Azure a causa dell'alto volume di dati e della necessità di un elevato throughput. L'azienda sceglie Azure ExpressRoute per collegare direttamente il proprio 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