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 só está disponível para o modelo de implantação do Resource Manager. Você pode criar essa configuração usando o PowerShell ou o portal do Azure.

Um gateway VPN ponto a site permite criar uma conexão segura com sua rede virtual a partir de um computador cliente individual. As ligações VPN P2S são úteis quando pretende ligar-se à sua rede virtual a partir de uma localização remota, como quando está em teletrabalho a partir de casa ou de uma conferência. Uma VPN P2S também é uma solução útil para usar em vez de uma VPN site a site quando você tem apenas alguns clientes que precisam se conectar a uma rede virtual.

Uma ligação VPN P2S é iniciada a partir dos dispositivos Windows e Mac. Este artigo ajuda você a configurar uma configuração P2S que usa um 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. O P2S cria a conexão VPN através de SSTP (Secure Socket Tunneling Protocol), OpenVPN ou IKEv2.

  • SSTP é um túnel VPN baseado em TLS que é suportado apenas em plataformas de cliente Windows. Ele pode penetrar firewalls, o que o torna uma boa opção para conectar dispositivos Windows ao Azure de qualquer lugar. No lado do servidor, suportamos apenas TLS versão 1.2. Para melhorar o desempenho, a escalabilidade e a segurança, considere o uso do protocolo OpenVPN.

  • OpenVPN® Protocol, um protocolo VPN baseado em SSL/TLS. Uma solução TLS VPN pode penetrar firewalls, uma vez que a maioria dos firewalls abre a porta TCP 443 de saída, que o TLS usa. O OpenVPN pode ser usado para se conectar a partir de dispositivos Android, iOS (versões 11.0 e superiores), Windows, Linux e Mac (macOS versões 10.13 e superiores).

  • VPN IKEv2, uma solução de VPN IPsec baseada em normas. O IKEv2 VPN pode ser usado para se conectar a partir de dispositivos Windows, Linux e Mac (macOS versões 10.11 e superiores).

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

  • Um gateway de VPN RouteBased.
  • Um servidor RADIUS para lidar com a autenticação do usuário. O servidor RADIUS pode ser implantado no local ou na rede virtual do Azure. Você também pode configurar dois servidores RADIUS para alta disponibilidade.
  • O pacote de configuração do perfil do 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 se conectar por P2S.

Sobre a autenticação de domínio do Ative Directory (AD) para VPNs P2S

A autenticação de Domínio do AD permite que os usuários entrem no Azure usando suas credenciais de domínio da organização. Requer um servidor RADIUS que se integre com o servidor AD. As organizações também podem aproveitar sua implantação RADIUS existente.

O servidor RADIUS pode residir no local ou na sua rede virtual do Azure. Durante a autenticação, o gateway VPN atua como uma passagem e encaminha mensagens de autenticação entre o servidor RADIUS e o dispositivo de conexão. É importante que o gateway VPN possa alcançar o servidor RADIUS. Se o servidor RADIUS estiver localizado localmente, será necessária uma conexão VPN site a site do Azure para o site local.

Além do Ative Directory, um servidor RADIUS também pode se integrar com outros sistemas de identidade externos. Isso abre muitas opções de autenticação para VPNs P2S, incluindo opções de MFA. Verifique a documentação do fornecedor do servidor RADIUS para obter a lista de sistemas de identidade com os quais ele se integra.

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. Uma conexão de Rota Expressa não pode ser usada.

Antes de começar

Verifique se tem uma subscrição do Azure. Se ainda não tiver uma subscrição do Azure, pode ativar os Benefícios de subscritor do MSDN ou inscrever-se numa 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 gratuito que você pode usar para executar as etapas neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

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

Você também pode instalar e executar os 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 podem falhar. Para localizar as versões do Azure PowerShell instaladas no seu computador, use o Get-Module -ListAvailable Az cmdlet. Para instalar ou atualizar, consulte Instalar o módulo do Azure PowerShell.

Valores de exemplo

Pode utilizar os valores de exemplo para criar um ambiente de teste ou consultá-los para compreender melhor os exemplos neste artigo. Pode utilizar os passos como orientação e utilizar os valore sem os alterar ou alterá-los de modo a refletir o seu ambiente.

  • Nome: VNet1
  • Espaço de endereço: 10.1.0.0/16 e 10.254.0.0/16
    Para este exemplo, utilizamos mais do que 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 essa 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 o gateway de VPN funcionar.
    • GatewayIntervalo de endereços de sub-rede: 10.1.255.0/27
  • Conjunto de endereços de cliente VPN: 172.16.201.0/24
    Os clientes VPN que se conectam à rede virtual usando essa conexão P2S recebem um endereço IP do pool de endereços do cliente VPN.
  • Subscrição: se tiver mais do que uma subscrição, verifique se está a utilizar a correta.
  • Grupo de Recursos: TestRG1
  • Localização: E.U.A. Leste
  • Servidor DNS: endereço IP do servidor DNS que pretende utilizar para a resolução de nomes para a sua rede virtual. (opcional)
  • Nome do GW: Vnet1GW
  • Nome do IP público: VNet1GWPIP
  • VpnType: RouteBased

1. Defina as variáveis

Declare as variáveis que quer utilizar. Utilize o exemplo seguinte, substituindo os valores pelos seus próprios, quando necessário. Se você fechar sua 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. Crie o grupo de recursos, a rede virtual e o endereço IP público

