VPN Site-to-Site (S2S) Ubuntu e Azure
Fala pessoal, tudo bem com vocês?
Hoje vou mostrar como fechar uma vpn site-to-site (S2S) simulando um ambiente com Ubuntu como gateway para conectar no ambiente no Azure.
O QUE É UMA VPN SITE-TO-SITE (S2S)?
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 S2S é um recurso onde um gateway ou roteador conecta sua rede local a rede virtual do Azure através um canal criptografado.
CENÁRIO
O QUE FOI UTILIZADO?
- Ubuntu 18.04.4 LTS (Bionic Beaver)
- StrongSwan 5.6.2
- Azure VPN SKU VpnGw1
AMBIENTE DE REDE
- 192.168.20.0/24 – Rede local (on-premise)
- 10.0.0.0/16 – Rede Azure
CONFIGURAÇÃO AZURE
Primeiro passo é configurar o lado do Azure, para isso vamos instalar o gateway de rede virtual em nosso ambiente. Acesse o portal do Azure e procure no Market Place:
Selecione as informações abaixo:
Nome = VPN-GW (crie um de sua escolha)
Região = Mesma que se encontra sua rede
SKU = VpnGw1
Rede Virtual = Selecione a rede que estão as máquinas que você quer se comunicar
Endereço de Ip = Crie um novo ou selecione um existente
Após clicar em criar, o processo levará aproximadamente 30 a 40 minutos. Isso ocorre porque o Azure provisionará por trás dessa estrutura (que não fica visível) um servidor virtual para comportar a VPN. Após esse processo vamos abrir nosso Network Virtual Gateway e vamos clicar em Conexões para adicionar uma nova conexão:
Vamos criar um nome para essa conexão e seletionar o tipo “Site a Site (IPsec)”. Em Gateway de rede local vamos criar as configurações da outra ponta da conexão VPN:
Nesse processo, vamos configurar de acordo com as informações de seu ambiente local (On-premise)
Endereço IP = Endereço ip da Wan de seu ubuntu
Espaço de endereço = Endereçamento da sua rede local
Agora vamos criar uma chave compartilhada (que será usada nas duas pontas) e o protocolo IKEv2:
Finalizamos aqui a ponta do Azure, agora vamos configurar o lado do seu ambiente local.
CONFIGURAÇÃO AMBIENTE LOCAL (ON-PREMISE)
Primeira coisa a ser feita é instalação do strongswan, com o comando abaixo:
# sudo apt-get install strongswan -y
Agora vamos acessar o arquivo de configuração ipsec.conf com seu editor de texto favorito:
# sudo vim /etc/ipsec.conf
E vamos inserir as informações de acordo com seu ambiente:
# ipsec.conf – strongSwan IPsec configuration file
# basic configuration
config setup
charondebug=”all”
strictcrlpolicy=yes
uniqueids=no
## conexao on-premise to Azure
conn local-to-azure
authby=secret
auto=start
type=tunnel
keyexchange=ikev2
keylife=3600s
ikelifetime=28800s
## configuracao de rede
left=%any # ip da wan local
leftsubnet=192.168.20.0/24 # rede-local
right=191.234.180.9 # ip wan Azure
rightsubnet=10.0.0.0/16 # rede-azure
ike=aes256-sha1-modp1024
esp=aes256-sha1
Agora vamos acessar o arquivo de configuração ipsec.secrets com seu editor de texto favorito:
# sudo vim /etc/ipsec.secrets
E vamos inserir as informações de acordo com sua rede e a chave compartilhada que você criou
IP-WAN-REDE-LOCAL IP-WAN-AZURE : PSK “AzureBrPw”
Pronto! Agora vamos dar o comando service ipsec restart para iniciar o serviço e ipsec statusall para verificar a conexão:
Nas informações acima é possível constatar que o túnel está UP e podemos testar a conexão pingando alguma máquina da sua rede do Azure:
TROUBLESHOOTING
Aqui vai alguns problemas que podem ocorrer:
- Erro de não achar a chave compartilhada = em alguns casos é necessário informar no arquivo /etc/strongswan.d/charon/stroke.conf a localidade do arquivo que contém a senha, para isso adicione nesse arquivo a informação abaixo:
secrets_file = /etc/ipsec.secrets - O túnel não sobe após o restart do ipsec = Você pode subir o túnel manualmente com o comando “ipsec up nome-da-conn” conforme imagem abaixo
Finalizamos por hoje! Se quiser aprender mais sobre VPN, redes, troubleshooting e muito mais, procure pela trilha de infra em www.azureacademy.com.br
Nos vemos nos próximos posts!
Até mais😉
Maior dificuldade que vejo é em VPN’s que necessitam utilização de NAT, não existe uma solução para isto com VPN Gateway da Azure?
Infelizmente não! Eu mostrei isso no curso de Infra do azureacademy.com.br, como estender sua rede em um Plano de Disaster Recovery. Que basicamente o Servidor está interno com um IP 192.168.10.254 e quando migramos para o Azure a rede local continua acessando o servidor pelo ip 192.168.10.254. Falo do conceito utilizado que pode ser aplicado em qualquer Firewall. Se quiser posso gravar um video sobre.