Configurar uma conexão ponto a site com uma VNet usando a autenticação RADIUS: PowerShell

Este artigo mostra como criar uma rede virtual com uma conexão ponto a site (P2S) que usa a autenticação RADIUS. Essa configuração está disponível somente para o modelo de implantação do Gerenciador de Recursos. Você pode criar essa configuração usando o PowerShell ou o portal do Azure.

Um gateway VPN ponto a site (P2S) permite que você crie uma conexão segura para sua rede virtual a partir de um computador cliente individual. As conexões VPN P2S são úteis quando você quer se conectar à VNet de um local remoto, por exemplo, ao trabalhar de casa ou em uma conferência. Uma VPN P2S também é uma solução útil para usar em vez de uma VPN site a site, quando você tiver apenas alguns clientes que precisam se conectar a uma rede virtual.

Uma conexão VPN P2S é iniciada em dispositivos Windows e Mac. Este artigo o ajudará a configurar uma configuração de P2S que usa o servidor RADIUS para autenticação. Se você quiser autenticar usando um método diferente, consulte os seguintes artigos:

As conexões P2S não exigem um dispositivo VPN ou um endereço IP voltado para o público. A P2S cria a conexão VPN no SSTP (Secure Socket Tunneling Protocol), OpenVPN ou IKEv2.

  • O SSTP é um túnel de VPN baseado em TLS que tem suporte apenas em plataformas de cliente do Windows. Ele pode entrar em firewalls, tornando-o uma boa opção para se conectar dispositivos Windows ao Azure de qualquer lugar. No lado do servidor, damos suporte apenas a TLS versão 1.2. Para melhorar o desempenho, a escalabilidade e a segurança, considere usar o protocolo OpenVPN em vez disso.

  • Protocolo OpenVPN®, um protocolo VPN baseado em SSL/TLS. Uma solução de TLS VPN pode invadir firewalls, desde que a maioria dos firewalls abra a porta TCP de saída 443, usada pelo TLS. O OpenVPN pode ser usado para conexão em dispositivos Android, iOS (versões 11.0 e mais recentes), Windows, Linux e Mac (versões OSX 10.13 e mais recentes).

  • VPN IKEv2, uma solução de VPN IPsec baseada em padrões. A VPN IKEv2 pode ser usada para se conectar em dispositivos Windows, Linux e Mac (macOS versões 10.11 e mais recentes).

Para essa configuração, as conexões exigem o seguinte:

  • Gateway de VPN RouteBased.
  • Servidor RADIUS para lidar com a autenticação do usuário. O servidor RADIUS pode ser implantado localmente ou na rede virtual do Azure. Também é possível configurar dois servidores RADIUS para alta disponibilidade.
  • O pacote de configuração do perfil de cliente VPN. O pacote de configuração do perfil do cliente VPN é um pacote que você gera. Ele fornece as configurações necessárias para um cliente VPN conectar-se ao P2S.

Sobre a autenticação de Domínio do Active Directory (AD) para as VPNs de P2S

A autenticação de Domínio do AD permite que os usuários façam logon Azure usando suas credenciais de domínio da organização. Ela requer um servidor RADIUS que integra-se com o servidor do AD. As empresas também podem aproveitar sua implantação existente do RADIUS.

O servidor RADIUS podem residir no local ou na rede virtual do Azure. Durante a autenticação, o gateway de VPN atua como uma passagem e encaminha as mensagens de autenticação entre o servidor RADIUS e o dispositivo de conexão. É importante para o gateway de VPN poder acessar o servidor RADIUS. Se o servidor RADIUS for local, é necessária uma conexão VPN Site a Site do Azure para o site local.

Além do Active Directory, um servidor RADIUS também pode integrar-se com outros sistemas de identidade externa. Isso possibilita várias opções de autenticação para VPNs P2S, incluindo opções de MFA. Verifique a documentação do fornecedor de servidor RADIUS para obter a lista de sistemas de identidade aos quais ele pode ser integrado.

Diagram of RADIUS authentication P2S connection.

Importante

