Protección de los puertos de administración con acceso Just-in-TimeSecure your management ports with just-in-time access

Si está en el plan de tarifa estándar de Security Center (consulte los precios), puede bloquear el tráfico entrante a las máquinas virtuales de Azure con el acceso de máquina virtual Just-in-Time (JIT).If you're on Security Center's standard pricing tier (see pricing), you can lock down inbound traffic to your Azure VMs with just-in-time (JIT) virtual machine (VM) access. Esto reduce la exposición a los ataques a la vez que proporciona un acceso sencillo para conectarse a las máquinas virtuales cuando sea necesario.This reduces exposure to attacks while providing easy access to connect to VMs when needed.

Nota

Actualmente, el acceso a máquina virtual del tipo Just-In-Time de Security Center solo admite las máquinas virtuales implementadas a través de Azure Resource Manager.Security Center just-in-time VM access currently supports only VMs deployed through Azure Resource Manager. Para obtener más información sobre los modelos de implementación clásico y de Resource Manager, vea La implementación de Azure Resource Manager frente a la implementación clásica.To learn more about the classic and Resource Manager deployment models see Azure Resource Manager vs. classic deployment.

Attack scenario

Brute force attacks commonly target management ports as a means to gain access to a VM. If successful, an attacker can take control over the VM and establish a foothold into your environment.

One way to reduce exposure to a brute force attack is to limit the amount of time that a port is open. Management ports don't need to be open at all times. They only need to be open while you're connected to the VM, for example to perform management or maintenance tasks. When just-in-time is enabled, Security Center uses network security group (NSG) and Azure Firewall rules, which restrict access to management ports so they cannot be targeted by attackers.

Configurar JIT en una VMConfigure JIT on a VM

Existen tres maneras de configurar una directiva JIT en una máquina virtual:There are three ways to configure a JIT policy on a VM:

Configurar JIT en Azure Security CenterConfigure JIT in Azure Security Center

Desde Security Center, puede configurar un directiva de JIT y solicitar acceso a una VM mediante una directiva JIT.From Security Center, you can configure a JIT policy and request access to a VM using a JIT policy

