Configuración de una conexión de punto a sitio a una red virtual con autenticación RADIUS: PowerShell

En este artículo se muestra cómo crear una red virtual con una conexión de punto a sitio (P2S) que usa autenticación RADIUS. Esta configuración solo está disponible para el modelo de implementación de Resource Manager. Puede crear esta configuración mediante Azure Portal o PowerShell.

Una puerta de enlace de VPN de punto a sitio permite crear una conexión segura a la red virtual desde un equipo cliente individual. Las conexiones VPN de punto a sitio son útiles cuando se quiere establecer una conexión con una red virtual desde una ubicación remota, como cuando se trabaja a distancia desde casa o en una conferencia. Una VPN P2S también es una solución útil en lugar de una VPN de sitio a sitio cuando hay solo unos pocos clientes que necesitan conectarse a una red virtual.

Una conexión VPN de punto a sitio se inicia desde dispositivos Windows y Mac. Este artículo le ayuda a configurar una conexión de punto a sitio que usa un servidor RADIUS para la autenticación. Si quiere autenticarse con otro método, consulte los artículos siguientes:

Las conexiones P2S no requieren un dispositivo VPN ni una dirección IP pública. P2S crea la conexión VPN sobre SSTP (Protocolo de túnel de sockets seguros), OpenVPN o IKEv2.

  • SSTP es un túnel VPN basado en TLS que solo se admite en plataformas de cliente Windows. Puede traspasar firewalls, por lo que resulta ideal para conectar dispositivos Windows a Azure desde cualquier lugar. En el lado servidor, solo se admite la versión 1.2 de TLS. Para mejorar el rendimiento, la escalabilidad y la seguridad, considere la posibilidad de usar el protocolo OpenVPN en su lugar.

  • Protocolo OpenVPN®, un protocolo VPN basado en SSL/TLS. Una solución de VPN basada en TLS puede penetrar firewalls, puesto que la mayoría de ellos abre el puerto TCP 443 saliente, que usa TLS. OpenVPN puede utilizarse para la conexión desde dispositivos Android, iOS (versión 11.0 y posteriores), Windows, Linux y Mac (macOS 10.13 y versiones posteriores).

  • La conexión VPN IKEv2, una solución de VPN con protocolo de seguridad de Internet basada en estándares. La VPN IKEv2 se puede usar para conectarse desde dispositivos Windows, Linux y Mac (versiones 10.11 y posteriores de macOS).

Para esta configuración, las conexiones requieren lo siguiente:

  • Una puerta de enlace de VPN RouteBased.
  • Un servidor RADIUS para controlar la autenticación de los usuarios. El servidor RADIUS puede implementarse de forma local o en la red virtual de Azure. También puede configurar dos servidores RADIUS para la alta disponibilidad.
  • El paquete de configuración de perfiles de cliente VPN. El paquete de configuración de perfiles de cliente VPN es un paquete que usted genera. Proporciona la configuración necesaria para que un cliente VPN se conecte a través de una conexión de punto a sitio.

Acerca de la autenticación de dominio de Active Directory (AD) para VPN de punto a sitio

La autenticación de dominio de AD permite a los usuarios iniciar sesión en Azure con sus credenciales de dominio de la organización. Requiere un servidor RADIUS que se integre con el servidor de AD. Las organizaciones también pueden aprovechar las implementaciones existentes de RADIUS.

El servidor RADIUS puede ser local o encontrarse en la red virtual de Azure. Durante la autenticación, la puerta de enlace de VPN actúa como acceso directo y reenvía los mensajes de autenticación entre el servidor RADIUS y el dispositivo que se conecta. Es importante que la puerta de enlace de VPN se pueda comunicar con el servidor RADIUS. Si el servidor RADIUS se encuentra en el entorno local, se necesita una conexión VPN de sitio a sitio de Azure al sitio local.

