mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 14:47:17 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-services/vms/az-
This commit is contained in:
@@ -1,28 +1,28 @@
|
||||
# Az - Azure Network
|
||||
# Az - Rete Azure
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Informazioni di Base
|
||||
## Informazioni di base
|
||||
|
||||
Azure fornisce **reti virtuali (VNet)** che consentono agli utenti di creare **reti isolate** all'interno del cloud Azure. All'interno di queste VNet, risorse come macchine virtuali, applicazioni, database... possono essere ospitate e gestite in modo sicuro. Il networking in Azure supporta sia la comunicazione all'interno del cloud (tra i servizi Azure) sia la connessione a reti esterne e a Internet.\
|
||||
Inoltre, è possibile **collegare** le VNet con altre VNet e con reti on-premise.
|
||||
Azure fornisce **reti virtuali (VNet)** che permettono agli utenti di creare **reti** **isolate** all'interno del cloud Azure. All'interno di queste VNet, risorse come macchine virtuali, applicazioni, database... possono essere ospitate e gestite in modo sicuro. Il networking in Azure supporta sia la comunicazione all'interno del cloud (tra servizi Azure) sia la connessione a reti esterne e a internet.\
|
||||
Inoltre, è possibile **connettere** le VNet con altre VNet e con reti on-premise.
|
||||
|
||||
## Rete Virtuale (VNET) e Sottoreti
|
||||
## Virtual Network (VNET) & Subnets
|
||||
|
||||
Una Rete Virtuale di Azure (VNet) è una rappresentazione della tua rete nel cloud, che fornisce **isolamento logico** all'interno dell'ambiente Azure dedicato alla tua sottoscrizione. Le VNet ti consentono di fornire e gestire reti private virtuali (VPN) in Azure, ospitando risorse come Macchine Virtuali (VM), database e servizi applicativi. Offrono **pieno controllo sulle impostazioni di rete**, inclusi intervalli di indirizzi IP, creazione di sottoreti, tabelle di routing e gateway di rete.
|
||||
Una Azure Virtual Network (VNet) è la rappresentazione della tua rete nel cloud, fornendo **isolamento logico** all'interno dell'ambiente Azure dedicato alla tua sottoscrizione. Le VNet permettono di creare e gestire virtual private networks (VPNs) in Azure, ospitando risorse come macchine virtuali (VMs), database e servizi applicativi. Offrono il **controllo completo sulle impostazioni di rete**, inclusi gli intervalli di indirizzi IP, la creazione di subnet, le tabelle di routing e i gateway di rete.
|
||||
|
||||
Le **sottoreti** sono suddivisioni all'interno di una VNet, definite da specifici **intervalli di indirizzi IP**. Segmentando una VNet in più sottoreti, puoi organizzare e proteggere le risorse in base alla tua architettura di rete.\
|
||||
Per impostazione predefinita, tutte le sottoreti all'interno della stessa Rete Virtuale di Azure (VNet) **possono comunicare tra loro** senza alcuna restrizione.
|
||||
**Subnet** sono suddivisioni all'interno di una VNet, definite da specifici **intervalli di indirizzi IP**. Segmentando una VNet in più subnet, puoi organizzare e proteggere le risorse secondo la tua architettura di rete.\
|
||||
Per impostazione predefinita tutte le subnet all'interno della stessa Azure Virtual Network (VNet) **possono comunicare tra di loro** senza alcuna restrizione.
|
||||
|
||||
**Esempio:**
|
||||
|
||||
- `MyVNet` con un intervallo di indirizzi IP di 10.0.0.0/16.
|
||||
- **Sottorete-1:** 10.0.0.0/24 per server web.
|
||||
- **Sottorete-2:** 10.0.1.0/24 per server di database.
|
||||
- `MyVNet` con un intervallo di indirizzi IP 10.0.0.0/16.
|
||||
- **Subnet-1:** 10.0.0.0/24 per server web.
|
||||
- **Subnet-2:** 10.0.1.0/24 per server database.
|
||||
|
||||
### 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:
|
||||
Per elencare tutte le VNet e le subnet in un account Azure, puoi usare Azure Command-Line Interface (CLI). Ecco i passaggi:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -47,16 +47,16 @@ Select-Object Name, AddressPrefix
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Gruppi di Sicurezza di Rete (NSG)
|
||||
## Network Security Groups (NSG)
|
||||
|
||||
Un **Gruppo di Sicurezza di Rete (NSG)** filtra il traffico di rete sia verso che da risorse Azure all'interno di una Rete Virtuale Azure (VNet). Contiene un insieme di **regole di sicurezza** che possono indicare **quali porte aprire per il traffico in entrata e in uscita** in base alla porta sorgente, all'IP sorgente, alla porta di destinazione ed è possibile assegnare una priorità (più basso è il numero di priorità, maggiore è la priorità).
|
||||
Un **Network Security Group (NSG)** filtra il traffico di rete sia in entrata che in uscita dalle risorse Azure all'interno di una Azure Virtual Network (VNet). Contiene un insieme di **regole di sicurezza** che possono indicare **quali porte aprire per il traffico in ingresso e in uscita** per porta sorgente, IP sorgente, porta di destinazione ed è possibile assegnare una priorità (più basso è il numero di priorità, maggiore è la priorità).
|
||||
|
||||
Gli NSG possono essere associati a **sottoreti e NIC.**
|
||||
Gli NSG possono essere associati a **subnet e NIC.**
|
||||
|
||||
**Esempio di regole:**
|
||||
**Esempi di regole:**
|
||||
|
||||
- Una regola in entrata che consente il traffico HTTP (porta 80) da qualsiasi sorgente 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.
|
||||
- Una regola in ingresso che permette traffico HTTP (porta 80) da qualsiasi sorgente verso i tuoi web server.
|
||||
- Una regola in uscita che consente solo traffico SQL (porta 1433) verso un intervallo specifico di indirizzi IP di destinazione.
|
||||
|
||||
### Enumerazione
|
||||
|
||||
@@ -71,7 +71,7 @@ az network nsg show --name <nsg-name>
|
||||
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
|
||||
|
||||
# Get NICs and subnets using this NSG
|
||||
az network nsg show --name MyLowCostVM-nsg --resource-group Resource_Group_1 --query "{subnets: subnets, networkInterfaces: networkInterfaces}"
|
||||
az network nsg show --name <NSGName> --resource-group <ResourceGroupName> --query "{subnets: subnets, networkInterfaces: networkInterfaces}"
|
||||
```
|
||||
{{#endtab }}
|
||||
{{#tab name="PowerShell" }}
|
||||
@@ -81,32 +81,35 @@ Get-AzNetworkSecurityGroup | Select-Object Name, Location
|
||||
Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName>
|
||||
|
||||
# Get NSG rules
|
||||
(Get-AzNetworkSecurityGroup -ResourceGroupName <NSGName> -Name <ResourceGroupName>).SecurityRules
|
||||
Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName> |
|
||||
Select-Object -ExpandProperty SecurityRules |
|
||||
Select-Object Name, Priority, Direction, Access, Protocol, SourceAddressPrefix, DestinationAddressPrefix, SourcePortRange, DestinationPortRange
|
||||
|
||||
# Get NICs and subnets using this NSG
|
||||
(Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName>).Subnets
|
||||
(Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName>).NetworkInterfaces
|
||||
```
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Azure Firewall
|
||||
|
||||
Azure Firewall è un **servizio di sicurezza di rete gestito** in Azure che protegge le risorse cloud ispezionando e controllando il traffico. È un **firewall stateful** che filtra il traffico in base a regole per i Livelli 3-7, supportando la comunicazione sia **all'interno di Azure** (traffico est-ovest) che **verso/da reti esterne** (traffico nord-sud). Distribuito a livello di **Virtual Network (VNet)**, fornisce protezione centralizzata per tutte le subnet nella VNet. Azure Firewall si scala automaticamente per gestire le richieste di traffico e garantisce alta disponibilità senza richiedere configurazioni manuali.
|
||||
Azure Firewall è un **firewall gestito e con stato** che filtra il traffico (L3–L7) per flussi est-ovest e nord-sud. Distribuito a livello di **VNet**, centralizza l'ispezione per tutte le subnet e si ridimensiona automaticamente per garantire la disponibilità.
|
||||
|
||||
È disponibile in tre SKU—**Basic**, **Standard** e **Premium**, ciascuno adattato a specifiche esigenze dei clienti:
|
||||
SKU disponibili: **Basic**, **Standard** e **Premium**:
|
||||
|
||||
| Criteri/Caratteristiche | Opzione 1 | Opzione 2 | Opzione 3 |
|
||||
| Criteria/Feature | Option 1 | Option 2 | Option 3 |
|
||||
| ------------------------------ | ------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- |
|
||||
| **Caso d'uso raccomandato** | Piccole/Medie Imprese (PMI) con esigenze limitate | Uso aziendale generale, filtraggio Livello 3–7 | Ambienti altamente sensibili (es. elaborazione pagamenti) |
|
||||
| **Prestazioni** | Fino a 250 Mbps di throughput | Fino a 30 Gbps di throughput | Fino a 100 Gbps di throughput |
|
||||
| **Intelligence sulle minacce** | Solo avvisi | Avvisi e blocco (IP/domini malevoli) | Avvisi e blocco (intelligence sulle minacce avanzate) |
|
||||
| **Filtraggio L3–L7** | Filtraggio di base | Filtraggio stateful tra protocolli | Filtraggio stateful con ispezione avanzata |
|
||||
| **Protezione avanzata dalle minacce** | Non disponibile | Filtraggio basato su intelligence delle minacce | Include il Sistema di Rilevamento e Prevenzione delle Intrusioni (IDPS) |
|
||||
| **Ispezione TLS** | Non disponibile | Non disponibile | Supporta la terminazione TLS in entrata/uscita |
|
||||
| **Disponibilità** | Backend fisso (2 VM) | Autoscaling | Autoscaling |
|
||||
| **Facilità di gestione** | Controlli di base | Gestito tramite Firewall Manager | Gestito tramite Firewall Manager |
|
||||
| **Caso d'uso consigliato** | Piccole/Medie imprese (SMBs) con esigenze limitate | Uso aziendale generale, filtraggio Layer 3–7 | Ambienti altamente sensibili (es. elaborazione pagamenti) |
|
||||
| **Prestazioni** | Fino a 250 Mbps di throughput | Fino a 30 Gbps di throughput | Fino a 100 Gbps di throughput |
|
||||
| **Intelligence sulle minacce** | Solo avvisi | Avvisi e blocco (IP/domini malevoli) | Avvisi e blocco (intelligence avanzata sulle minacce) |
|
||||
| **Filtraggio L3–L7** | Filtraggio di base | Filtraggio stateful attraverso i protocolli | Filtraggio stateful con ispezione avanzata |
|
||||
| **Protezione avanzata dalle minacce** | Non disponibile | Filtraggio basato su intelligence sulle minacce | Include un sistema di rilevamento e prevenzione delle intrusioni (IDPS) |
|
||||
| **Ispezione TLS** | Non disponibile | Non disponibile | Supporta la terminazione TLS in ingresso e in uscita |
|
||||
| **Disponibilità** | Backend fisso (2 VM) | Ridimensionamento automatico | Ridimensionamento automatico |
|
||||
| **Facilità di gestione** | Controlli base | Gestito tramite Firewall Manager | Gestito tramite Firewall Manager |
|
||||
|
||||
### Enumeration
|
||||
### Enumerazione
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -141,11 +144,16 @@ Get-AzFirewall
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Tabelle di Routing di Azure
|
||||
## Tabelle di routing di Azure
|
||||
|
||||
Le **Tabelle di Routing di Azure** vengono utilizzate per controllare il routing del traffico di rete all'interno di una subnet. Definiscono regole che specificano come i pacchetti devono essere inoltrati, sia verso le risorse di Azure, verso Internet, o a un prossimo salto specifico come un Virtual Appliance o Azure Firewall. Puoi associare una tabella di routing a una **subnet**, e tutte le risorse all'interno di quella subnet seguiranno i percorsi nella tabella.
|
||||
Azure **Route Tables (UDR)** consentono di sovrascrivere il routing di default definendo prefissi di destinazione (es., `10.0.0.0/16` o `0.0.0.0/0`) e un next hop (Virtual Network, Internet, Virtual Network Gateway, or Virtual Appliance).
|
||||
|
||||
**Esempio:** Se una subnet ospita risorse che devono instradare il traffico in uscita attraverso un Network Virtual Appliance (NVA) per l'ispezione, puoi creare un **percorso** in una tabella di routing per reindirizzare tutto il traffico (ad es., `0.0.0.0/0`) all'indirizzo IP privato dell'NVA come prossimo salto.
|
||||
> Le route si applicano a livello di subnet; tutte le VM in quella subnet seguono la tabella.
|
||||
|
||||
**Esempio:**
|
||||
|
||||
- Per il traffico verso Internet, usa il default `0.0.0.0/0` con **Internet** come next hop.
|
||||
- Per ispezionare il traffico in uscita, instrada `0.0.0.0/0` verso l'IP di una Network Virtual Appliance (NVA).
|
||||
|
||||
### **Enumerazione**
|
||||
|
||||
@@ -155,8 +163,11 @@ Le **Tabelle di Routing di Azure** vengono utilizzate per controllare il routing
|
||||
# List Route Tables
|
||||
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table
|
||||
|
||||
# List routes 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
|
||||
# List routes for a table (summary)
|
||||
az network route-table route list --resource-group <ResourceGroupName> --route-table-name <RouteTableName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table
|
||||
|
||||
# List routes for a table (full)
|
||||
az network route-table route list --resource-group <ResourceGroupName> --route-table-name <RouteTableName>
|
||||
```
|
||||
{{#endtab }}
|
||||
{{#tab name="PowerShell" }}
|
||||
@@ -172,16 +183,16 @@ Get-AzRouteTable
|
||||
|
||||
## Azure Private Link
|
||||
|
||||
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.
|
||||
Azure Private Link è un servizio di Azure che **consente l'accesso privato ai servizi Azure** garantendo che **il traffico tra la tua virtual network (VNet) di Azure e il servizio transiti interamente nel backbone di Azure di Microsoft**. Porta di fatto il servizio nella tua VNet. Questa configurazione migliora la sicurezza evitando di esporre 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.
|
||||
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 fruire dei servizi dalla tua VNet o anche da diverse sottoscrizioni Azure.
|
||||
|
||||
> [!CAUTION]
|
||||
> 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.
|
||||
> NSGs do not apply to private endpoints, which clearly means that associating an NSG with a subnet that contains the Private Link will have no effect.
|
||||
|
||||
**Esempio:**
|
||||
|
||||
Considera uno scenario in cui hai un **Azure SQL Database che 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.
|
||||
Considera uno scenario in cui hai un **Azure SQL Database che vuoi accedere in modo sicuro dalla tua VNet**. Normalmente questo potrebbe implicare il transito su Internet pubblico. Con Private Link puoi creare un **private endpoint 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**
|
||||
|
||||
@@ -206,13 +217,60 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Endpoint dei Servizi Azure
|
||||
### DNS OverDoS tramite service Private DNS zone links
|
||||
|
||||
Gli Endpoint dei Servizi 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 dei servizi, **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.
|
||||
Quando una VNet ha una **Virtual Network Link** verso una **service Private DNS zone** (es., `privatelink.blob.core.windows.net`), Azure **forza la risoluzione dei nomi host** per le risorse registrate con Private Link di quel tipo di servizio attraverso la zona. Se la zona **manca del `A` record richiesto** per una risorsa a cui i carichi di lavoro accedono ancora tramite il suo endpoint pubblico, la risoluzione DNS restituisce **NXDOMAIN** e i client non raggiungono mai l'IP pubblico, causando un **availability DoS** senza toccare direttamente la risorsa.
|
||||
|
||||
**Abuse flow (control-plane DoS):**
|
||||
|
||||
1. Ottenere RBAC che consenta di creare **Private Endpoints** o modificare i **Private DNS zone links**.
|
||||
2. Creare un Private Endpoint per lo stesso tipo di servizio in un altro VNet (Azure crea automaticamente la service Private DNS zone e la collega a quel VNet).
|
||||
3. Collegare quella **service Private DNS zone** al VNet vittima.
|
||||
4. Poiché il VNet vittima ora **forza la risoluzione tramite la Private DNS zone** e non esiste alcun `A` record per la risorsa target in quella zona, la risoluzione dei nomi fallisce e il carico di lavoro non può raggiungere l'endpoint (ancora pubblico). Questo vale per qualsiasi servizio supportato da Private Link (storage, Key Vault, ACR, Cosmos DB, Function Apps, OpenAI, ecc.).
|
||||
|
||||
**Discovery at scale (Azure Resource Graph):**
|
||||
|
||||
- VNETs collegati alla blob Private DNS zone (risoluzione forzata per endpoint blob registrati con PL):
|
||||
```kusto
|
||||
resources
|
||||
| where type == "microsoft.network/privatednszones/virtualnetworklinks"
|
||||
| extend
|
||||
zone = tostring(split(id, "/virtualNetworkLinks")[0]),
|
||||
vnetId = tostring(properties.virtualNetwork.id)
|
||||
| join kind=inner (
|
||||
resources
|
||||
| where type == "microsoft.network/privatednszones"
|
||||
| where name == "privatelink.blob.core.windows.net"
|
||||
| project zoneId = id
|
||||
) on $left.zone == $right.zoneId
|
||||
| project vnetId
|
||||
```
|
||||
- Storage accounts raggiungibili tramite endpoint pubblico ma **senza** connessioni Private Endpoint (probabilmente si romperà se il link sopra viene aggiunto):
|
||||
```kusto
|
||||
Resources
|
||||
| where type == "microsoft.storage/storageaccounts"
|
||||
| extend publicNetworkAccess = properties.publicNetworkAccess
|
||||
| extend defaultAction = properties.networkAcls.defaultAction
|
||||
| extend vnetRules = properties.networkAcls.virtualNetworkRules
|
||||
| extend ipRules = properties.networkAcls.ipRules
|
||||
| extend privateEndpoints = properties.privateEndpointConnections
|
||||
| where publicNetworkAccess == "Enabled"
|
||||
| where defaultAction == "Deny"
|
||||
| where (isnull(privateEndpoints) or array_length(privateEndpoints) == 0)
|
||||
| extend allowedVnets = iif(isnull(vnetRules), 0, array_length(vnetRules))
|
||||
| extend allowedIps = iif(isnull(ipRules), 0, array_length(ipRules))
|
||||
| where allowedVnets > 0 or allowedIps > 0
|
||||
| project id, name, vnetRules, ipRules
|
||||
```
|
||||
## Azure Service Endpoints
|
||||
|
||||
Azure Service Endpoints estendono lo spazio di indirizzi privati della tua virtual network e l'identità della tua VNet ai servizi Azure tramite una connessione diretta. Abilitando i service endpoints, **le risorse nella tua VNet possono connettersi in modo sicuro ai servizi Azure**, come Azure Storage e Azure SQL Database, sulla rete backbone di Azure. Questo è particolarmente utile se combinato con Network Security Groups (NSGs) per un controllo granulare del traffico.
|
||||
|
||||
**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.
|
||||
- Con **Storage** Account e Service Endpoint **abilitato** in una VNET, è possibile consentire il traffico in ingresso **solo da una VNET nel firewall dell'account di storage**, imponendo una **connessione sicura** senza necessità di accesso tramite public IP per il servizio di storage.
|
||||
|
||||
Service Endpoints **non richiedono indirizzi IP privati** per i servizi e si appoggiano invece al backbone di Azure per la connettività sicura. Sono **più facili da configurare** rispetto ai Private Links ma **non offrono lo stesso livello di isolamento e granularità** dei Private Links.
|
||||
|
||||
### **Enumerazione**
|
||||
|
||||
@@ -223,7 +281,10 @@ Ad esempio, un **account Azure Storage** è accessibile per impostazione predefi
|
||||
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
|
||||
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}"
|
||||
|
||||
# List Service Endpoints for a Subnet
|
||||
az network vnet subnet show --resource-group <ResourceGroupName> --vnet-name <VNetName> --name <SubnetName> --query "serviceEndpoints"
|
||||
```
|
||||
{{#endtab }}
|
||||
{{#tab name="PowerShell" }}
|
||||
@@ -239,56 +300,70 @@ Get-AzVirtualNetwork
|
||||
|
||||
### Differenze tra Service Endpoints e Private Links
|
||||
|
||||
Microsoft raccomanda di utilizzare i Private Links nella [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints):
|
||||
Microsoft consiglia di utilizzare Private Links nella [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints):
|
||||
|
||||
<figure><img src="../../../../images/image (25).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**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.
|
||||
- Il traffico dalla tua VNet verso il servizio Azure viaggia sulla rete backbone di Microsoft Azure, evitando l'internet pubblico.
|
||||
- L'endpoint è una connessione diretta al servizio Azure e non fornisce un private IP per il servizio all'interno della VNet.
|
||||
- Il servizio è comunque accessibile tramite il suo public endpoint dall'esterno della tua VNet, a meno che tu non configuri il service firewall per bloccare tale traffico.
|
||||
- È una relazione one-to-one tra la subnet e il servizio Azure.
|
||||
- Meno costoso rispetto a 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.
|
||||
- Private Link mappa i servizi Azure nella tua VNet tramite un private endpoint, che è un'interfaccia di rete con un private IP all'interno della tua VNet.
|
||||
- Il servizio Azure viene raggiunto usando questo private IP, facendo apparire il servizio come parte della tua rete.
|
||||
- I servizi connessi tramite Private Link possono essere raggiunti solo dalla tua VNet o dalle reti connesse; non c'è accesso dall'internet pubblico al servizio.
|
||||
- Permette una connessione sicura ai servizi Azure o ai tuoi servizi ospitati in Azure, così come una connessione ai servizi condivisi da altri.
|
||||
- Fornisce un controllo accessi più granulare tramite un private endpoint nella tua VNet, a differenza di un controllo più ampio a livello di subnet con 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.
|
||||
In sintesi, mentre sia Service Endpoints che Private Links offrono connettività sicura ai servizi Azure, **Private Links offrono un livello maggiore di isolamento e sicurezza assicurando che i servizi siano accessibili privatamente senza esporli all'internet pubblico**. Service Endpoints, d'altro canto, sono più facili da configurare per casi generali in cui è richiesto un accesso semplice e sicuro ai servizi Azure senza la necessità di un private IP nella VNet.
|
||||
|
||||
## Azure Front Door (AFD) & AFD WAF
|
||||
|
||||
**Azure Front Door** è un punto di accesso scalabile e sicuro per la **veloce 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** è un punto di ingresso scalabile e sicuro per la **consegna veloce** delle tue applicazioni web globali. Combina vari servizi come **accelerazione delle applicazioni, SSL offloading e security a livello applicativo** (tramite Web Application Firewall - WAF). È costruito sul concetto di edge POP (Point of Presence) distribuiti nel mondo per avvicinare le tue applicazioni ai tuoi utenti.
|
||||
|
||||
**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.
|
||||
> Azure Front Door fornisce una rete globalmente distribuita di edge locations per **instradare e accelerare** il traffico in ingresso verso le tue applicazioni web (in Azure o altrove), migliorare le prestazioni e aumentare la sicurezza.
|
||||
|
||||
**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à.
|
||||
- Per una piattaforma e-commerce globale con utenti in tutto il mondo, **Azure Front Door può memorizzare nella cache i contenuti statici nelle edge locations** e offrire **SSL offloading**, riducendo la latenza e fornendo un'esperienza utente più reattiva. Inoltre, fornisce **WAF** per proteggere le tue applicazioni dalle comuni vulnerabilità web (come SQL injection o XSS).
|
||||
|
||||
### Enumerazione
|
||||
Azure Front Door offre anche un **bilanciamento intelligente del carico** instradando il traffico verso il backend disponibile più vicino basandosi su health probes e latenza, garantendo prestazioni e disponibilità costanti. Integrando **WAF**, aiuta a proteggere contro le comuni minacce web.
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# List Azure Front Door Instances
|
||||
# List Azure Front Door profiles
|
||||
az afd profile list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table
|
||||
|
||||
# List AFD endpoints
|
||||
az afd endpoint list --profile-name <ProfileName> --resource-group <ResourceGroupName> --query "[].{name:name, hostName:hostName, state:resourceState}" -o table
|
||||
|
||||
# Classic Azure Front Door (v1) profiles
|
||||
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table
|
||||
|
||||
# List Front Door WAF Policies
|
||||
# Classic Azure Front Door WAF policies
|
||||
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table
|
||||
```
|
||||
{{#endtab }}
|
||||
{{#tab name="PowerShell" }}
|
||||
```bash
|
||||
# List Azure Front Door Instances
|
||||
# List Azure Front Door profiles
|
||||
Get-AzFrontDoorCdnProfile | Select-Object Name, Location, ResourceGroupName
|
||||
|
||||
# List AFD endpoints
|
||||
Get-AzFrontDoorCdnEndpoint -ProfileName <ProfileName> -ResourceGroupName <ResourceGroupName> | Select-Object Name, HostName, ResourceState
|
||||
|
||||
# Classic Azure Front Door (v1) profiles
|
||||
Get-AzFrontDoor
|
||||
|
||||
# List Front Door WAF Policies
|
||||
# Classic Azure Front Door WAF policies
|
||||
Get-AzFrontDoorWafPolicy -Name <policyName> -ResourceGroupName <resourceGroupName>
|
||||
```
|
||||
{{#endtab }}
|
||||
@@ -296,12 +371,12 @@ Get-AzFrontDoorWafPolicy -Name <policyName> -ResourceGroupName <resourceGroupNam
|
||||
|
||||
## 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.
|
||||
Azure Application Gateway è un **bilanciatore di carico per traffico web** che ti consente di gestire il traffico verso le tue applicazioni **web**. Offre **bilanciamento del carico a Layer 7, terminazione SSL e funzionalità di web application firewall (WAF)** nell'Application Delivery Controller (ADC) come servizio. Le funzionalità principali includono instradamento basato su URL, affinità di sessione basata su cookie e offloading del Secure Sockets Layer (SSL), fondamentali per applicazioni che richiedono capacità di bilanciamento del carico complesse come il routing globale e il routing basato sul 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.**
|
||||
Considera uno scenario in cui hai un sito e-commerce che include più sottodomini per funzioni diverse, come account utente e elaborazione pagamenti. Azure Application Gateway può **instradare il traffico verso i web server appropriati in base al percorso URL**. Ad esempio, il traffico verso `example.com/accounts` potrebbe essere indirizzato al servizio account utente, e il traffico verso `example.com/pay` potrebbe essere indirizzato al servizio di elaborazione pagamenti.\
|
||||
E **proteggere il tuo sito dagli attacchi usando le funzionalità WAF.**
|
||||
|
||||
### **Enumerazione**
|
||||
|
||||
@@ -320,20 +395,20 @@ az network application-gateway waf-config list --gateway-name <AppGatewayName> -
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Azure Hub, Spoke e VNet Peering
|
||||
## VNet Peering & topologie Hub and Spoke
|
||||
|
||||
**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.
|
||||
### VNet Peering
|
||||
|
||||
**Azure Hub e 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 un layout di rete pulito, riducendo la complessità centralizzando i servizi comuni che più carichi di lavoro su diverse VNets possono utilizzare.
|
||||
**VNet Peering** è una funzionalità di Azure che **consente a diverse Virtual Networks (VNets) di essere connesse in modo diretto e trasparente**. Attraverso VNet Peering, le risorse in un VNet possono comunicare con risorse in un altro VNet usando indirizzi IP privati, **come se fossero nella stessa rete**.\
|
||||
**VNet Peering può essere usato anche con reti on-prem** configurando una site-to-site VPN o Azure ExpressRoute.
|
||||
|
||||
> [!CAUTION] > **Il VNET peering 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.
|
||||
**Azure Hub and Spoke** è un'architettura di rete che sfrutta VNet peering per creare un **Hub VNet** centrale che si connette a più **Spoke VNets**. L'hub tipicamente contiene servizi condivisi (come firewalls, DNS o Active Directory) mentre gli spoke ospitano i carichi applicativi. Questo design semplifica la gestione, migliora la sicurezza tramite controlli centralizzati e riduce la ridondanza.
|
||||
|
||||
**Esempio:**
|
||||
|
||||
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 l'hub VNet senza esporre quelle risorse a Internet pubblico** o creare una struttura di rete complessa con numerose connessioni.
|
||||
Una grande azienda con più dipartimenti (Finance, HR, IT) può creare un **Hub VNet con servizi condivisi** come firewalls e server DNS. Ogni dipartimento può avere il proprio Spoke VNet che si collega all'Hub via peering. Questo permette ai dipartimenti di comunicare in modo sicuro e utilizzare servizi condivisi senza esporre le loro risorse a Internet pubblico.
|
||||
|
||||
### Enumerazione
|
||||
### **Enumeration**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -341,8 +416,8 @@ Immagina un'azienda con dipartimenti separati come Vendite, Risorse Umane e Svil
|
||||
# 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 VNet Peerings
|
||||
az network vnet peering list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, remoteVnetId:remoteVirtualNetwork.id, allowForwardedTraffic:allowForwardedTraffic, allowGatewayTransit:allowGatewayTransit}"
|
||||
|
||||
# List Shared Resources (e.g., Azure Firewall) in the Hub
|
||||
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table
|
||||
@@ -353,8 +428,8 @@ az network firewall list --query "[].{name:name, location:location, resourceGrou
|
||||
# List all VNets in your subscription
|
||||
Get-AzVirtualNetwork
|
||||
|
||||
# List VNet peering connections for a given VNet
|
||||
(Get-AzVirtualNetwork -ResourceGroupName <ResourceGroupName> -Name <VNetName>).VirtualNetworkPeerings
|
||||
# List VNet Peerings
|
||||
Get-AzVirtualNetworkPeering -ResourceGroupName <ResourceGroupName> -VirtualNetworkName <VNetName>
|
||||
|
||||
# List Shared Resources (e.g., Azure Firewall) in the Hub
|
||||
Get-AzFirewall
|
||||
@@ -362,13 +437,13 @@ Get-AzFirewall
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## VPN Site-to-Site
|
||||
## Site-to-Site VPN
|
||||
|
||||
Una VPN Site-to-Site in Azure consente di **collegare la tua rete locale alla tua Rete Virtuale (VNet) di Azure**, facendo apparire risorse come le VM all'interno di Azure come se fossero sulla tua rete locale. Questa connessione viene stabilita tramite un **gateway VPN che cripta il traffico** tra le due reti.
|
||||
Una **Site-to-Site VPN** in Azure stabilisce una connessione sicura e **persistente dalla tua rete on-premises alla tua Azure Virtual Network (VNet)**, permettendo a risorse come le VMs all'interno di Azure di apparire come se fossero sulla tua rete locale. Questa connessione viene stabilita tramite un **VPN gateway che cifra 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.
|
||||
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 connettività cifrata tra i server on-premises e le VM in Azure**, permettendo l'accesso sicuro alle risorse in entrambi gli ambienti come se fossero nella stessa rete locale.
|
||||
|
||||
### **Enumerazione**
|
||||
|
||||
@@ -395,11 +470,11 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <ResourceGroupName>
|
||||
|
||||
## 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, latenze inferiori e maggiore sicurezza rispetto alle connessioni Internet tipiche.
|
||||
Azure ExpressRoute è un servizio che fornisce una **connessione privata, dedicata e ad alta velocità tra la tua infrastruttura on-premises e i data center Azure**. Questa connessione è effettuata tramite un provider di connettività, evitando la rete pubblica e offrendo maggiore affidabilità, velocità superiori, latenze ridotte e una sicurezza più elevata rispetto alle connessioni Internet tradizionali.
|
||||
|
||||
**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à.
|
||||
Una multinazionale necessita di una **connessione costante e affidabile ai suoi servizi Azure a causa dell'elevato volume di dati** e della necessità di elevata larghezza di banda. L'azienda opta per 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**
|
||||
|
||||
@@ -418,4 +493,10 @@ Get-AzExpressRouteCircuit
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Riferimenti
|
||||
|
||||
- [DNS OverDoS: I Private Endpoints sono troppo privati?](https://unit42.paloaltonetworks.com/dos-attacks-and-azure-private-endpoint/)
|
||||
- [Configurazione DNS di Azure Private Endpoint](https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns)
|
||||
- [Fallback del Private DNS verso Internet](https://learn.microsoft.com/en-us/azure/dns/private-dns-fallback)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user