Configuración del acceso JIT en una máquina virtual en Security CenterConfigure JIT access on a VM in Security Center

  1. Abra el panel Security Center.Open the Security Center dashboard.

  2. En el panel izquierdo, seleccione Just-in-time VM access (Acceso a máquina virtual del tipo Just-In-Time).In the left pane, select Just-in-time VM access.

    Icono de acceso a máquina virtual del tipo Just-In-Time

    Se abre la ventana Acceso a VM Just-In-Time y se muestra información sobre el estado de las máquinas virtuales:The Just-in-time VM access window opens and shows information on the state of your VMs:

    • Configurado: máquinas virtuales que se han configurado para admitir el acceso a máquina virtual Just-In-Time.Configured - VMs that have been configured to support just-in-time VM access. Los datos que se muestran son de la última semana e incluyen, para cada máquina virtual, el número de solicitudes aprobadas, la fecha y hora del último acceso y el último usuario.The data presented is for the last week and includes for each VM the number of approved requests, last access date and time, and last user.
    • Recomendado: máquinas virtuales que pueden admitir el acceso a máquina virtual Just-In-Time, pero que no se han configurado para ello.Recommended - VMs that can support just-in-time VM access but haven't been configured to. Se recomienda habilitar el control de acceso a máquina virtual Just-In-Time para estas máquinas virtuales.We recommend that you enable just-in-time VM access control for these VMs.
    • Ninguna recomendación: una máquina virtual podría no recomendarse por diversas razones:No recommendation - Reasons that can cause a VM not to be recommended are:
      • Falta grupo de seguridad de red: la solución Just-In-Time requiere que exista un grupo de seguridad de red.Missing NSG - The just-in-time solution requires an NSG to be in place.
      • Máquina virtual clásica: en la actualidad, el acceso a máquina virtual Just-In-Time de Security Center solo admite las máquinas virtuales implementadas mediante Azure Resource Manager.Classic VM - Security Center just-in-time VM access currently supports only VMs deployed through Azure Resource Manager. La solución Just-In-Time no admite las implementaciones clásicas.A classic deployment is not supported by the just-in-time solution.
      • Otros: una VM se encuentra en esta categoría si la solución Just-In-Time está desactivada en la directiva de seguridad de la suscripción o grupo de recursos, o si la VM no tiene una IP pública ni existe ningún grupo de seguridad de red.Other - A VM is in this category if the just-in-time solution is turned off in the security policy of the subscription or the resource group, or if the VM is missing a public IP and doesn't have an NSG in place.
  3. Seleccione la pestaña Recomendado.Select the Recommended tab.

  4. En MÁQUINA VIRTUAL, haga clic en las VM que quiere habilitar.Under VIRTUAL MACHINE, click the VMs that you want to enable. De este modo, se coloca una marca de verificación junto a una máquina virtual.This puts a checkmark next to a VM.

    Habilitar acceso Just-In-Time

  5. Haga clic en Habilitar JIT en VM.Click Enable JIT on VMs. Se abre un panel con los puertos predeterminados que recomienda Azure Security Center:A pane opens displaying the default ports recommended by Azure Security Center:

    • 22 - SSH22 - SSH
    • 3389 - RDP3389 - RDP
    • 5985 - WinRM5985 - WinRM
    • 5986 - WinRM5986 - WinRM
  6. También tiene la opción de agregar puertos personalizados a la lista:Optionally, you can add custom ports to the list:

    1. Haga clic en Agregar.Click Add. Se abre la ventana Agregar configuración de puerto.The Add port configuration window opens.

    2. Para cada puerto que elija configurar, tanto el predeterminado como el configurado, puede personalizar los valores siguientes:For each port you choose to configure, both default and custom, you can customize the following settings:

      • Tipo de protocolo: el protocolo que se permite en este puerto cuando se aprueba una solicitud.Protocol type- The protocol that is allowed on this port when a request is approved.
      • Direcciones IP de origen permitidas: los intervalos de IP que se permiten en este puerto cuando se aprueba una solicitud.Allowed source IP addresses- The IP ranges that are allowed on this port when a request is approved.
      • Tiempo de solicitud máximo: el período de tiempo máximo durante el que puede estar abierto un puerto específico.Maximum request time- The maximum time window during which a specific port can be opened.
    3. Haga clic en OK.Click OK.

  7. Haga clic en Save(Guardar).Click Save.

Nota

Cuando el acceso a la VM JIT se habilita en una VM, Azure Security Center crea reglas para denegar todo el tráfico entrante para los puertos seleccionados en los grupos de seguridad de red asociados y en Azure Firewall.When JIT VM Access is enabled for a VM, Azure Security Center creates "deny all inbound traffic" rules for the selected ports in the network security groups associated and Azure Firewall with it. En caso de que se hubieran creado otras reglas relativas a los puertos seleccionados, las reglas existentes tendrán prioridad sobre las nuevas reglas para "denegar todo el tráfico entrante".If other rules had been created for the selected ports, then the existing rules take priority over the new "deny all inbound traffic" rules. Si no hay ninguna regla existente en los puertos seleccionados, las nuevas reglas de "denegar todo el tráfico entrante" tendrán prioridad principal en grupos de seguridad de red y Azure Firewall.If there are no existing rules on the selected ports, then the new "deny all inbound traffic" rules take top priority in the Network Security Groups and Azure Firewall.

Solicitud de acceso JIT a través de Security CenterRequest JIT access via Security Center