Somente uma conexão VPN site a site pode ser usada para se conectar a um servidor RADIUS local. Não é possível usar uma conexão ExpressRoute.

Antes de começar

Verifique se você tem uma assinatura do Azure. Se ainda não tiver uma assinatura do Azure, você poderá ativar os Benefícios do assinante do MSDN ou inscrever-se para obter uma conta gratuita.

Trabalhando com o Azure PowerShell

Este artigo usa cmdlets do PowerShell. Para executar os cmdlets, você pode usar o Azure Cloud Shell. O Cloud Shell é um shell interativo e grátis que pode ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.

Para abrir o Cloud Shell, basta selecionar Abrir Cloud Shell no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e selecione a tecla Enter para executá-los.

Também é possível instalar e executar cmdlets do Azure PowerShell localmente em seu computador. Os cmdlets do PowerShell são atualizados com frequência. Se você não tiver instalado a versão mais recente, os valores especificados nas instruções poderão falhar. Use o cmdlet Get-Module -ListAvailable Az para localizar versões do Azure PowerShell instaladas em seu computador. Para executar uma instalação ou atualização, confira como Instalar o módulo do Azure PowerShell.

Valores de exemplo

Você pode usar os valores do exemplo para criar um ambiente de teste ou fazer referência a esses valores para entender melhor os exemplos neste artigo. Você pode usar as etapas como um passo a passo e usar os valores sem alterá-los, ou alterá-los para refletir seu ambiente.

  • Nome: VNet1
  • Espaço de endereço: 10.1.0.0/16 e 10.254.0.0/16
    Neste exemplo, usamos mais de um espaço de endereço para ilustrar que esta configuração funciona com vários espaços de endereço. No entanto, vários espaços de endereço não são necessários para esta configuração.
  • Nome da sub-rede: FrontEnd
    • Intervalo de endereços da sub-rede: 10.1.0.0/24
  • Nome da sub-rede: BackEnd
    • Intervalo de endereços da sub-rede: 10.254.1.0/24
  • Nome da sub-rede: GatewaySubnet
    O nome da Sub-rede GatewaySubnet é obrigatório para que o gateway de VPN funcione.
    • Intervalo de endereços da GatewaySubnet = 10.1.255.0/27
  • Pool de endereços do cliente VPN: 172.16.201.0/24
    Os clientes VPN que se conectarem à rede virtual usando esta conexão P2S receberão um endereço IP do pool de endereços do cliente VPN.
  • Assinatura:: se você tiver mais de uma assinatura, verifique se está usando a correta.
  • Grupo de recursos: TestRG1
  • Local: Leste dos EUA
  • Servidor DNS: Endereço IP do servidor DNS que você deseja usar para a resolução de nome para a sua rede virtual. (opcional)
  • Nome de GW: Vnet1GW
  • Nome do IP público: VNet1GWPIP
  • VpnType: RouteBased

1. Definir as variáveis

Declare as variáveis que você quer usar. Use o exemplo a seguir, substituindo os valores existentes pelos seus quando necessário. Ao fechar a sessão do PowerShell/Cloud Shell a qualquer momento durante o exercício, basta copiar e colar os valores novamente para redeclarar as variáveis.

$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. Criar o grupo de recursos, a rede virtual e o endereço IP público