Además de con Active Directory, los servidores RADIUS también se integran con otros sistemas de identidad externos. Esta posibilidad abre una gran cantidad de opciones de autenticación para VPN de punto a sitio, incluidas las opciones de autenticación multifactor. Compruebe la documentación del proveedor del servidor RADIUS para obtener la lista de sistemas de identidad con los que se integra.

Diagram of RADIUS authentication P2S connection.

Importante

Para conectarse a un servidor RADIUS local, solo se puede usar una conexión VPN de sitio a sitio. No se puede usar una conexión ExpressRoute.

Antes de comenzar

Compruebe que tiene una suscripción a Azure. Si todavía no la tiene, puede activar sus ventajas como suscriptor de MSDN o registrarse para obtener una cuenta gratuita.

Trabajo con Azure PowerShell

En este artículo se usan cmdlets de PowerShell. Para ejecutar los cmdlets, puede usar Azure Cloud Shell. Cloud Shell es un servicio de shell interactivo gratuito que se puede usar para ejecutar los pasos de este artículo. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.

Para abrir Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. También puede abrir Cloud Shell en una pestaña independiente desde https://shell.azure.com/powershell. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, a continuación, seleccione la tecla Entrar para ejecutarlos.

También puede instalar y ejecutar los cmdlets de Azure PowerShell localmente en el equipo. Los cmdlets de PowerShell se actualizan con frecuencia. Si no ha instalado la última versión, los valores especificados en las instrucciones pueden dar lugar a errores. Para buscar las versiones de Azure PowerShell instaladas en el equipo, use el cmdlet Get-Module -ListAvailable Az. Para instalar la actualización, vea Instalación del módulo de Azure PowerShell.

Valores de ejemplo

Puede usar los valores del ejemplo para crear un entorno de prueba o hacer referencia a ellos para comprender mejor los ejemplos de este artículo. Puede utilizar los pasos como un tutorial y utilizar los valores sin cambiarlos o modificarlos para reflejar su entorno.

  • Nombre: VNet1
  • Espacio de direcciones: 10.1.0.0/16 y 10.254.0.0/16
    En este ejemplo, se utiliza más de un espacio de direcciones para ilustrar que esta configuración funciona con varios. Sin embargo, para esta configuración no se necesitan varios espacios de direcciones.
  • Nombre de subred: FrontEnd
    • Intervalo de direcciones de subred: 10.1.0.0/24
  • Nombre de subred: BackEnd
    • Intervalo de direcciones de subred: 10.254.1.0/24
  • Nombre de subred: GatewaySubnet
    El nombre de subred GatewaySubnet es obligatorio para que VPN Gateway funcione.
    • Intervalo de direcciones de GatewaySubnet: 10.1.255.0/27
  • Grupo de direcciones de clientes de VPN: 172.16.201.0/24
    Los clientes VPN que se conectan a la red virtual mediante esta conexión de punto a sitio reciben una dirección IP del grupo de direcciones de cliente VPN.
  • Suscripción: si tiene más de una suscripción, compruebe que usa la correcta.
  • Grupo de recursos: TestRG1
  • Ubicación: Este de EE. UU.
  • Servidor DNS: dirección IP del servidor DNS que desea usar para la resolución de nombres en la red virtual (opcional).
  • Nombre de puerta de enlace: Vnet1GW
  • Nombre IP pública: VNet1GWPIP
  • VpnType: RouteBased

1. Establecimiento de las variables

Declare las variables que desea utilizar. Use el ejemplo siguiente y sustituya los valores por los suyos propios cuando sea necesario. Si cierra la sesión de PowerShell/Cloud Shell en cualquier momento durante el ejercicio, simplemente copie y pegue los valores de nuevo para volver a declarar las variables.