Para solicitar acceso a una VM a través de Security Center:To request access to a VM via Security Center:

  1. En Just in time VM access (Acceso a máquina virtual del tipo Just-In-Time), seleccione la pestaña Configurado.Under Just-in-time VM access, select the Configured tab.

  2. En Máquina virtual, haga clic en las VM a las que quiera solicitar acceso.Under Virtual Machine, click the VMs that you want to request access for. De este modo, se coloca una marca de verificación junto a la VM.This puts a checkmark next to the VM.

    • El icono de la columna Detalles de la conexión indica si JIT está habilitado en el NSG o firewall.The icon in the Connection Details column indicates whether JIT is enabled on the NSG or FW. Si está habilitado en ambos, solo aparece el icono de firewall.If it's enabled on both, only the Firewall icon appears.

    • En la columna Detalles de la conexión se proporciona la información necesaria para conectarse a la máquina virtual y sus puertos abiertos.The Connection Details column provides the information required to connect the VM, and its open ports.

      Solicitud de acceso Just-In-Time

  3. Haga clic en Solicitar acceso.Click Request access. Se abre la ventana Solicitar acceso.The Request access window opens.

    Detalles de JIT

  4. En Solicitar acceso, configure para cada máquina virtual los puertos que desee que se abran y las direcciones IP de origen en que se abre el puerto y el tiempo durante el que permanecerá abierto.Under Request access, for each VM, configure the ports that you want to open and the source IP addresses that the port is opened on and the time window for which the port will be open. Solo se podrá solicitar acceso a los puertos que estén configurados en la directiva Just-In-Time.It will only be possible to request access to the ports that are configured in the just-in-time policy. Cada puerto tiene un tiempo máximo permitido que se basa en la directiva Just-In-Time.Each port has a maximum allowed time derived from the just-in-time policy.

  5. Haga clic en Abrir puertos.Click Open ports.

Nota

Si un usuario que solicita acceso está detrás de un proxy, es posible que la opción de Mi IP no funcione.If a user who is requesting access is behind a proxy, the option My IP may not work. Es posible que necesite definir todo el intervalo de direcciones IP de la organización.You may need to define the full IP address range of the organization.

Edición de una directiva de acceso JIT a través de Security CenterEdit a JIT access policy via Security Center

Para cambiar la directiva Just-In-Time de una máquina virtual, agregue y configure un puerto nuevo que proteja dicha máquina virtual, o bien cambie otro valor relacionado con un puerto ya protegido.You can change a VM's existing just-in-time policy by adding and configuring a new port to protect for that VM, or by changing any other setting related to an already protected port.

Para editar una directiva Just-In-Time existente de una máquina virtual:To edit an existing just-in-time policy of a VM:

  1. En la ficha Configurado, en Máquinas virtuales, seleccione la máquina virtual a la que desea agregar un puerto. Para ello, haga clic en los tres puntos situados en la fila de dicha máquina.In the Configured tab, under VMs, select a VM to which to add a port by clicking on the three dots within the row for that VM.

  2. Seleccione Editar.Select Edit.

  3. En Configuración de acceso a máquina virtual del tipo JIT , puede modificar la configuración existente de un puerto protegido, o bien agregar un puerto personalizado.Under JIT VM access configuration, you can either edit the existing settings of an already protected port or add a new custom port. acceso a vm de tipo jitjit vm access

Auditoría de la actividad de acceso JIT en Security CenterAudit JIT access activity in Security Center

Puede usar la búsqueda de registros para obtener información sobre las actividades de las máquinas virtuales.You can gain insights into VM activities using log search. Para ver los registros:To view logs:

  1. En Just in time VM access (Acceso a máquina virtual del tipo Just-In-Time), seleccione la pestaña Configurado.Under Just-in-time VM access, select the Configured tab.

  2. En Máquinas virtuales, seleccione una máquina virtual sobre la que ver información; para ello, haga clic en los tres puntos situados dentro de la fila correspondiente a esa máquina virtual y seleccione Registro de actividad en el menú.Under VMs, select a VM to view information about by clicking on the three dots within the row for that VM and select Activity Log from the menu. Se abre el registro de actividad.The Activity log opens.

    Seleccionar el registro de actividades

    En Registro de actividades se proporciona una vista filtrada de las operaciones anteriores para esa máquina virtual, junto con el tiempo, la fecha y la suscripción.Activity log provides a filtered view of previous operations for that VM along with time, date, and subscription.

Para descargar la información del registro, seleccione Haga clic aquí para descargar todos los elementos como archivo .csv.You can download the log information by selecting Click here to download all the items as CSV.

