​Nesse artigo vamos mostrar como configurar o seu cliente de VPN do Microsoft Azure para estar sempre conectado e principalmente antes do logon. Muitos administradores procuram entregar serviços com mais mobilidade e também manter a segurança no acesso. Com a VPN em funcionamento antes do logon, a aplicação de políticas via GPO são possíveis via VPN Client-to-Site. 

O cliente do Microsoft Azure disponibilizado pela Microsoft, não possui configuração "Always On" nativa, assim como outros produtos possuem (Sonicwall, Fortinet,...entre outros). Vamos mostrar agora, como criar sua VPN Client-To-Site sempre conectada ao Microsoft Azure.

Primeiramente abra suas conexões de rede e clique em "Configurar uma nova conexão ou rede":

 

Clique em "Conectar a um local de trabalho":

Selecione "Não, criar uma nova conexão":

Escolha "Usar minha conexão com a Internet (VPN)":

Antes de criar a conexão, precisamos encontrar qual o destino que iremos conectar. Para coletar essas informações, abra o seu cliente de VPN do Microsoft Azure e clique em "Propriedades":

Clique em "Exibir Log".

Importante: A conexão só aparecerá no log se você discou em algum momento. Se você nunca se conectou, nada será visto no log.

No arquivo de log, você encontrará o seu link de conexão.

Escolha o nome da sua conexão e insira o seu link de conexão do Microsoft Azure. Em nossa caso escolhemos "Azure VPN":

Após conexão criada, clique em "Propriedades":

Marque as 3 opções abaixo:

Selecione SSTP  e "Microsoft Cartão Inteligente...." e clique em "Propriedades":

Selecione o certificado da sua VPN do Microsoft Azure. Abre a mesma para confirmar se realmente é o seu certificado correto. Caso escolha o certificado incorretamente, a conexão não terá sucesso.

Selecione a aba "Rede" e vá me protocolo TCP/IPV4:

Clique em "Avançado":

Desmarque a opção "Utilizar gateway padrão em rede remota":

Apenas na primeira conexão, você receberá a mensagem abaixo. Faça a primeira conexão manualmente para testar.

Feito! Sua VPN P2S está conectada via cliente do Windows. Mesmo depois de conectado, você não conseguirá efetuar o ping para os seus recursos do Microsoft Azure, pois o mesmo não cria a rota automaticamente. Nos próximos passos, vamos ver como criar esse script para rodarmos as rotas.

Crie um arquivo .bat com o seguinte comando. Salve o arquivo com o nome "VPNAUTOAZURE":

Comando: rasdial "AZURE VPN" 

Crie um arquivo em Powershell com o seguinte comando abaixo. Salve o arquivo com o nome "routes.ps1":

Altere a classe de rede de sua VNET e range de VPN, conforme as suas configurações no Microsoft Azure. Em nosso caso, nossa classe de rede da VNET é 10.0.0.0/24 e Range VPN é 172.16.20.0/24, portanto, inserimos nosso range em "$ips" e "azurePptRange".

#############################################################
# Adds IP routes to Azure VPN through the Point-To-Site VPN
#############################################################
 
# Define your Azure Subnets
$ips = @("10.0.1.0", "10.0.2.0","10.0.0.0")
 
# Point-To-Site IP address range
# should be the first 4 octets of the ip address '172.16.0.14' == '172.16.0.
 
$azurePptpRange = "172.16.20."
 
# Find the current new DHCP assigned IP address from Azure
$azureIpAddress = ipconfig | findstr $azurePptpRange
 
# If Azure hasn't given us one yet, exit and let u know
if (!$azureIpAddress){
    "You do not currently have an IP address in your Azure subnet."
    exit 1
}
 
$azureIpAddress = $azureIpAddress.Split(": ")
$azureIpAddress = $azureIpAddress[$azureIpAddress.Length-1]
$azureIpAddress = $azureIpAddress.Trim()
 
# Delete any previous configured routes for these ip ranges
foreach($ip in $ips) {
    $routeExists = route print | findstr $ip
    if($routeExists) {
        "Deleting route to Azure: " + $ip
        route delete $ip
    }
}
 
# Add our new routes to Azure Virtual Network
foreach($subnet in $ips) {
    "Adding route to Azure: " + $subnet
    echo "route add $ip MASK 255.255.255.0 $azureIpAddress"
    route add $subnet MASK 255.255.255.0 $azureIpAddress
}

Cria uma pasta no C: do seu computador local e insira os dois arquivos:

Agora precisamos automatizar esse processo, rodando esses dois arquivos antes do logon. Crie uma tarefa para auto conexão do cliente de VPN. Em nosso caso colocamos o nome de "autovpnazure":

Selecione a opção "Ao Inicializar". isso fará que o arquivo rode antes o logon.

Aponte o arquivo .bat que foi criado anteriormente.

Desmarque as opções e deixa a mesma conforme imagem abaixo.

Deixe as configurações conforme imagem abaixo:

Pronto! Sua tarefa de conexão de VPN automática está efetuada.

Faça as mesmas configurações para o arquivo de rotas do Powershell, e na opção "Iniciar um programa" aponte no seguinte a caminho:

Programa/Script: C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe

e aponte o arquivo "routes.ps1" criado anteriormente.

Ao efetuar o logon, sua VPN já estará pingando e papel de parede aplicado. Suas políticas de GPO serão aplicadas com êxito.

Importante saber que esse processo não fica viável para uma rede grande, pois o trabalho e esforço nas configurações podem ficar inviável. Aguardamos que a Microsoft crie nativamente a conexão Always on em seu cliente de VPN. Grande abraço para todos e esperamos que esse artigo ajude todos os administradores que utilizam os serviços online da Microsoft.