$VNetName  = "VNet1"
$FESubName = "FrontEnd"
$BESubName = "Backend"
$GWSubName = "GatewaySubnet"
$VNetPrefix1 = "10.1.0.0/16"
$VNetPrefix2 = "10.254.0.0/16"
$FESubPrefix = "10.1.0.0/24"
$BESubPrefix = "10.254.1.0/24"
$GWSubPrefix = "10.1.255.0/27"
$VPNClientAddressPool = "172.16.201.0/24"
$RG = "TestRG1"
$Location = "East US"
$GWName = "VNet1GW"
$GWIPName = "VNet1GWPIP"
$GWIPconfName = "gwipconf1"

2. Creación del grupo de recursos, la red virtual y la dirección IP pública

Los pasos siguientes sirven para crear un grupo de recursos y una red virtual en el grupo de recursos con tres subredes. Al reemplazar valores, es importante que siempre asigne el nombre "GatewaySubnet" a la subred de la puerta de enlace. Si usa otro, se produce un error al crear la puerta de enlace.

  1. Cree un grupo de recursos.

    New-AzResourceGroup -Name "TestRG1" -Location "East US"
    
  2. Cree las configuraciones de subred para la red virtual con los nombres FrontEnd, BackEnd y GatewaySubnet. Estos prefijos deben formar parte del espacio de direcciones de la red virtual que declaró anteriormente.

    $fesub = New-AzVirtualNetworkSubnetConfig -Name "FrontEnd" -AddressPrefix "10.1.0.0/24"  
    $besub = New-AzVirtualNetworkSubnetConfig -Name "Backend" -AddressPrefix "10.254.1.0/24"  
    $gwsub = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix "10.1.255.0/27"
    
  3. Creación de la red virtual.

    En este ejemplo, el parámetro del servidor -DnsServer es opcional. La especificación de un valor no crea un servidor DNS nuevo. La dirección IP del servidor DNS que especifique debe ser un servidor DNS que pueda resolver los nombres de los recursos a los que se conecta desde la red virtual. En este ejemplo, se usa una dirección IP privada, pero es probable que no sea la dirección IP del servidor DNS. Asegúrese de utilizar sus propios valores. El valor especificado lo utilizan los recursos que se implementan en la red virtual, no la conexión de punto a sitio.

    New-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1" -Location "East US" -AddressPrefix "10.1.0.0/16","10.254.0.0/16" -Subnet $fesub, $besub, $gwsub -DnsServer 10.2.1.3
    
  4. Una puerta de enlace VPN debe tener una dirección IP pública. Primero se solicita el recurso de la dirección IP y, después, se hace referencia a él al crear la puerta de enlace de red virtual. La dirección IP se asigna dinámicamente al recurso cuando se crea la puerta de enlace VPN. Actualmente, VPN Gateway solo admite la asignación de direcciones IP públicas dinámicas. No se puede solicitar una asignación de direcciones IP públicas estáticas. Sin embargo, esto no significa que la dirección IP cambia después de que se ha asignado a una puerta de enlace VPN. La única vez que la dirección IP pública cambia es cuando la puerta de enlace se elimina y se vuelve a crear. No cambia cuando se cambia el tamaño, se restablece o se realizan actualizaciones u otras operaciones de mantenimiento interno de una puerta de enlace VPN.

    Especifique las variables para solicitar una dirección IP pública asignada de forma dinámica.

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"  
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet 
    $pip = New-AzPublicIpAddress -Name "VNet1GWPIP" -ResourceGroupName "TestRG1" -Location "East US" -AllocationMethod Dynamic 
    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name "gwipconf1" -Subnet $subnet -PublicIpAddress $pip
    

3. Configuración del servidor RADIUS

Antes de crear y configurar la puerta de enlace de red virtual, el servidor RADIUS debe configurarse correctamente para la autenticación.

  1. Si no tiene un servidor RADIUS implementado, implemente uno. Para los pasos de implementación, consulte la guía de instalación que proporciona el proveedor de RADIUS.  
  2. Configure la puerta de enlace de VPN como cliente RADIUS en RADIUS. Al agregar a este cliente RADIUS, especifique la red virtual GatewaySubnet que ha creado.
  3. Una vez configurado el servidor RADIUS, obtenga su dirección IP y el secreto compartido que deben usar los clientes RADIUS para comunicarse con él. Si el servidor RADIUS está en la red virtual de Azure, use la dirección IP de entidad de certificación de la máquina virtual del servidor RADIUS.