Modifique los filtros y haga clic en Aplicar para crear una búsqueda y un registro.Modify the filters and click Apply to create a search and log.

Configuración del acceso JIT desde la página de una máquina virtual de AzureConfigure JIT access from an Azure VM's page

Para su comodidad, puede conectarse a una máquina virtual con JIT directamente desde la página de la máquina virtual en Security Center.For your convenience, you can connect to a VM using JIT directly from within the VM's page in Security Center.

Configuración del acceso JIT en una máquina virtual a través de la página de la máquina virtual de AzureConfigure JIT access on a VM via the Azure VM page

Para facilitar el despliegue del acceso Just-In-Time en las VM, puede establecer una VM para permitir solo el acceso Just-In-Time directamente desde dentro de la VM.To make it easy to roll out just-in-time access across your VMs, you can set a VM to allow only just-in-time access directly from within the VM.

  1. En Azure Portal, busque y seleccione Máquinas virtuales.From the Azure portal, search for and select Virtual machines.
  2. Seleccione la máquina virtual a la que quiere limitar el acceso Just-In-Time.Select the virtual machine you want to limit to just-in-time access.
  3. En el menú, seleccione Configuración.In the menu, select Configuration.
  4. En Acceso Just-In-Time, seleccione Habilitar Just-In-Time.Under Just-in-time access, select Enable just-in-time.

Esto habilita el acceso Just-In-Time para la VM con las siguientes opciones:This enables just-in-time access for the VM using the following settings:

  • Servidores Windows:Windows servers:
    • Puerto RDP 3389RDP port 3389
    • Se permite un tiempo de acceso máximo de tres horasThree hours of maximum allowed access
    • Las direcciones IP de origen permitidas se establecen en CualquieraAllowed source IP addresses is set to Any
  • Servidores Linux:Linux servers:
    • Puerto SSH 22SSH port 22
    • Se permite un tiempo de acceso máximo de tres horasThree hours of maximum allowed access
    • Las direcciones IP de origen permitidas se establecen en CualquieraAllowed source IP addresses is set to Any

Si una VM ya tiene Just-In-Time habilitado, cuando va a su página de configuración podrá ver que Just-In-Time está habilitado y que puede usar el vínculo para abrir la directiva en Azure Security Center para ver y cambiar la configuración.If a VM already has just-in-time enabled, when you go to its configuration page you will be able to see that just-in-time is enabled and you can use the link to open the policy in Azure Security Center to view and change the settings.

jit config in vm

Solicitud de acceso JIT a una máquina virtual mediante la página de una máquina virtual de AzureRequest JIT access to a VM via an Azure VM's page

En Azure Portal, al intentar conectarse a una máquina virtual, Azure comprueba si hay alguna directiva de acceso Just-In-Time configurada en ella.In the Azure portal, when you try to connect to a VM, Azure checks to see if you have a just-in-time access policy configured on that VM.

  • Si tiene una directiva JIT configurada en la máquina virtual, puede hacer clic en Solicitar acceso para conceder acceso de acuerdo con la directiva JIT establecida para la máquina virtual.If you have a JIT policy configured on the VM, you can click Request access to grant access in accordance with the JIT policy set for the VM.

    solicitud de JIT

    El acceso se solicita con los parámetros predeterminados siguientes:Access is requested with the following default parameters:

    • source IP: "Cualquiera" (*) (no se puede modificar)source IP: 'Any' (*) (cannot be changed)

    • time range: Tres horas (o se puede modificar)time range: Three hours (cannot be changed)

    • port number: puerto RDP 3389 para Windows; puerto 22 para Linux (se puede cambiar)port number RDP port 3389 for Windows / port 22 for Linux (can be changed)

      Nota

      Después de aprobarse una solicitud para una VM protegida con Azure Firewall, Security Center proporciona al usuario los datos de conexión (asignación de puerto de la tabla DNAT) que debe usar para conectarse a la máquina virtual.After a request is approved for a VM protected by Azure Firewall, Security Center provides the user with the proper connection details (the port mapping from the DNAT table) to use to connect to the VM.

  • Si hay alguna máquina virtual en la que no esté configurado JIT, se le solicitará que lo configure.If you do not have JIT configured on a VM, you will be prompted to configure a JIT policy on it.

    solicitud de jit

