VPN client-to-site ou point-to-site (P2S) Azure

Olá pessoal, tudo bem com vocês?
Hoje teremos um passo a passo de como configurar uma vpn point-to-site de sua maquina local com o Azure!

O QUE É UMA VPN POINT-TO-SITE (P2S)?
VPN (Virtual Private Network) são túneis virtuais em cima de uma rede pública (geralmente a internet), onde 2 pontos são interligados com segurança, formando uma rede única, ou seja, VPN é uma extensão da rede local (privada) que utiliza o meio de enlace (conexão) uma rede pública (internet). A VPN P2S é um recurso onde uma maquina local/host único acessa recursos alojados no Azure, através de um canal criptografado.

DIFERENÇA VPN SITE-TO-SITE E POINT-TO-SITE
As configurações vpns site-to-site conectam um túnel entre seu ambiente local (on-premise) e o Azure. Com isso você consegue conectar no azure a partir de qualquer computador localizado nesse ambiente local.
Já a vpn point-to-site permite conectar um único computador de qualquer lugar ao Azure.

CENÁRIO
Nosso ambiente será montado com Vpn Basic, o cliente para windows 10 pro

CONFIGURAÇÃO
Primeiro passo da configuração, é logar no portal do azure e no market place da Microsoft criar a rede virtual que vamos utilizar e obrigatoriamente você precisará: Criar um nome para essa rede, criar um espaço de endereço para essa rede, selecionar a assinatura, selecionar ou criar um grupo de recursos, nomear uma subrede e criar um intervalo de endereços para essa subrede.
conforme imagem abaixo:

Segundo passo é adicionar um gateway de rede virtual (virtual network gateway) pelo marketplace da Microsoft, conforme imagem abaixo:

Assim que clicar em “criar” será apresentada a tela de configuração, onde deverá ser preenchidos os campos, conforme imagem abaixo:

No campo Rede virtual, vamos selecionar a rede criada no primeiro passo, automaticamente ele já vai definir uma sub-rede (somente se o escopo de sua vnet tiver espaço para criar uma subnet)
Também é necessário que seu gateway tenha um ip público, que podemos criar nessa mesma tela.

No caso de nosso cenário, vou utilizar o SKU básico, que tem um limite de 128 Túneis P2S com uma largura de banda de 100 Mbps. Existem vários tamanhos e configurações que você pode alterar de acordo com sua demanda, para saber mais sobre, acesse o link com as especificações

Preenchido todos os campos, só clicar em Revisar + Criar e esperar o Azure provisionar os recursos.
Obs. O tempo para provisionar essa vpn varia de 20 a 40 minutos

A primeira parte do processo foi feita, agora vamos definir qual tipo/protocolo de vpn que vamos utilizar e o método de autenticação.

PROTOCOLO UTILIZADO
A VPN do Azure utiliza os protocolos SSTP (SSL utilizado pela Microsoft), IKEv2 e OpenVPN (SSL de código aberto). No nosso cenário com o SKU Basic não da suporte a outros tipos de conexão, somente o SSTP, então é esse protocolo que vamos utilizar que é o padrão.

Obs. a porta de saída utilizada é a 443, então é necessário ter essa porta liberada no Firewall (na maioria dos casos essa porta já é liberada visto que é utilizada para navegação WEB)

AUTENTICAÇÃO UTILIZADA
O Azure utiliza dois tipos de autenticação, a com certificado nativo do Azure ou autenticar usando um controlador de domínio (essa segunda requer um servidor RADIUS).
No nosso caso vamos utilizar a autenticação baseada em certificado.

GERAR UM CERTIFICADO AUTO ASSINADO COM POWERSHELL
Vamos gerar um certificado auto assinado através do Powershell (para gerar o certificado pode ser utilizado qualquer computador com Windows 10 ou Windows Server 2016).
Para gerar o certificado utilize o comando abaixo:

$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature  `
-Subject "CN=CertificadoPrincipal" -KeyExportPolicy Exportable  `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:\CurrentUser\My” -KeyUsageProperty Sign -KeyUsage CertSi

GERAR UM CERTIFICADO CLIENT
Cada computador que vai se conectar na VPN, precisa do certificado instalado, vamos gerar um certificado cliente com base no certificado recém-criado, utilizando o comando abaixo:

New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature  `
-Subject "CN=Certificadocliente" -KeyExportPolicy Exportable  `
-HashAlgorithm sha256 -KeyLength 2048  `
-CertStoreLocation "Cert:\CurrentUser\My" -Signer $cert -TextExtension @(“2.5.29.37={text}1.3.6.1.5.5.7.3.2”)

CHAVE PÚBLICA E CERTIFICADO
Vamos executar 3 passos agora, exportar a chave pública, coloca-la no Azure e exportar o certificado client para ser instalado no computador que vai conectar:

PASSO 1 – EXPORTAR CHAVE PÚBLICA
Para exportar a chave pública, vamos executar o comandos Windows + R) para abrir o executável e depois certmgr.msc

Vai abrir a tela de gerenciamentos dos certificados no computador, vá até o Item Pessoal\Certificados, lá você vai encontrar os dois certificados gerados anteriormente

Vamos clicar para exportar o certificado raiz criado (no meu caso é o CertificadoPrincipal), para extrair a chave pública no formato X.509, conforme sequencia de imagens abaixo:

PASSO 2 – IMPORTAR CHAVE RAIZ NO AZURE
Para fazer esse passo, basta abrir o certificado recém criado com o bloco de notas e vai aparecer uma chave parecida com a imagem abaixo:

Copiar todo o conteúdo depois do —BEGIN CERTIFICATE– e antes do —END CERTIFICATE —

Agora vamos importar no Portal do Azure, no Gateway de VPN que criamos no inicio do tutorial, vamos até o item Configuração de ponto a site, configurar o pool de endereços que será distribuído nos clients vpns e colar o certificado copiado, conforme imagem abaixo.

Configuração Pont-to-Site

PASSO 3 -EXPORTAR CHAVE CERTIFICADO CLIENT
Vamos exportar os certificado cliente com a chave privada e adicionar uma senha qualquer, no caso do nosso tutorial é o certificado (Certificadocliente), seguir conforme imagens abaixo:

Pronto, agora basta baixar o cliente VPN direto do portal do Azure, e instalar na maquina que deseja conectar na VPN.
O cliente VPN já vai vir com as configurações necessárias de conexão, bastando instalar o certificado digital que criamos e exportamos com senha.

Tela de instalação do VPN Client
Após instalação, aparecerá a conexão no Windows

Até a próxima pessoal, dúvidas ou sugestões, deixem nos comentários.

Links de referencia:
https://docs.microsoft.com/pt-br/azure/vpn-gateway/vpn-gateway-about-vpn-gateway-settings