As seguintes etapas criam um grupo de recursos e uma rede virtual no grupo de recursos com três sub-redes. Ao substituir valores, é importante que você sempre nomeie sua sub-rede de gateway especificamente como ‘GatewaySubnet’. Se você usar outro nome, a criação do gateway falhará;

  1. Crie um grupos de recursos.

    New-AzResourceGroup -Name "TestRG1" -Location "East US"
    
  2. Crie as configurações de sub-rede para a rede virtual e dê a elas os nomes FrontEnd, BackEnd e GatewaySubnet. Esses prefixos devem fazer parte do espaço de endereço da rede virtual declarada por você.

    $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. Crie a rede virtual.

    Neste exemplo, o parâmetro de servidor -DnsServer é opcional. A especificação de um valor não cria um novo servidor DNS. O endereço IP do servidor DNS especificado deve ser um servidor DNS que pode resolver os nomes dos recursos aos quais você está se conectando a partir da sua rede virtual. Neste exemplo, usamos um endereço IP privado, mas é provável que ele não seja o endereço IP do seu servidor DNS. Use seus próprios valores. O valor especificado é usado pelos recursos que são implantados para a rede virtual, não com a conexão de P2S.

    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. Um gateway de VPN deve ter um endereço IP público. Você primeiro solicita o recurso de endereço IP e, em seguida, faz referência a ele ao criar seu gateway de rede virtual. O endereço IP é atribuído dinamicamente ao recurso quando o gateway de VPN é criado. O gateway de VPN atualmente suporta apenas alocação de endereços IP público Dinâmico. Você não pode solicitar uma atribuição de endereço IP Público Estático. No entanto, isso não significa que o endereço IP é alterado depois que ele foi atribuído ao seu gateway de VPN. A única vez em que o endereço IP Público é alterado é quando o gateway é excluído e recriado. Isso não altera o redimensionamento, a redefinição ou outras manutenções/atualizações internas do seu gateway de VPN.

    Especifique as variáveis para solicitar um endereço IP público atribuído dinamicamente.

    $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. Configurar o servidor RADIUS

Antes de você criar e configurar o gateway de rede virtual, o servidor RADIUS deve ser configurado corretamente para autenticação.

  1. Se você não tiver um servidor RADIUS implantado, implante um. Para saber sobre as etapas de implantação, confira o guia de instalação do seu fornecedor RADIUS.  
  2. Configure o gateway de VPN como um cliente RADIUS no RADIUS. Ao adicionar esse cliente RADIUS, especifique a rede virtual GatewaySubnet que você criou.
  3. Depois que o servidor RADIUS estiver configurado, obtenha o endereço IP do servidor RADIUS e o segredo compartilhado que os clientes RADIUS devem usar para se comunicar com o servidor RADIUS. Se o servidor RADIUS estiver na rede virtual do Azure, use o IP da autoridade de certificação da VM do servidor RADIUS.

O artigo sobre o Servidor de Políticas de Rede (NPS) fornece orientações sobre como configurar um servidor RADIUS do Windows (NPS) para autenticação de domínio do AD.

4. Criar o gateway de VPN

Configurar e criar o gateway de VPN para sua rede virtual.

  • O -GatewayType deve ser 'Vpn' e o -VpnType deve ser 'RouteBased'.
  • Um gateway de VPN pode 45 minutos ou mais para ser concluído, dependendo do SKU de gateway selecionado.
