Uso de Azure Bastion para acceso seguro a máquinas virtuales
01/04/2025
Este artículo técnico y educativo tiene como objetivo guiar a los analistas de seguridad, administradores de TI e ingenieros de sistemas en la implementación y configuración de Azure Bastion para el acceso seguro a máquinas virtuales (VM) en Azure. In a cloud environment, security of access to VMs is essential to protect resources and data. Tradicionalmente, acceder a las máquinas virtuales a través de RDP (Protocolo de escritorio remoto) o SSH (Secure Shell) requería exponer los puertos públicos a Internet, lo que aumentaba significativamente la superficie de ataque. Azure Bastion ofrece una solución sólida y segura para eliminar esta exposición al proporcionar acceso seguro sin necesidad de VPN o IP públicas [1].
Introducción
La migración de infraestructuras a la nube ha traído numerosos beneficios en términos de escalabilidad y flexibilidad. Sin embargo, la seguridad sigue siendo una de las principales preocupaciones. El acceso a las máquinas virtuales es un punto crítico, ya que suelen ser el corazón de muchas aplicaciones y servicios. Exponer los puertos RDP (3389) o SSH (22) directamente a Internet es una práctica de seguridad desaconsejable, ya que los convierte en objetivos fáciles para ataques de fuerza bruta y otros exploits [2].
Azure Bastion es un servicio PaaS (plataforma como servicio) totalmente gerenciado que proporciona su red virtual. Le permite conectarse a máquinas virtuales en su red virtual directamente desde Azure Portal, usando RDP y SSH, sin la necesidad de IP públicas en las VM, agentes instalados en las VM o clientes/configuraciones especiales en su máquina local. Bastion actúa como un proxy seguro, enrutando el tráfico RDP/SSH a través de una conexión TLS (Transport Layer Security) segura al navegador del usuario, protegiendo las máquinas virtuales de la exposición directa a Internet [3].
Esta guía práctica cubrirá los requisitos previos, cómo aprovisionar y configurar Azure Bastion, cómo conectarse a máquinas virtuales Windows y Linux mediante RDP y SSH, cómo administrar sesiones y cómo probar y validar el acceso seguro. Se proporcionarán instrucciones paso a paso, ejemplos prácticos y explicaciones concisas para que el lector pueda implementar, probar y validar estas características. Además, se discutirán consejos de seguridad, comprobaciones de cumplimiento y mejores prácticas para garantizar un acceso remoto seguro y eficiente a sus máquinas virtuales, de forma autónoma, profesional y confiable.
¿Por qué Azure Bastion es fundamental para el acceso a las máquinas virtuales?
- Seguridad mejorada: Elimina la necesidad de IP públicas en las máquinas virtuales, protegiéndolas contra ataques directos desde Internet. El acceso es vía TLS a través del navegador.
- Acceso simplificado: se conecta a las máquinas virtuales directamente desde Azure Portal, sin la necesidad de clientes RDP/SSH nativos o VPN.
- Zero Trust: Se alinea con los principios de Zero Trust, asegurando que el acceso esté siempre verificado y autorizado, independientemente de la ubicación del usuario.
- Auditoría y monitoreo: Le permite monitorear y administrar sesiones, con la opción de grabar sesiones (disponible en el SKU Premium) para fines de auditoría y cumplimiento.
- Costo y complejidad reducidos: como servicio PaaS totalmente administrado, elimina la necesidad de administrar sus propios jump boxes o VPN complejas.
- Protección de escaneo de puertos: las máquinas virtuales no tienen IP públicas, lo que las hace invisibles para los escáneres de puertos y los robots maliciosos en Internet.
Requisitos previos
Para implementar Azure Bastion, necesitará los siguientes elementos:
- Suscripción activa de Azure: una suscripción de Azure para crear y administrar recursos.
- Acceso administrativo: una cuenta con la función de "Propietario" o "Colaborador" en la suscripción o grupo de recursos donde se encuentran las máquinas virtuales.
- Azure Virtual Network (VNet): una red virtual existente que contiene las máquinas virtuales a las que desea conectarse.
- Subred dedicada para Azure Bastion: una subred dentro de su VNet con el nombre "AzureBastionSubnet" y un prefijo de al menos "/27" (por ejemplo, "10.0.2.0/27"). Esta subred es exclusiva de Bastion y no se puede utilizar para otros recursos [4].
- Máquinas virtuales (VM): máquinas virtuales Windows o Linux existentes en la misma VNet (o VNets emparejadas) a las que desea conectarse.
Paso a paso: configurar Azure Bastion
Aprovisionemos Azure Bastion y usémoslo para conectarnos a una máquina virtual.
1. Creación de la subred AzureBastionSubnet
antese implementar Bastion, necesita crear una subred dedicada.
- Abra su navegador y navegue hasta el portal de Azure:
https://portal.azure.com. - Inicie sesión con una cuenta que tenga los permisos necesarios.
- En el campo de búsqueda superior, escriba "Redes virtuales" y selecciónelo de los resultados.
- Seleccione la red virtual donde se encuentran sus máquinas virtuales.
- En el panel de navegación izquierdo, en "Configuración", seleccione Subredes.
-
Haga clic en
+Subred. -
Agregar subred:
- Nombre: escriba
AzureBastionSubnet(este nombre es obligatorio). - Rango de direcciones de subred: proporcione un rango de direcciones con un prefijo de al menos
/27(por ejemplo,10.0.2.0/27). - Deje otras configuraciones por defecto.
- Nombre: escriba
-
Haga clic en Guardar.
- Explicación:
AzureBastionSubnetes donde se implementará el servicio Azure Bastion. Es fundamental que el nombre sea exactamente "AzureBastionSubnet" para que el servicio pueda aprovisionarse correctamente.
- Explicación:
2. Aprovisionamiento de Azure Bastion
Ahora que la subred está lista, podemos implementar el servicio Bastion.
- En Azure Portal, en el campo de búsqueda superior, escriba "Bastion" y selecciónelo de los resultados.
-
Haga clic en
+ Crear. -
Conceptos básicos:
- Suscripción: Selecciona tu suscripción.
- Grupo de recursos: seleccione el mismo grupo de recursos que su VNet.
- Nombre: asigne un nombre a su instancia de Bastion (por ejemplo,
myBastionHost). - Región: seleccione la misma región que su VNet.
- Nivel: seleccione
Básico(para RDP/SSH básico) oEstándar(para funciones adicionales como grabación de sesiones, uso compartido de enlaces, etc.). Para esta guía, usaremos "Básico".
-
Red virtual:
- Red virtual: seleccione la VNet donde creó
AzureBastionSubnet. - Subred:
AzureBastionSubnetse seleccionará automáticamente. - Dirección IP pública: Haga clic en
Crear nuevo. Asigne un nombre a la IP pública (por ejemplo,myBastionPublicIP). Esta IP pública es para el servicio Bastion y no está expuesta a sus máquinas virtuales.
- Red virtual: seleccione la VNet donde creó
-
Haga clic en
Revisar + creary luego en Crear.- Explicación: El aprovisionamiento de Azure Bastion puede tardar de 5 a 10 minutos. Una vez implementado, estará listo para usarse para acceder a sus máquinas virtuales.
3. Conexión a una máquina virtual Windows a través de RDP
Conectémonos a una máquina virtual Windows sin exponer su puerto RDP.
- En Azure Portal, navegue hasta su Windows VM.
- En el panel de navegación izquierdo, seleccione Conectar.
- Seleccione Bastión.
- Ingrese sus credenciales de usuario y contraseña de Windows VM.
-
Haga clic en Conectar.
- Acción esperada: se abrirá una nueva pestaña del navegador y verá el escritorio de su máquina virtual de Windows. La conexión se basa completamente en HTML5 en el navegador.
4. Conexión a una máquina virtual Linux a través de SSH
Conectémonos a una máquina virtual Linux sin exponer su puerto SSH.
- En Azure Portal, navegue hasta su VM Linux.
- En el panel de navegación izquierdo, seleccione Conectar.
- Seleccione Bastión.
- Elija el "Tipo de autenticación": "Nombre de usuario y contraseña" o "Clave privada SSH".
- Si es "Nombre de usuario y contraseña", ingrese sus credenciales de VM Linux.
- Si es "Clave privada SSH", cargue su archivo de clave privada (
.pemo.ppk).
-
Haga clic en Conectar.
- Acción esperada: se abrirá una nueva pestaña del navegador y verá la terminal de su máquina virtual Linux, lo que le permitirá ejecutar comandos SSH.
Validación y pruebas
Es fundamental validar que el acceso a través de Azure Bastion funcione según lo esperado y que no se pueda acceder a las máquinas virtuales de otras formas.
1. Comprobación de la conectividad del bastión
- Escenario: intente acceder a sus máquinas virtuales Windows y Linux mediante Azure Bastion, según los pasos 3 y 4 anteriores.
- Acción esperada: Las conexiones RDP y SSH deben establecerse correctamente a través del navegador.
- Verificación:
- Confirme que puede interactuar con el escritorio de la VM de Windows y ejecutar comandos en la terminal de la VM de Linux.
2. Comprobación de la inaccesibilidad directa de las máquinas virtuales
- Escenario: intente acceder a sus máquinas virtuales directamente desde Internet mediante un cliente RDP o SSH, apuntando a la IP pública de la máquina virtual (si existe) o a la IP privada (si está fuera de la red virtual).
- Acción esperada: Los intentos de conexión directa deberían fallar ya que los puertos RDP/SSH no deberían exponerse públicamente.
- Verificación:
*Si sus máquinas virtuales tienen IP públicas, verifique las reglas del grupo de seguridad de red (NSG) asociadas con la interfaz de red de la máquina virtual o la subred de la máquina virtual. Asegúrese de que los puertos 3389 (RDP) y 22 (SSH) no estén abiertos a "Cualquiera" o "Internet".
- Idealmente, las máquinas virtuales a las que se accede a través de Bastion no deberían tener IP públicas asociadas.
3. Monitoreo de sesión de bastión (SKU estándar)
Si aprovisionó Bastion con el SKU estándar, puede monitorear las sesiones activas.
- En Azure Portal, navegue hasta su recurso Azure Bastion (
myBastionHost). - En el panel de navegación izquierdo, en "Monitoreo", seleccione Sesiones.
- Verá una lista de sesiones RDP y SSH activas, incluido el usuario, la IP de origen y la VM de destino.
Consejos de seguridad y mejores prácticas
- Eliminar las IP públicas de las máquinas virtuales: después de configurar Azure Bastion, elimine las IP públicas de las máquinas virtuales. Este es el principal beneficio de seguridad de Bastion.
- Configure los NSG adecuadamente: asegúrese de que los grupos de seguridad de red (NSG) de sus subredes de VM y
AzureBastionSubnetestén configurados correctamente para permitir solo el tráfico necesario. Bastion necesita acceso a los puertos RDP/SSH privados de las VM, pero las VM no necesitan acceso entrante público. - Principio de privilegio mínimo: Asigne solo los permisos necesarios para que los usuarios puedan conectarse a las máquinas virtuales a través de Bastion. Azure RBAC se puede usar para controlar quién puede usar Bastion.
- Autenticación sólida: utilice siempre una autenticación sólida para sus credenciales de VM. Combínelo con Azure AD para autenticación y, si es posible, acceso condicional para requerir MFA para acceder a Azure Portal, que a su vez controla el acceso a Bastion.
- Grabación de sesiones (SKU Premium): para entornos que requieren auditoría y cumplimiento estricto, considere usar el SKU Premium de Azure Bastion para grabar sesiones RDP y SSH. Esto proporciona un registro visual de lo que se ha hecho en las máquinas virtuales.
- Monitoreo de registros: supervise los registros de actividad de Azure para Bastion y los registros de seguridad de sus máquinas virtuales para detectar actividades sospechosas o intentos de acceso no autorizados.
- Actualizaciones y parches: mantenga sus máquinas virtuales actualizadas con los últimos parches de seguridad para mitigar las vulnerabilidades internas.
Solución de problemas comunes
- No puedo ver la opción Bastion cuando intento conectarme a la VM:
- Verifique que Azure Bastion se haya aprovisionado en la misma VNet (o VNet emparejada) que la VM.
- Asegúrese de que
AzureBastionSubnetexista y tenga el prefijo de dirección correcto (/27o mayor). - Compruebe si Bastion está en estado "En ejecución" en Azure Portal.
- Error de conexión RDP/SSH a través de Bastion:
- Credenciales no válidas: verifique que las credenciales de usuario y contraseña (o clave SSH) sean correctas para la máquina virtual.
- Problemas de NSG: confirme que el NSG de la subred de VM permite el tráfico entrante en los puertos 3389 (RDP) o 22 (SSH) de
AzureBastionSubnet. - VM Firewall: Verifique que el firewall interno de la VM no esté bloqueando las conexiones RDP/SSH.
- El servicio RDP/SSH no se está ejecutando: asegúrese de que el servicio RDP (para Windows) o SSH (para Linux) se esté ejecutando en la máquina virtual.
- Rendimiento lento o desconexiones:
- Verifique el ancho de banda de su conexión a Internet. Bastion transmite el vídeo de la sesión a su navegador.
- Considere utilizar el SKU Estándar o Premium de Bastion, que ofrece un mejor rendimiento y funciones adicionales.
- Verifique si hay una alta utilización de CPU o memoria en la máquina virtual de destino, lo que puede afectar el rendimiento de la sesión.
- No puedo acceder a los recursos internos de la VM a través de Bastion:
- Azure Bastion proporciona conectividad a la VM. Una vez conectado a la VM, el acceso a otros recursos internos de la VNet dependerá de las configuraciones de red propias de la VM y de las reglas de NSG aplicables.
Conclusión
Azure Bastion es un componente esencial para la seguridad de los entornos de nube, ya que proporciona un método seguro y simplificado para acceder a las máquinas virtuales. Al eliminar la exposición directa de los puertos RDP/SSH a Internet, se reduce significativamente la superficie de ataque y se fortalece la postura general de seguridad. La implementación cuidadosa, la integración con las mejores prácticas de seguridad y el monitoreo continuo son fundamentales para maximizar los beneficios de Bastion. con esta gCon este enfoque práctico, los profesionales de seguridad y los administradores de TI estarán bien equipados para configurar, validar y administrar Azure Bastion, garantizando que el acceso a sus máquinas virtuales sea siempre seguro y compatible.
Referencias:
[1] Microsoft aprende. ¿Qué es el Bastión Azur?. Disponible en: https://learn.microsoft.com/pt-br/azure/bastion/bastion-overview [2] Microsoft aprende. Consideraciones de diseño y planificación para usar Azure Bastion para habilitar el acceso remoto seguro a máquinas virtuales en Azure. Disponible en: https://learn.microsoft.com/pt-br/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-virtual-machine-remote-access [3] Microsoft aprende. Conéctese a una máquina virtual Windows mediante RDP - Azure Bastion. Disponible en: https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-rdp-windows [4] Microsoft aprende. Configurar un host Bastion. Disponible en: https://learn.microsoft.com/pt-br/azure/bastion/tutorial-create-host-portal [5] Microsoft aprende. Conéctese a una máquina virtual Linux mediante SSH - Azure Bastion. Disponible en: https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-ssh-linux [6] Microsoft aprende. Supervisión y gestión de sesiones de Azure Bastion. Disponible en: https://learn.microsoft.com/pt-br/azure/bastion/session-monitoring [7] Microsoft aprende. Configurar la grabación de sesiones de Bastion. Disponible en: https://learn.microsoft.com/pt-br/azure/bastion/session-recording