El artículo Servidor de directivas de redes (NPS) proporciona instrucciones acerca de cómo configurar un servidor Windows RADIUS (NPS) para la autenticación de dominio de AD.

4. Creación de la puerta de enlace de VPN

Configure y cree la puerta de enlace de VPN para la red virtual.

  • El valor de -GatewayType debe ser "Vpn" y el valor de -VpnType debe ser "RouteBased".
  • Una instancia de VPN Gateway puede tardar 45 minutos o más en completarse, según la SKU de puerta de enlace que seleccione.
New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG `
-Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
-VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1

5. Incorporación del servidor RADIUS y el grupo de direcciones de cliente

  • El valor de -RadiusServer se puede especificar por nombre o por dirección IP. Si se especifica el nombre y el servidor es local, quizá la puerta de enlace de VPN no pueda resolver el nombre. Si es el caso, lo mejor es especificar la dirección IP del servidor.
  • El valor de -RadiusSecret debe coincidir con la configuración del servidor RADIUS.
  • -VpnClientAddressPool es el intervalo del que reciben una dirección IP los clientes al conectarse a la VPN. Use un intervalo de direcciones IP privadas que no se superponga con la ubicación local desde la que se va a conectar ni con la red virtual a la que quiere conectarse. Asegúrese de que tiene configurado un grupo de direcciones lo suficientemente grande.  
  1. Cree una cadena segura para el secreto de RADIUS.

    $Secure_Secret=Read-Host -AsSecureString -Prompt "RadiusSecret"
    
  2. Se le pide que escriba el secreto de RADIUS. Los caracteres que especifique no se mostrarán, sino que se reemplazarán por el carácter "*".

    RadiusSecret:***
    
  3. Agregue el grupo de direcciones de cliente VPN y la información del servidor RADIUS.

    Para configuraciones SSTP:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "SSTP" `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Para configuraciones OpenVPN®:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientRootCertificates @()
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "OpenVPN" `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Para configuraciones IKEv2:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "IKEv2" `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Para SSTP + IKEv2:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol @( "SSTP", "IkeV2" ) `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Para especificar dos servidores RADIUS, use la siguiente sintaxis. Modifique el valor de -VpnClientProtocol según sea necesario.

    $radiusServer1 = New-AzRadiusServer -RadiusServerAddress 10.1.0.15 -RadiusServerSecret $radiuspd -RadiusServerScore 30
    $radiusServer2 = New-AzRadiusServer -RadiusServerAddress 10.1.0.16 -RadiusServerSecret $radiuspd -RadiusServerScore 1
    
    $radiusServers = @( $radiusServer1, $radiusServer2 )
    
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $actual -VpnClientAddressPool 201.169.0.0/16 -VpnClientProtocol "IkeV2" -RadiusServerList $radiusServers
    

6. Configuración del cliente VPN y conexión

Los paquetes de configuración de perfiles de cliente VPN contienen las opciones que le ayudan a configurar perfiles de cliente VPN para una conexión a la red virtual de Azure.

Para generar un paquete de configuración de cliente VPN y configurar un cliente VPN, consulte uno de los siguientes artículos:

Después de configurar el cliente VPN, conéctese a Azure.

Para comprobar la conexión

  1. Para comprobar que la conexión VPN está activa, abra un símbolo del sistema con privilegios elevados y ejecute ipconfig/all.

  2. Vea los resultados. Observe que la dirección IP que recibió es una de las direcciones dentro del grupo de direcciones de cliente VPN de punto a sitio que especificó en la configuración. Los resultados son similares a los del ejemplo siguiente:

    PPP adapter VNet1:
       Connection-specific DNS Suffix .:
       Description.....................: VNet1
       Physical Address................:
       DHCP Enabled....................: No
       Autoconfiguration Enabled.......: Yes
       IPv4 Address....................: 172.16.201.3(Preferred)
       Subnet Mask.....................: 255.255.255.255
       Default Gateway.................:
       NetBIOS over Tcpip..............: Enabled
    

Para solucionar problemas de conexión de P2S, vea Solución de problemas: conexión de punto a sitio de Azure.

Para conectarse a una máquina virtual

Puedes conectarte a una máquina virtual que esté implementada en la red virtual mediante la creación de una conexión de Escritorio remoto a la máquina virtual. La mejor manera de comprobar inicialmente que puede conectarse a la máquina virtual es hacerlo mediante su dirección IP privada, en lugar del nombre de equipo. Con este método prueba si puede conectarse, no si la resolución de nombres está configurada correctamente.

  1. Busque la dirección IP privada. Para buscar la dirección IP privada de una máquina virtual, examina las propiedades en Azure Portal o usa PowerShell.

    • Azure Portal: Ubica la máquina virtual en Azure Portal. Vea las propiedades de la máquina virtual. Se enumera la dirección IP privada.

    • PowerShell: Utiliza el ejemplo para ver una lista de las máquinas virtuales y las direcciones IP privadas de los grupos de recursos. No es preciso modificar el ejemplo para usarlo.

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. Comprueba que está conectado a la red virtual.

  3. Abre Conexión a Escritorio remoto, para lo que debes escribir RDP o Conexión a Escritorio remoto en el cuadro de búsqueda de la barra de tareas. Luego, selecciona Conexión a Escritorio remoto. También puedes abrir Conexión a Escritorio remoto con el comando mstsc de PowerShell.

  4. En Conexión a Escritorio remoto, escriba la dirección IP privada de la máquina virtual. Puedes seleccionar Mostrar opciones para ajustar parámetros adicionales y, después, conectarte.

Si tienes problemas para conectarte a una máquina virtual a través de tu conexión VPN, comprueba los siguientes puntos:

  • Compruebe que la conexión VPN se ha establecido correctamente.
  • Compruebe que se conecta a la dirección IP privada de la máquina virtual.
  • Si puedes conectarte a la máquina virtual mediante la dirección IP privada, pero no el nombre del equipo, comprueba que has configurado el DNS correctamente. Para más información acerca de cómo funciona la resolución de nombres para las máquinas virtuales, consulta Resolución de nombres para las máquinas virtuales e instancias de rol.

Para más información acerca de las conexiones RDP, consulte Solución de problemas de conexiones del Escritorio remoto a una máquina virtual de Azure.

  • Compruebe que el paquete de configuración de cliente de VPN se generó después de que se especificaran las direcciones IP del servidor DNS para la red virtual. Si actualizó las direcciones IP de servidor DNS, genere un nuevo paquete de configuración de cliente de VPN e instálelo.

  • Use "ipconfig" para comprobar la dirección IPv4 asignada al adaptador de Ethernet en el equipo desde el que intenta conectarse. Si la dirección IP está dentro del intervalo de direcciones de la red virtual a la que se va a conectar o dentro del intervalo de direcciones de su VPNClientAddressPool, esto se conoce como un espacio de direcciones superpuesto. Cuando el espacio de direcciones se superpone de esta manera, el tráfico de red no llega a Azure, sino que se mantiene en la red local.

Preguntas más frecuentes

Consulte la sección Autenticación RADIUS de punto a sitio de las preguntas frecuentes.

Pasos siguientes

Una vez completada la conexión, puede agregar máquinas virtuales a las redes virtuales. Consulte Virtual Machines para más información. Para más información acerca de las redes y las máquinas virtuales, consulte Información general sobre las redes de máquina virtual con Linux y Azure.