New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG `
-Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
-VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1

5. Adicionar o servidor RADIUS e o pool de endereços do cliente

  • O -RadiusServer pode ser especificado por nome ou endereço IP. Se você especificar o nome e o servidor for local, o gateway de VPN não poderá resolver o nome. Se esse for o caso, é melhor especificar o endereço IP do servidor.
  • O -RadiusSecret deve corresponder ao que é configurado no servidor RADIUS.
  • O -VpnClientAddressPool é o intervalo do qual os clientes VPN recebem um endereço IP ao se conectar. Use um intervalo de endereço IP privado que não coincida com o local de onde você se conectará ou com a rede virtual à qual você desejará se conectar. Certifique-se de que você tenha um pool de endereços grande o suficiente configurado.  
  1. Crie uma cadeia de caracteres segura para o segredo RADIUS.

    $Secure_Secret=Read-Host -AsSecureString -Prompt "RadiusSecret"
    
  2. Você precisará inserir o segredo do RADIUS. Os caracteres que você inserir não serão exibidos e, ao invés disso, serão substituídos pelo caractere "*".

    RadiusSecret:***
    
  3. Adicione as informações do pool de endereços de cliente VPN e do servidor RADIUS.

    Para configurações 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 configurações 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 configurações 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 dois servidores RADIUS, use a sintaxe a seguir. Modifique o valor -VpnClientProtocol conforme necessário.

    $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. Configurar o cliente VPN e conectar

Os pacotes de configuração do perfil de cliente VPN contêm as configurações que ajudam você a configurar perfis de cliente VPN para uma conexão com a VNet do Azure.

Para gerar um pacote de configuração de cliente VPN e configurar um cliente VPN, consulte um dos seguintes artigos:

Depois de configurar o cliente VPN, conecte-se ao Azure.

Para verificar sua conexão

  1. Para verificar se a conexão VPN está ativa, abra um prompt de comandos com privilégios elevados e execute ipconfig/all.

  2. Exiba os resultados. Observe que o endereço IP que você recebeu é um dos endereços dentro do Pool de Endereços de Cliente VPN P2S que você especificou em sua configuração. Os resultados são semelhantes a este exemplo:

    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 com uma conexão P2S, consulte Solução de problemas de conexões de ponto a site do Azure.

Para conectar-se a uma máquina virtual

É possível se conectar a uma VM implantada em sua rede virtual criando uma conexão de Área de Trabalho Remota com a VM. É a melhor maneira de verificar inicialmente se você pode se conectar à sua VM usando seu endereço IP privado, em vez do nome do computador. Dessa forma, você está testando para ver se pode conectar-se e não se a resolução de nomes está configurada corretamente.

  1. Localize o endereço IP privado. É possível encontrar o endereço IP privado de uma VM observando as propriedades da VM no portal do Azure ou usando o PowerShell.

    • Portal do Azure: localize sua VM no portal do Azure. Exiba as propriedades para a VM. O endereço IP privado está listado.

    • PowerShell: use o exemplo para exibir uma lista de VMs e endereços de IP privados dos seus grupos de recursos. Você não precisa modificar esse exemplo antes de usá-lo.

      $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. Verifique se você está conectado à sua rede virtual.

  3. Abra a Conexão de Área de Trabalho Remota, inserindo RDP ou Conexão de Área de Trabalho Remota na caixa de pesquisa na barra de tarefas. Em seguida, selecione Conexão de Área de Trabalho Remota. Você também pode abrir a Conexão de Área de Trabalho Remota usando o comando mstsc no PowerShell.

  4. Na Conexão de Área de Trabalho Remota, insira o endereço IP privado da VM. É possível selecionar Mostrar Opções para ajustar outras configurações e depois se conectar.

Se você estiver com problemas para se conectar a uma VM por meio da conexão VPN, verifique o seguinte pontos:

  • Verifique se a conexão VPN é estabelecida.
  • Verifique se você está se conectando ao endereço IP privado da VM.
  • Se você puder se conectar à VM usando o endereço IP privado, mas não o nome do computador, verifique se o DNS foi configurado corretamente. Para obter mais informações sobre como funciona a resolução de nomes para VMs, confira Resolução de nomes para VMs.

Para obter mais informações sobre conexões RDP, confira Solucionar problemas de conexões da Área de Trabalho Remota a uma VM.

  • Verifique se o pacote de configuração de cliente VPN foi gerado depois que os endereços IP do servidor DNS foram especificados para a rede virtual. Se você atualizou os endereços IP do servidor DNS, gere e instale um novo pacote de configuração de cliente VPN.

  • Use 'ipconfig' para verificar o endereço IPv4 atribuído ao adaptador Ethernet no computador do qual está se conectando. Se o endereço IP está dentro do intervalo de endereços da VNet a qual você está se conectando ou dentro do intervalo de endereços do VPNClientAddressPool, isso é chamado de espaço de endereço sobreposto. Quando o espaço de endereço se sobrepõe dessa forma, o tráfego de rede não alcança o Azure; ele permanece na rede local.

Perguntas frequentes

Para obter informações frequentes, consulte a seção De ponto a site – autenticação RADIUS das perguntas frequentes.

Próximas etapas

Quando sua conexão for concluída, você poderá adicionar máquinas virtuais às suas redes virtuais. Para saber mais, veja Máquinas virtuais. Para saber mais sobre redes e máquinas virtuais, consulte Visão geral de rede do Azure e VM Linux.