Configurar una directiva JIT en una VM mediante programación Configure a JIT policy on a VM programmatically

Just-In-Time se puede configurar y usar tanto a través de las API REST como de PowerShell.You can set up and use just-in-time via REST APIs and via PowerShell.

Acceso a la VM JIT a través de las API de RESTJIT VM access via REST APIs

La característica de acceso a máquina virtual Just-in-Time se puede usar mediante la API de Azure Security Center.The just-in-time VM access feature can be used via the Azure Security Center API. Use esta API para obtener más información acerca de las máquinas virtuales configuradas, cómo agregar otras nuevas o solicitar acceso a una máquina virtual, entre otras cosas.You can get information about configured VMs, add new ones, request access to a VM, and more, via this API. Consulte Jit Network Access Policies (Directivas de acceso a red JIT), para más información acerca de la API REST Just-in-Time.See Jit Network Access Policies, to learn more about the just-in-time REST API.

Acceso a la VM JIT mediante PowerShellJIT VM access via PowerShell

Para utilizar la solución de acceso a máquina virtual Just-In-Time mediante PowerShell, use los cmdlets de PowerShell de Azure Security Center oficiales; específicamente Set-AzJitNetworkAccessPolicy.To use the just-in-time VM access solution via PowerShell, use the official Azure Security Center PowerShell cmdlets, and specifically Set-AzJitNetworkAccessPolicy.

En el siguiente ejemplo se establece una directiva de acceso a la máquina virtual del tipo Just-in-Time en una máquina virtual específica, y se establece lo siguiente:The following example sets a just-in-time VM access policy on a specific VM, and sets the following:

  1. Cierre los puertos 22 y 3389.Close ports 22 and 3389.

  2. Establezca una ventana de tiempo máximo de 3 horas para cada una, para que así puedan abrirse según la solicitud aprobada.Set a maximum time window of 3 hours for each so they can be opened per approved request.

  3. Permite que el usuario que solicita el acceso controle las direcciones IP de origen; asimismo, le permite establecer una sesión correcta tras una solicitud de acceso del tipo Just-In-Time aprobada.Allows the user who is requesting access to control the source IP addresses and allows the user to establish a successful session upon an approved just-in-time access request.

Ejecute lo siguiente en PowerShell, para poder lograr lo que se ha detallado:Run the following in PowerShell to accomplish this:

  1. Asigne una variable que contenga la directiva de acceso a máquina virtual del tipo Just-in-Time para una máquina virtual:Assign a variable that holds the just-in-time VM access policy for a VM:

    $JitPolicy = (@{ id="/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME"; ports=(@{ number=22; protocol="*"; allowedSourceAddressPrefix=@("*"); maxRequestAccessDuration="PT3H"}, @{ number=3389; protocol="*"; allowedSourceAddressPrefix=@("*"); maxRequestAccessDuration="PT3H"})})$JitPolicy = (@{ id="/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME"; ports=(@{ number=22; protocol="*"; allowedSourceAddressPrefix=@("*"); maxRequestAccessDuration="PT3H"}, @{ number=3389; protocol="*"; allowedSourceAddressPrefix=@("*"); maxRequestAccessDuration="PT3H"})})

  2. Inserte la directiva de acceso a máquina virtual del tipo Just-in-Time de la máquina virtual en una matriz:Insert the VM just-in-time VM access policy to an array:

    $JitPolicyArr=@($JitPolicy)$JitPolicyArr=@($JitPolicy)

  3. Configure la directiva de acceso a máquina virtual del tipo Just-in-Time en la máquina virtual seleccionada:Configure the just-in-time VM access policy on the selected VM:

    Set-AzJitNetworkAccessPolicy -Kind "Basic" -Location "LOCATION" -Name "default" -ResourceGroupName "RESOURCEGROUP" -VirtualMachine $JitPolicyArrSet-AzJitNetworkAccessPolicy -Kind "Basic" -Location "LOCATION" -Name "default" -ResourceGroupName "RESOURCEGROUP" -VirtualMachine $JitPolicyArr

