mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-services/vms/az-
This commit is contained in:
@@ -2,27 +2,27 @@
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Información Básica
|
||||
## Basic Information
|
||||
|
||||
Azure proporciona **redes virtuales (VNet)** que permiten a los usuarios crear **redes aisladas** dentro de la nube de Azure. Dentro de estas VNets, recursos como máquinas virtuales, aplicaciones, bases de datos... pueden ser alojados y gestionados de forma segura. La red en Azure admite tanto la comunicación dentro de la nube (entre servicios de Azure) como la conexión a redes externas y a internet.\
|
||||
Además, es posible **conectar** VNets con otras VNets y con redes locales.
|
||||
Azure proporciona **virtual networks (VNet)** que permiten a los usuarios crear **redes** **aisladas** dentro de la nube de Azure. Dentro de estos VNet, recursos como máquinas virtuales, aplicaciones, bases de datos... pueden alojarse y gestionarse de forma segura. La red en Azure soporta tanto la comunicación dentro de la nube (entre servicios de Azure) como la conexión con redes externas e internet.\
|
||||
Además, es posible **conectar** VNets con otros VNets y con redes on-premise.
|
||||
|
||||
## Red Virtual (VNET) y Subredes
|
||||
## Virtual Network (VNET) & Subnets
|
||||
|
||||
Una Red Virtual de Azure (VNet) es una representación de tu propia red en la nube, proporcionando **aislamiento lógico** dentro del entorno de Azure dedicado a tu suscripción. Las VNets te permiten aprovisionar y gestionar redes privadas virtuales (VPN) en Azure, alojando recursos como Máquinas Virtuales (VM), bases de datos y servicios de aplicaciones. Ofrecen **control total sobre la configuración de la red**, incluyendo rangos de direcciones IP, creación de subredes, tablas de rutas y puertas de enlace de red.
|
||||
Una Azure Virtual Network (VNet) representa tu propia red en la nube, proporcionando **aislamiento lógico** dentro del entorno de Azure dedicado a tu suscripción. Los VNets permiten aprovisionar y gestionar virtual private networks (VPNs) en Azure, alojando recursos como Virtual Machines (VMs), bases de datos y servicios de aplicaciones. Ofrecen **control total sobre la configuración de la red**, incluyendo rangos de direcciones IP, creación de subredes, tablas de enrutamiento y gateways de red.
|
||||
|
||||
**Subredes** son subdivisiones dentro de una VNet, definidas por rangos de **direcciones IP** específicos. Al segmentar una VNet en múltiples subredes, puedes organizar y asegurar recursos de acuerdo con tu arquitectura de red.\
|
||||
Por defecto, todas las subredes dentro de la misma Red Virtual de Azure (VNet) **pueden comunicarse entre sí** sin ninguna restricción.
|
||||
**Subnets** son subdivisiones dentro de un VNet, definidas por rangos específicos de **direcciones IP**. Al segmentar un VNet en múltiples subredes, puedes organizar y asegurar los recursos según tu arquitectura de red.\
|
||||
Por defecto, todas las subredes dentro de la misma Azure Virtual Network (VNet) **pueden comunicarse entre sí** sin restricciones.
|
||||
|
||||
**Ejemplo:**
|
||||
**Example:**
|
||||
|
||||
- `MyVNet` con un rango de direcciones IP de 10.0.0.0/16.
|
||||
- **Subred-1:** 10.0.0.0/24 para servidores web.
|
||||
- **Subred-2:** 10.0.1.0/24 para servidores de bases de datos.
|
||||
- `MyVNet` with an IP address range of 10.0.0.0/16.
|
||||
- **Subnet-1:** 10.0.0.0/24 para servidores web.
|
||||
- **Subnet-2:** 10.0.1.0/24 para servidores de bases de datos.
|
||||
|
||||
### Enumeración
|
||||
### Enumeration
|
||||
|
||||
Para listar todas las VNets y subredes en una cuenta de Azure, puedes usar la Interfaz de Línea de Comando de Azure (CLI). Aquí están los pasos:
|
||||
Para listar todos los VNets y subredes en una cuenta de Azure, puedes usar la Azure Command-Line Interface (CLI). Aquí están los pasos:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -47,16 +47,16 @@ Select-Object Name, AddressPrefix
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Grupos de Seguridad de Red (NSG)
|
||||
## Grupos de seguridad de red (NSG)
|
||||
|
||||
Un **Grupo de Seguridad de Red (NSG)** filtra el tráfico de red tanto hacia como desde los recursos de Azure dentro de una Red Virtual de Azure (VNet). Contiene un conjunto de **reglas de seguridad** que pueden indicar **qué puertos abrir para el tráfico entrante y saliente** según el puerto de origen, la IP de origen, el puerto de destino y es posible asignar una prioridad (cuanto menor sea el número de prioridad, mayor será la prioridad).
|
||||
Un **Grupo de seguridad de red (NSG)** filtra el tráfico de red tanto hacia como desde recursos de Azure dentro de una Azure Virtual Network (VNet). Contiene un conjunto de **reglas de seguridad** que pueden indicar **qué puertos abrir para tráfico entrante y saliente** según el puerto de origen, la IP de origen, el puerto de destino y es posible asignar una prioridad (cuanto menor sea el número de prioridad, mayor será la prioridad).
|
||||
|
||||
Los NSGs pueden asociarse a **subredes y NICs.**
|
||||
Los NSG se pueden asociar a **subredes y NICs.**
|
||||
|
||||
**Ejemplo de reglas:**
|
||||
**Ejemplos de reglas:**
|
||||
|
||||
- Una regla de entrada que permite el tráfico HTTP (puerto 80) desde cualquier origen a tus servidores web.
|
||||
- Una regla de salida que permite solo el tráfico SQL (puerto 1433) a un rango de direcciones IP de destino específico.
|
||||
- Una regla entrante que permita tráfico HTTP (port 80) desde cualquier origen hacia tus servidores web.
|
||||
- Una regla saliente que permita solo tráfico SQL (port 1433) hacia un rango de direcciones IP de destino específico.
|
||||
|
||||
### Enumeración
|
||||
|
||||
@@ -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,30 +81,33 @@ 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 es un **servicio de seguridad de red gestionado** en Azure que protege los recursos en la nube al inspeccionar y controlar el tráfico. Es un **firewall con estado** que filtra el tráfico basado en reglas para las Capas 3 a 7, soportando la comunicación tanto **dentro de Azure** (tráfico este-oeste) como **hacia/desde redes externas** (tráfico norte-sur). Desplegado a nivel de **Red Virtual (VNet)**, proporciona protección centralizada para todas las subredes en la VNet. Azure Firewall se escala automáticamente para manejar las demandas de tráfico y asegura alta disponibilidad sin requerir configuración manual.
|
||||
Azure Firewall es un **firewall gestionado y con estado** que filtra tráfico (L3–L7) para flujos este-oeste y norte-sur. Desplegado a nivel de **VNet**, centraliza la inspección de todas las subredes y se autoescala para garantizar la disponibilidad.
|
||||
|
||||
Está disponible en tres SKUs—**Básico**, **Estándar** y **Premium**, cada uno adaptado a necesidades específicas de los clientes:
|
||||
Available SKUs: **Basic**, **Standard**, and **Premium**:
|
||||
|
||||
| Criterio/Característica | Opción 1 | Opción 2 | Opción 3 |
|
||||
| ------------------------------ | ------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- |
|
||||
| **Caso de Uso Recomendado** | Pequeñas/Medianas Empresas (PYMEs) con necesidades limitadas | Uso empresarial general, filtrado de Capas 3–7 | Entornos altamente sensibles (por ejemplo, procesamiento de pagos) |
|
||||
| **Rendimiento** | Hasta 250 Mbps de rendimiento | Hasta 30 Gbps de rendimiento | Hasta 100 Gbps de rendimiento |
|
||||
| **Inteligencia de Amenazas** | Solo alertas | Alertas y bloqueo (IPs/dominios maliciosos) | Alertas y bloqueo (inteligencia de amenazas avanzada) |
|
||||
| **Filtrado L3–L7** | Filtrado básico | Filtrado con estado a través de protocolos | Filtrado con estado con inspección avanzada |
|
||||
| **Protección Avanzada contra Amenazas** | No disponible | Filtrado basado en inteligencia de amenazas | Incluye Sistema de Detección y Prevención de Intrusiones (IDPS) |
|
||||
| **Inspección TLS** | No disponible | No disponible | Soporta terminación TLS entrante/saliente |
|
||||
| **Disponibilidad** | Backend fijo (2 VMs) | Escalado automático | Escalado automático |
|
||||
| **Facilidad de Gestión** | Controles básicos | Gestionado a través del Firewall Manager | Gestionado a través del Firewall Manager |
|
||||
| Criterio/Característica | Opción 1 | Opción 2 | Opción 3 |
|
||||
| --------------------------- | ------------------------------------------------ | ------------------------------------------- | --------------------------------------------------------- |
|
||||
| **Recommended Use Case** | Pequeñas/Medianas Empresas (SMBs) con necesidades limitadas | Uso empresarial general, filtrado L3–L7 | Entornos altamente sensibles (p.ej., procesamiento de pagos) |
|
||||
| **Performance** | Hasta 250 Mbps de rendimiento | Hasta 30 Gbps de rendimiento | Hasta 100 Gbps de rendimiento |
|
||||
| **Threat Intelligence** | Solo alertas | Alertas y bloqueo (IPs/dominios maliciosos) | Alertas y bloqueo (inteligencia de amenazas avanzada) |
|
||||
| **L3–L7 Filtering** | Filtrado básico | Filtrado stateful a través de protocolos | Filtrado stateful con inspección avanzada |
|
||||
| **Advanced Threat Protection** | No disponible | Filtrado basado en inteligencia de amenazas | Incluye Sistema de Detección y Prevención de Intrusiones (IDPS) |
|
||||
| **TLS Inspection** | No disponible | No disponible | Soporta terminación TLS entrante y saliente |
|
||||
| **Availability** | Backend fijo (2 VMs) | Autoescalado | Autoescalado |
|
||||
| **Ease of Management** | Controles básicos | Gestionado mediante Firewall Manager | Gestionado mediante Firewall Manager |
|
||||
|
||||
### Enumeración
|
||||
|
||||
@@ -141,11 +144,16 @@ Get-AzFirewall
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Tablas de Rutas de Azure
|
||||
## Azure Route Tables
|
||||
|
||||
Las **Tablas de Rutas de Azure** se utilizan para controlar el enrutamiento del tráfico de red dentro de una subred. Definen reglas que especifican cómo se deben reenviar los paquetes, ya sea a recursos de Azure, a internet o a un siguiente salto específico como un Appliance Virtual o Azure Firewall. Puedes asociar una tabla de rutas con una **subred**, y todos los recursos dentro de esa subred seguirán las rutas en la tabla.
|
||||
Azure **Route Tables (UDR)** te permiten sobrescribir el enrutamiento por defecto definiendo prefijos de destino (p. ej., `10.0.0.0/16` o `0.0.0.0/0`) y un siguiente salto (Virtual Network, Internet, Virtual Network Gateway, o Virtual Appliance).
|
||||
|
||||
**Ejemplo:** Si una subred alberga recursos que necesitan enrutar tráfico saliente a través de un Appliance Virtual de Red (NVA) para inspección, puedes crear una **ruta** en una tabla de rutas para redirigir todo el tráfico (por ejemplo, `0.0.0.0/0`) a la dirección IP privada del NVA como el siguiente salto.
|
||||
> Las rutas se aplican a nivel de subred; todas las VMs en esa subred siguen la tabla.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
- Para tráfico con destino a internet, usa el `0.0.0.0/0` por defecto con **Internet** como siguiente salto.
|
||||
- Para inspeccionar tráfico saliente, enruta `0.0.0.0/0` a una IP de Network Virtual Appliance (NVA).
|
||||
|
||||
### **Enumeración**
|
||||
|
||||
@@ -155,8 +163,11 @@ Las **Tablas de Rutas de Azure** se utilizan para controlar el enrutamiento del
|
||||
# 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 es un servicio en Azure que **permite el acceso privado a los servicios de Azure** al garantizar que **el tráfico entre tu red virtual de Azure (VNet) y el servicio viaje completamente dentro de la red troncal de Microsoft Azure**. Efectivamente, lleva el servicio a tu VNet. Esta configuración mejora la seguridad al no exponer los datos a Internet público.
|
||||
Azure Private Link es un servicio en Azure que **habilita el acceso privado a los servicios de Azure** asegurando que **el tráfico entre tu red virtual de Azure (VNet) y el servicio viaje completamente dentro de la red troncal de Azure de Microsoft**. Efectivamente, trae el servicio a tu VNet. Esta configuración mejora la seguridad al no exponer los datos a la Internet pública.
|
||||
|
||||
Private Link se puede utilizar con varios servicios de Azure, como Azure Storage, Azure SQL Database y servicios personalizados compartidos a través de Private Link. Proporciona una forma segura de consumir servicios desde tu propia VNet o incluso desde diferentes suscripciones de Azure.
|
||||
Private Link se puede usar con varios servicios de Azure, como Azure Storage, Azure SQL Database y servicios personalizados compartidos vía Private Link. Proporciona una forma segura de consumir servicios desde dentro de tu propia VNet o incluso desde diferentes suscripciones de Azure.
|
||||
|
||||
> [!CAUTION]
|
||||
> Los NSGs no se aplican a los puntos finales privados, lo que significa claramente que asociar un NSG con una subred que contiene el Private Link no tendrá efecto.
|
||||
> Las NSGs no se aplican a los endpoints privados, lo que claramente significa que asociar una NSG con una subred que contiene el Private Link no tendrá ningún efecto.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
Considera un escenario donde tienes una **Azure SQL Database a la que deseas acceder de forma segura desde tu VNet**. Normalmente, esto podría implicar atravesar Internet público. Con Private Link, puedes crear un **punto final privado en tu VNet** que se conecta directamente al servicio de Azure SQL Database. Este punto final hace que la base de datos parezca parte de tu propia VNet, accesible a través de una dirección IP privada, asegurando así un acceso seguro y privado.
|
||||
Considera un escenario donde tienes una Azure SQL Database a la que quieres acceder de forma segura desde tu VNet. Normalmente, esto podría implicar atravesar la Internet pública. Con Private Link, puedes crear un endpoint privado en tu VNet que se conecte directamente al servicio Azure SQL Database. Este endpoint hace que la base de datos parezca parte de tu propia VNet, accesible mediante una dirección IP privada, garantizando así un acceso seguro y privado.
|
||||
|
||||
### **Enumeración**
|
||||
|
||||
@@ -206,13 +217,60 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Puntos de Conexión de Servicio de Azure
|
||||
### DNS OverDoS a través de service Private DNS zone links
|
||||
|
||||
Los Puntos de Conexión de Servicio de Azure extienden el espacio de direcciones privadas de su red virtual y la identidad de su VNet a los servicios de Azure a través de una conexión directa. Al habilitar los puntos de conexión de servicio, **los recursos en su VNet pueden conectarse de manera segura a los servicios de Azure**, como Azure Storage y Azure SQL Database, utilizando la red troncal de Azure. Esto asegura que el **tráfico de la VNet al servicio de Azure permanezca dentro de la red de Azure**, proporcionando un camino más seguro y confiable.
|
||||
When a VNet has a **Virtual Network Link** to a **service Private DNS zone** (e.g., `privatelink.blob.core.windows.net`), Azure **forces hostname resolution** for Private Link registered resources of that service type through the zone. If the zone **lacks the required `A` record** for a resource that workloads still access via its public endpoint, DNS resolution returns **NXDOMAIN** and clients never reach the public IP, causing an **availability DoS** without touching the resource itself.
|
||||
|
||||
**Flujo de abuso (control-plane DoS):**
|
||||
|
||||
1. Obtener RBAC que permita crear **Private Endpoints** o modificar **Private DNS zone links**.
|
||||
2. Crear un Private Endpoint para el mismo tipo de servicio en otra VNet (Azure crea automáticamente la service Private DNS zone y la enlaza a esa VNet).
|
||||
3. Enlazar esa **service Private DNS zone** a la VNet víctima.
|
||||
4. Porque la VNet víctima ahora **forza la resolución vía la Private DNS zone** y no existe un `A` record para el recurso objetivo en esa zona, la resolución de nombres falla y la carga de trabajo no puede alcanzar el endpoint (que sigue siendo público). Esto se aplica a cualquier servicio compatible con Private Link (storage, Key Vault, ACR, Cosmos DB, Function Apps, OpenAI, etc.).
|
||||
|
||||
**Discovery at scale (Azure Resource Graph):**
|
||||
|
||||
- VNETs enlazadas a la blob Private DNS zone (resolución forzada para PL-registered blob endpoints):
|
||||
```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 accesibles a través de un endpoint público pero **sin** conexiones Private Endpoint (probablemente se rompa si se añade el enlace anterior):
|
||||
```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 extienden el espacio de direcciones privadas de tu red virtual y la identidad de tu VNet a los servicios de Azure mediante una conexión directa. Al habilitar service endpoints, **los recursos en tu VNet pueden conectarse de forma segura a los servicios de Azure**, como Azure Storage y Azure SQL Database, a través de la red troncal de Azure. Esto es particularmente útil cuando se combina con Network Security Groups (NSGs) para un control granular del tráfico.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
Por ejemplo, una cuenta de **Azure Storage** por defecto es accesible a través de internet público. Al habilitar un **punto de conexión de servicio para Azure Storage dentro de su VNet**, puede asegurarse de que solo el tráfico de su VNet pueda acceder a la cuenta de almacenamiento. El firewall de la cuenta de almacenamiento puede configurarse para aceptar tráfico solo de su VNet.
|
||||
- Con una **Storage** Account y Service Endpoint **habilitados** en una VNET, es posible permitir tráfico entrante **solo desde una VNET en el storage account firewall**, forzando una **conexión segura** sin necesitar acceso por IP pública para el servicio de storage.
|
||||
|
||||
Service Endpoints **no requieren direcciones IP privadas** para los servicios y, en su lugar, dependen de la red troncal de Azure para la conectividad segura. Son **más fáciles de configurar** en comparación con Private Links, pero **no ofrecen el mismo nivel de aislamiento y granularidad** que Private Links.
|
||||
|
||||
### **Enumeración**
|
||||
|
||||
@@ -223,7 +281,10 @@ Por ejemplo, una cuenta de **Azure Storage** por defecto es accesible a través
|
||||
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" }}
|
||||
@@ -245,50 +306,64 @@ Microsoft recomienda usar Private Links en la [**docs**](https://learn.microsoft
|
||||
|
||||
**Service Endpoints:**
|
||||
|
||||
- El tráfico de tu VNet al servicio de Azure viaja a través de la red troncal de Microsoft Azure, evitando el internet público.
|
||||
- El tráfico desde tu VNet hacia el servicio de Azure viaja por la red backbone de Microsoft Azure, evitando el internet público.
|
||||
- El endpoint es una conexión directa al servicio de Azure y no proporciona una IP privada para el servicio dentro de la VNet.
|
||||
- El servicio en sí sigue siendo accesible a través de su endpoint público desde fuera de tu VNet, a menos que configures el firewall del servicio para bloquear dicho tráfico.
|
||||
- El servicio en sí sigue siendo accesible a través de su endpoint público desde fuera de tu VNet a menos que configures el firewall del servicio para bloquear ese tráfico.
|
||||
- Es una relación uno a uno entre la subred y el servicio de Azure.
|
||||
- Menos costoso que Private Links.
|
||||
|
||||
**Private Links:**
|
||||
|
||||
- Private Link mapea los servicios de Azure en tu VNet a través de un endpoint privado, que es una interfaz de red con una dirección IP privada dentro de tu VNet.
|
||||
- El servicio de Azure se accede utilizando esta dirección IP privada, haciendo que parezca parte de tu red.
|
||||
- Los servicios conectados a través de Private Link solo pueden ser accedidos desde tu VNet o redes conectadas; no hay acceso público a internet al servicio.
|
||||
- Permite una conexión segura a los servicios de Azure o a tus propios servicios alojados en Azure, así como una conexión a servicios compartidos por otros.
|
||||
- Proporciona un control de acceso más granular a través de un endpoint privado en tu VNet, en lugar de un control de acceso más amplio a nivel de subred con service endpoints.
|
||||
- Private Link mapea los servicios de Azure dentro de tu VNet mediante un private endpoint, que es una interfaz de red con una dirección IP privada dentro de tu VNet.
|
||||
- El servicio de Azure se accede usando esta dirección IP privada, haciendo que parezca parte de tu red.
|
||||
- Los servicios conectados mediante Private Link solo pueden ser accedidos desde tu VNet o redes conectadas; no hay acceso desde el internet público al servicio.
|
||||
- Permite una conexión segura a servicios de Azure o a tus propios servicios alojados en Azure, así como una conexión a servicios compartidos por terceros.
|
||||
- Proporciona un control de acceso más granular a través de un private endpoint en tu VNet, en contraposición al control de acceso más amplio a nivel de subred con Service Endpoints.
|
||||
|
||||
En resumen, aunque tanto Service Endpoints como Private Links proporcionan conectividad segura a los servicios de Azure, **Private Links ofrecen un mayor nivel de aislamiento y seguridad al garantizar que los servicios se accedan de forma privada sin exponerlos al internet público**. Los Service Endpoints, por otro lado, son más fáciles de configurar para casos generales donde se requiere un acceso simple y seguro a los servicios de Azure sin necesidad de una IP privada en la VNet.
|
||||
En resumen, aunque tanto Service Endpoints como Private Links ofrecen conectividad segura a servicios de Azure, **Private Links ofrecen un mayor nivel de aislamiento y seguridad al garantizar que los servicios se accedan de forma privada sin exponerlos al internet público**. Por otro lado, Service Endpoints son más fáciles de configurar para casos generales en los que se requiere un acceso simple y seguro a los servicios de Azure sin la necesidad de una IP privada en la VNet.
|
||||
|
||||
## Azure Front Door (AFD) y AFD WAF
|
||||
## Azure Front Door (AFD) & AFD WAF
|
||||
|
||||
**Azure Front Door** es un punto de entrada escalable y seguro para la **rápida entrega** de tus aplicaciones web globales. **Combina** varios servicios como **balanceo de carga global, aceleración de sitios, descarga de SSL y capacidades de Firewall de Aplicaciones Web (WAF)** en un solo servicio. Azure Front Door proporciona enrutamiento inteligente basado en la **ubicación de borde más cercana al usuario**, asegurando un rendimiento y confiabilidad óptimos. Además, ofrece enrutamiento basado en URL, alojamiento de múltiples sitios, afinidad de sesión y seguridad a nivel de aplicación.
|
||||
**Azure Front Door** es un punto de entrada escalable y seguro para la **entrega rápida** de tus aplicaciones web globales. Combina varios servicios como **aceleración de aplicaciones, terminación de SSL, y seguridad a nivel de aplicación** (a través de Web Application Firewall - WAF). Está construido sobre el concepto de ubicaciones edge POP (Point of Presence) alrededor del mundo para acercar tus aplicaciones a tus usuarios.
|
||||
|
||||
**Azure Front Door WAF** está diseñado para **proteger aplicaciones web de ataques basados en la web** sin modificar el código de backend. Incluye reglas personalizadas y conjuntos de reglas gestionadas para proteger contra amenazas como inyección SQL, scripting entre sitios y otros ataques comunes.
|
||||
> Azure Front Door proporciona una red de ubicaciones edge distribuida globalmente para **encaminar y acelerar** el tráfico entrante hacia tus aplicaciones web (en Azure o en otros lugares), mejorar el rendimiento y aumentar la seguridad.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
Imagina que tienes una aplicación distribuida globalmente con usuarios en todo el mundo. Puedes usar Azure Front Door para **enrutar las solicitudes de los usuarios al centro de datos regional más cercano** que aloje tu aplicación, reduciendo así la latencia, mejorando la experiencia del usuario y **defendiéndola de ataques web con las capacidades de WAF**. Si una región particular experimenta tiempo de inactividad, Azure Front Door puede redirigir automáticamente el tráfico a la siguiente mejor ubicación, asegurando alta disponibilidad.
|
||||
- Para una plataforma de comercio electrónico global con usuarios en todo el mundo, **Azure Front Door puede almacenar en caché contenido estático en ubicaciones edge** y ofrecer **terminación de SSL**, reduciendo la latencia y proporcionando una experiencia de usuario más rápida. Además, proporciona **WAF** para proteger tus aplicaciones contra vulnerabilidades web comunes (como SQL injection o XSS).
|
||||
|
||||
### Enumeración
|
||||
Azure Front Door también ofrece **balanceo de carga inteligente** al encaminar el tráfico al backend disponible más cercano basándose en sondas de salud y latencia, asegurando un rendimiento y disponibilidad consistentes. Al integrar **WAF**, ayuda a proteger contra amenazas web comunes.
|
||||
|
||||
### **Enumeración**
|
||||
|
||||
{{#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 y Azure Application Gateway WAF
|
||||
|
||||
Azure Application Gateway es un **balanceador de carga de tráfico web** que te permite gestionar el tráfico hacia tus **aplicaciones web**. Ofrece **balanceo de carga de Capa 7, terminación SSL y capacidades de firewall de aplicaciones web (WAF)** en el Controlador de Entrega de Aplicaciones (ADC) como servicio. Las características clave incluyen enrutamiento basado en URL, afinidad de sesión basada en cookies y descarga de capa de sockets seguros (SSL), que son cruciales para aplicaciones que requieren capacidades de balanceo de carga complejas como enrutamiento global y enrutamiento basado en rutas.
|
||||
Azure Application Gateway es un **balanceador de carga de tráfico web** que te permite gestionar el tráfico hacia tus aplicaciones **web**. Ofrece **Layer 7 load balancing, SSL termination, and web application firewall (WAF) capabilities** en el Application Delivery Controller (ADC) como servicio. Las características clave incluyen enrutamiento basado en URL, afinidad de sesión basada en cookies y offloading de SSL, que son cruciales para aplicaciones que requieren capacidades complejas de balanceo de carga como enrutamiento global y enrutamiento basado en rutas.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
Considera un escenario donde tienes un sitio web de comercio electrónico que incluye múltiples subdominios para diferentes funciones, como cuentas de usuario y procesamiento de pagos. Azure Application Gateway puede **enrutar el tráfico a los servidores web apropiados según la ruta de la URL**. Por ejemplo, el tráfico a `example.com/accounts` podría ser dirigido al servicio de cuentas de usuario, y el tráfico a `example.com/pay` podría ser dirigido al servicio de procesamiento de pagos.\
|
||||
Y **proteger tu sitio web de ataques utilizando las capacidades de WAF.**
|
||||
Considera un escenario donde tienes un sitio de e-commerce que incluye múltiples subdominios para diferentes funciones, como cuentas de usuario y procesamiento de pagos. Azure Application Gateway puede **enrutar el tráfico a los servidores web apropiados según la ruta URL**. Por ejemplo, el tráfico a `example.com/accounts` podría dirigirse al servicio de cuentas de usuario, y el tráfico a `example.com/pay` podría dirigirse al servicio de procesamiento de pagos.\
|
||||
Y **protege tu sitio web de ataques usando las capacidades del WAF.**
|
||||
|
||||
### **Enumeración**
|
||||
|
||||
@@ -320,20 +395,20 @@ az network application-gateway waf-config list --gateway-name <AppGatewayName> -
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Azure Hub, Spoke y Peering de VNet
|
||||
## VNet Peering & topologías Hub and Spoke
|
||||
|
||||
**VNet Peering** es una característica de red en Azure que **permite que diferentes Redes Virtuales (VNets) se conecten de manera directa y sin problemas**. A través del peering de VNet, los recursos en una VNet pueden comunicarse con recursos en otra VNet utilizando direcciones IP privadas, **como si estuvieran en la misma red**.\
|
||||
**El peering de VNet también se puede usar con redes locales** configurando una VPN de sitio a sitio o Azure ExpressRoute.
|
||||
### VNet Peering
|
||||
|
||||
**Azure Hub y Spoke** es una topología de red utilizada en Azure para gestionar y organizar el tráfico de red. **El "hub" es un punto central que controla y enruta el tráfico entre diferentes "spokes"**. El hub típicamente contiene servicios compartidos como dispositivos virtuales de red (NVAs), Azure VPN Gateway, Azure Firewall o Azure Bastion. Los **"spokes" son VNets que alojan cargas de trabajo y se conectan al hub utilizando peering de VNet**, permitiéndoles aprovechar los servicios compartidos dentro del hub. Este modelo promueve un diseño de red limpio, reduciendo la complejidad al centralizar servicios comunes que múltiples cargas de trabajo en diferentes VNets pueden usar.
|
||||
**VNet Peering** es una característica de Azure que **permite que diferentes Virtual Networks (VNets) se conecten de forma directa y transparente**. A través de VNet Peering, los recursos en una VNet pueden comunicarse con recursos en otra VNet usando direcciones IP privadas, **como si estuvieran en la misma red**.\
|
||||
**VNet Peering también puede usarse con redes on-prem** configurando un site-to-site VPN o Azure ExpressRoute.
|
||||
|
||||
> [!CAUTION] > **El emparejamiento de VNET no es transitivo en Azure**, lo que significa que si el spoke 1 está conectado al spoke 2 y el spoke 2 está conectado al spoke 3, entonces el spoke 1 no puede comunicarse directamente con el spoke 3.
|
||||
**Azure Hub and Spoke** es una arquitectura de red que aprovecha VNet peering para crear un **Hub VNet** central que se conecta a múltiples **Spoke VNets**. El hub típicamente contiene servicios compartidos (como firewalls, DNS o Active Directory) mientras que los spokes alojan cargas de trabajo de aplicaciones. Este diseño simplifica la gestión, mejora la seguridad mediante controles centralizados y reduce la redundancia.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
Imagina una empresa con departamentos separados como Ventas, Recursos Humanos y Desarrollo, **cada uno con su propia VNet (los spokes)**. Estas VNets **requieren acceso a recursos compartidos** como una base de datos central, un firewall y una puerta de enlace a internet, que se encuentran en **otra VNet (el hub)**. Al utilizar el modelo Hub y Spoke, cada departamento puede **conectarse de manera segura a los recursos compartidos a través de la VNet hub sin exponer esos recursos a internet público** o crear una estructura de red compleja con numerosas conexiones.
|
||||
Una gran empresa con múltiples departamentos (Finanzas, RRHH, TI) puede crear un **Hub VNet con servicios compartidos** como firewalls y servidores DNS. Cada departamento puede tener su propio Spoke VNet que se conecta al Hub mediante peering. Esto permite a los departamentos comunicarse de forma segura y usar servicios compartidos sin exponer sus recursos a la internet pública.
|
||||
|
||||
### Enumeración
|
||||
### **Enumeración**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -341,8 +416,8 @@ Imagina una empresa con departamentos separados como Ventas, Recursos Humanos y
|
||||
# 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 de Sitio a Sitio
|
||||
## Site-to-Site VPN
|
||||
|
||||
Una VPN de Sitio a Sitio en Azure te permite **conectar tu red local a tu Red Virtual (VNet) de Azure**, permitiendo que recursos como VMs dentro de Azure aparezcan como si estuvieran en tu red local. Esta conexión se establece a través de una **puerta de enlace VPN que cifra el tráfico** entre las dos redes.
|
||||
Una **Site-to-Site VPN** en Azure establece una conexión segura y **persistente desde su red on-premises a su Azure Virtual Network (VNet)**, permitiendo que recursos como las VMs dentro de Azure parezcan estar en su red local. Esta conexión se establece a través de una **VPN gateway que cifra el tráfico** entre las dos redes.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
Una empresa con su oficina principal ubicada en Nueva York tiene un centro de datos local que necesita conectarse de manera segura a su VNet en Azure, que alberga sus cargas de trabajo virtualizadas. Al configurar una **VPN de Sitio a Sitio, la empresa puede garantizar conectividad cifrada entre los servidores locales y las VMs de Azure**, permitiendo que los recursos sean accesibles de manera segura en ambos entornos como si estuvieran en la misma red local.
|
||||
Una empresa con su oficina principal ubicada en New York tiene un data center on-premises que necesita conectarse de forma segura a su VNet en Azure, que aloja sus cargas de trabajo virtualizadas. Al configurar una **Site-to-Site VPN, la empresa puede asegurar conectividad cifrada entre los servidores on-premises y las VMs en Azure**, permitiendo que los recursos se accedan de forma segura en ambos entornos como si estuvieran en la misma red local.
|
||||
|
||||
### **Enumeración**
|
||||
|
||||
@@ -395,11 +470,11 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <ResourceGroupName>
|
||||
|
||||
## Azure ExpressRoute
|
||||
|
||||
Azure ExpressRoute es un servicio que proporciona una **conexión privada, dedicada y de alta velocidad entre su infraestructura local y los centros de datos de Azure**. Esta conexión se realiza a través de un proveedor de conectividad, evitando el internet público y ofreciendo más confiabilidad, velocidades más rápidas, menores latencias y mayor seguridad que las conexiones de internet típicas.
|
||||
Azure ExpressRoute es un servicio que proporciona una **conexión privada, dedicada y de alta velocidad entre tu infraestructura on-premises y los centros de datos de Azure**. Esta conexión se realiza a través de un proveedor de conectividad, evitando la internet pública y ofreciendo mayor fiabilidad, velocidades más altas, menores latencias y mayor seguridad que las conexiones a internet típicas.
|
||||
|
||||
**Ejemplo:**
|
||||
|
||||
Una corporación multinacional requiere una **conexión consistente y confiable a sus servicios de Azure debido al alto volumen de datos** y la necesidad de un alto rendimiento. La empresa opta por Azure ExpressRoute para conectar directamente su centro de datos local a Azure, facilitando transferencias de datos a gran escala, como copias de seguridad diarias y análisis de datos en tiempo real, con mayor privacidad y velocidad.
|
||||
Una corporación multinacional necesita una **conexión consistente y fiable a sus servicios de Azure debido al alto volumen de datos** y a la necesidad de un alto rendimiento. La empresa opta por Azure ExpressRoute para conectar directamente su centro de datos on-premises a Azure, facilitando transferencias de datos a gran escala, como copias de seguridad diarias y análisis de datos en tiempo real, con mayor privacidad y velocidad.
|
||||
|
||||
### **Enumeración**
|
||||
|
||||
@@ -418,4 +493,10 @@ Get-AzExpressRouteCircuit
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Referencias
|
||||
|
||||
- [DNS OverDoS: ¿Son los Private Endpoints demasiado privados?](https://unit42.paloaltonetworks.com/dos-attacks-and-azure-private-endpoint/)
|
||||
- [Configuración DNS de Azure Private Endpoint](https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns)
|
||||
- [Fallback de Private DNS a Internet](https://learn.microsoft.com/en-us/azure/dns/private-dns-fallback)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user