As etapas a seguir 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ê nomeá-lo de outra forma, sua criação de gateway falhará;

  1. Crie um grupo de recursos.

    New-AzResourceGroup -Name "TestRG1" -Location "East US"
    
  2. Crie as configurações de sub-rede para a rede virtual, nomeando-as FrontEnd, BackEnd e GatewaySubnet. Estes prefixos têm de fazer parte do espaço de endereços da VNet que declarou.

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

    Neste exemplo, o parâmetro de servidor -DnsServer é opcional. Especificar um valor não cria um novo servidor DNS. O endereço IP do servidor DNS especificado deve ser um servidor DNS que possa resolver os nomes dos recursos aos quais você está se conectando a partir da sua rede virtual. Para este exemplo, usamos um endereço IP privado, mas é provável que esse não seja o endereço IP do seu servidor DNS. Certifique-se de que utiliza os seus próprios valores. O valor especificado é usado pelos recursos implantados na rede virtual, não pela conexão 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. Primeira, requeira o recurso de endereço IP e, em seguida, faça referência ao mesmo ao criar o gateway de rede virtual. O endereço IP é dinamicamente atribuído ao recurso quando o gateway de VPN é criado. O Gateway de VPN, atualmente, apenas suporta a alocação de endereços IP públicos dinâmicos. Não é possível solicitar uma atribuição de endereço IP público estático. No entanto, isso não significa que o endereço IP muda depois de ter sido atribuído ao seu gateway VPN. O endereço IP Público só é alterado quando o gateway é eliminado e recriado. Não é alterado ao redimensionar, repor ou ao realizar qualquer outra manutenção/atualização interna do 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. Configure o servidor RADIUS

Antes de 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 conhecer as etapas de implantação, consulte o guia de configuração fornecido pelo fornecedor do RADIUS.  
  2. Configure o gateway 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 falar com o servidor RADIUS. Se o servidor RADIUS estiver na VNet do Azure, use o IP da CA da VM do servidor RADIUS.

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

4. Crie o gateway VPN

Configure e crie o gateway VPN para sua rede virtual.

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

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

  • O -RadiusServer pode ser especificado pelo nome ou pelo endereço IP. Se você especificar o nome e o servidor residir localmente, o gateway VPN pode não conseguir resolver o nome. Se for esse o caso, então é melhor especificar o endereço IP do servidor.
  • O -RadiusSecret deve corresponder ao que está configurado no seu servidor RADIUS.
  • O -VpnClientAddressPool é o intervalo a partir do qual os clientes VPN conectados recebem um endereço IP. Use um intervalo de endereços IP privados que não se sobreponha ao local a partir do qual você se conectará ou à VNet à qual deseja se conectar. Certifique-se de ter 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ê será solicitado a inserir o segredo RADIUS. Os caracteres inseridos não serão exibidos e, em vez disso, serão substituídos pelo caractere "*".

    RadiusSecret:***
    
  3. Adicione o pool de endereços do cliente VPN e as informações 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. Configure o cliente VPN e conecte-se

Os pacotes de configuração de perfil de cliente VPN contêm as configurações que ajudam 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 a ligação

  1. Para verificar se a ligação VPN está ativa, abra uma linha de comandos elevada e execute ipconfig/all.

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

Ligar a uma máquina virtual

Você pode se conectar a uma VM implantada em sua rede virtual criando uma Conexão de Área de Trabalho Remota para sua VM. A melhor forma de verificar, inicialmente, que se pode ligar à VM é ligar-se utilizando o respetivo endereço IP privado, em vez do nome do computador. Dessa forma, você está testando para ver se consegue se conectar, não se a resolução de nomes está configurada corretamente.

  1. Localizar o endereço IP privado. Você pode encontrar o endereço IP privado de uma VM examinando as propriedades da VM no portal do Azure ou usando o PowerShell.

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

    • PowerShell: Use o exemplo para exibir uma lista de VMs e endereços IP privados de seus grupos de recursos. Não é necessário modificar este exemplo antes de o utilizar.

      $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 Ligação ao Ambiente de Trabalho Remoto introduzindo RDP ou Ligação ao Ambiente de Trabalho Remoto 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 mstsc comando no PowerShell.

  4. Em Ligação ao Ambiente de Trabalho Remoto, introduza o endereço IP privado da VM. Pode selecionar Mostrar Opções para ajustar outras definições e, em seguida, ligar.

Se você estiver tendo problemas para se conectar a uma VM por meio de sua conexão VPN, verifique os seguintes pontos:

  • Certifique-se de que a ligação VPN é efetuada com êxito.
  • 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 configurou o DNS corretamente. Para obter mais informações sobre como a resolução de nomes funciona para VMs, consulte Resolução de nomes para VMs.

Para obter mais informações sobre ligações RDP, veja Troubleshoot Remote Desktop connections to a VM(Resolução de Problemas de ligações de Ambiente de Trabalho Remoto a uma VM).

  • Certifique-se de que o pacote de configuração de clientes VPN gerado depois dos endereços IP do servidor DNS foi especificado para a VNet. Se 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 você está se conectando. Se o endereço IP estiver dentro do intervalo de endereços da rede virtual à qual você está se conectando ou dentro do intervalo de endereços do seu VPNClientAddressPool, isso será chamado de espaço de endereço sobreposto. Quando o seu espaço de endereços se sobrepõe desta forma, o tráfego de rede não chega ao Azure e permanece na rede local.

FAQ

Para obter informações sobre perguntas frequentes, consulte a seção Autenticação ponto a site - RADIUS das Perguntas frequentes.

Próximos passos

Assim que a ligação estiver concluída, pode adicionar máquinas virtuais às redes virtuais. Para obter mais informações, veja Máquinas Virtuais. Para compreender melhor o funcionamento em rede e as máquinas virtuais, veja Descrição geral da rede VM do Azure e Linux.