Solicitar acceso a una VM a través de PowerShellRequest access to a VM via PowerShell

En el siguiente ejemplo, puede ver una solicitud de acceso a máquina virtual del tipo Just-In-Time para una máquina virtual específica, en la que se solicita que se abra el puerto 22 para una dirección IP específica y durante un período concreto:In the following example, you can see a just-in-time VM access request to a specific VM in which port 22 is requested to be opened for a specific IP address and for a specific amount of time:

Ejecute lo siguiente en PowerShell:Run the following in PowerShell:

  1. Configure las propiedades de acceso de solicitud de la máquina virtual.Configure the VM request access properties

    $JitPolicyVm1 = (@{ id="/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME"; ports=(@{ number=22; endTimeUtc="2018-09-17T17:00:00.3658798Z"; allowedSourceAddressPrefix=@("IPV4ADDRESS")})})$JitPolicyVm1 = (@{ id="/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME"; ports=(@{ number=22; endTimeUtc="2018-09-17T17:00:00.3658798Z"; allowedSourceAddressPrefix=@("IPV4ADDRESS")})})

  2. Inserte los parámetros de solicitud de acceso a la máquina virtual en una matriz:Insert the VM access request parameters in an array:

    $JitPolicyArr=@($JitPolicyVm1)$JitPolicyArr=@($JitPolicyVm1)

  3. Envíe el acceso de solicitud (use el id. de recurso que obtuvo en el paso 1).Send the request access (use the resource ID you got in step 1)

    Start-AzJitNetworkAccessPolicy -ResourceId "/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Security/locations/LOCATION/jitNetworkAccessPolicies/default" -VirtualMachine $JitPolicyArrStart-AzJitNetworkAccessPolicy -ResourceId "/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Security/locations/LOCATION/jitNetworkAccessPolicies/default" -VirtualMachine $JitPolicyArr

Para más información, consulte la documentación del cmdlet de PowerShell.For more information, see the PowerShell cmdlet documentation.

Limpieza automática de reglas JIT redundantesAutomatic cleanup of redundant JIT rules

Siempre que se actualiza una directiva JIT, se ejecuta automáticamente una herramienta de limpieza para comprobar la validez de todo el conjunto de reglas.Whenever you update a JIT policy, a cleanup tool automatically runs to check the validity of your entire ruleset. La herramienta busca discrepancias entre las reglas de la directiva y las reglas del grupo de seguridad de red.The tool looks for mismatches between rules in your policy and rules in the NSG. Si la herramienta de limpieza encuentra una discrepancia, determina la causa y, cuando es seguro hacerlo, quita las reglas integradas que ya no son necesarias.If the cleanup tool finds a mismatch, it determines the cause and, when it's safe to do so, removes built-in rules that aren't needed any more. El limpiador no elimina nunca las reglas que ha creado.The cleaner never deletes rules that you've created.

Ejemplos de escenarios en los que el limpiador podría quitar una regla integrada:Examples scenarios when the cleaner might remove a built-in rule:

  • Cuando existen dos reglas con definiciones idénticas y una tiene una prioridad más alta que la otra (lo que significa que nunca se usará la regla de prioridad inferior)When two rules with identical definitions exist and one has a higher priority than the other (meaning, the lower priority rule will never be used)
  • Cuando una descripción de la regla incluye el nombre de una máquina virtual que no coincide con la dirección IP de destino de la reglaWhen a rule description includes the name of a VM which doesn't match the destination IP in the rule

Pasos siguientesNext steps

En este artículo, ha aprendido la forma en que el acceso a máquina virtual del tipo Just-In-Time en Security Center ayuda a controlar el acceso a máquinas virtuales de Azure.In this article, you learned how just-in-time VM access in Security Center helps you control access to your Azure virtual machines.

Para más información sobre el Centro de seguridad, consulte los siguientes recursos:To learn more about Security Center, see the following: