Como criar uma VPN Site-to-Site com Linux para que duas Vnets em Tenants diferentes se comuniquem.

A ideia desse artigo nasceu por causa de uma necessidade que eu tive para criar um laboratório de Intune, mas como assim por causa de um LAB sobre Intune? Eu tenho um cenário onde meus licenciamento de Microsoft 365 estão em um tenant diferente onde estão o meu ADDS e o meu SCCM, logo eu precisei de alguma solução que não fosse uma migração de subscription.
Logo eu pensei:
“Porque eu não crio uma VPN para que as VMs que estão em tenants diferentes se comuniquem”
Com esse pensamento eu resolvi montar uma VPN no Linux chamada Strongwan, nesse artigo eu irei explanar o passo a passo de como configurar com sucesso.
Preparação
Observação: Os IPs são fictícios, eles foram escolhidos para melhor entendimento do artigo.
1 – Criar uma VM Ubuntu 22.04 no Site A
IP Public: 192.168.0.1
Private Network: 10.0.10.0/24
2 – Criar uma VM Ubuntu 22.04 no Site B
IP Public: 192.168.0.2
Private Network: 172.16.0.0/24
3 – Instale as dependências nas VMs
apt update && sudo apt upgrade -y
apt install strongswan -y
4 – Configure o Kernel das VMs
cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
EOF
sysctl -p /etc/sysctl.conf
5- Crie o Preshared Key
Observação: Cole o resultado em um notepad
openssl rand -base64 64
"gZ4j1cLhd+DWGVJPG6p4fEizbipITmBGfo/wXvKoOpj7XHkLYri3ph73uEZ5/vbTYIvMfxhG+lyaTXOVMfTeNg=="
6 – Modifique o arquivo /etc/ipsec.secrets no Site A
Origem – Destino192.168.0.1 192.168.0.2 : PSK "gZ4j1cLhd+DWGVJPG6p4fEizbipITmBGfo/wXvKoOpj7XHkLYri3ph73uEZ5/vbTYIvMfxhG+lyaTXOVMfTeNg=="
7 – Modifique o arquivo /etc/ipsec.secrets no Site B
192.168.0.2 192.168.0.1 : PSK "gZ4j1cLhd+DWGVJPG6p4fEizbipITmBGfo/wXvKoOpj7XHkLYri3ph73uEZ5/vbTYIvMfxhG+lyaTXOVMfTeNg=="
8 – Modifique o arquivo /etc/ipsec.conf no Site A
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn SiteA
authby=secret
left=%defaultroute
leftid=192.168.0.1
leftsubnet=10.0.10.0/24
right=192.168.0.2
rightsubnet=172.16.0.0/24
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start
9 – Modifique o arquivo /etc/ipsec.conf no Site B
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn SiteB
authby=secret
left=%defaultroute
leftid=192.168.0.2
leftsubnet=172.16.0.0/24
right=192.168.0.1
rightsubnet=10.0.10.0/24
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start
10 – Habilite a VPN nas VMs
sudo systemctl enable strongswan
11 – Inicie a VPN nas VMs
sudo systemctl start strongswan
12 – Incie o Strongswans nas VMs
sudo ipsec restart
sudo ipsec status
sudo ipsec statusall
13 – Após realizar todas essas configurações você precisar criar rotas no Azure para que as VMs das subnets possam sair pelas VPNs.

Faça essa configuração no Route Tables do Azure com as informações de cada Site
14 – Habilite o IP Forwarding de cada placa de rede das VMs que você configurou as VPNs

Bom laboratório pessoal!
Um comentário
Ricardo Quirino
Parabéns , muito bom o material!!