Base de Conhecimento

Como utilizar VPN IPSec da Microsoft Azure com Winconnection Linux?

Data de criação: 22/05/2019

Última alteração: 14/10/2019

Uma conexão de gateway de VPN Site a Site é usada para conectar a rede local a uma rede virtual do Azure por um túnel VPN IPsec/IKE (IKEv1 ou IKEv2). Esse tipo de conexão exige um dispositivo VPN localizado no local que tenha um endereço IP público voltado para o exterior atribuído a ele.

Um gateway de VPN é um tipo específico de gateway de rede virtual que é usado para enviar tráfego criptografado entre uma rede virtual do Azure e um local na Internet pública. Você também pode usar um gateway de VPN para enviar tráfego criptografado entre as redes virtuais do Azure pela rede da Microsoft.

Em casos de utilização de VPN IPsec de conexão site to site da Microsoft Azure em ambientes que possui Winconnection Linux, é necessário criar as seguintes regras:

Segue o procedimento abaixo:

- Instalar o serviço Openswan e IpSec Tools que irá permitir a conexão site to site.

yum install openswan ipsec-tools

- Editar as configurações do arquivo IpSec.conf com as informações da Microsoft Azure e de seu ambiente de rede:

vi /etc/ipsec.conf
protostack=netkey
virtual_private=%v4:x.x.x.x/xx IP/Mascara (rede do servidor do Winconnection)
conn vpn
authby=secret
auto=start
type=tunnel
left=%defaultroute
leftid=x.x.x.x (IP valido de internet do cliente)
leftsubnet=x.x.x.x/xx (sub-rede/mascara da rede do servidor do winconnection)
leftnexthop=%defaultroute
right=x.x.x.x (IP disponibilizado na nuvem da Microsoft Azure)
rightsubnet=x.x.x.x/xx (sub-rede/mascara da rede do servidor do winconnection)
ikev2=insist (tipo de criptografia que será utilizada)
ike=aes256-sha1;modp1024
pfs=no
ikelifetime=1h
phase2alg=aes_gcm_c256-null

As informações nos campos ike=aes256-sha1;modp1024phase2alg=aes_ccm-nullikev2=insist dependem de como foi definida a VPN na Azure.

Após acessar o arquivo IPSec secrets, adicione as informações de IPs e senha fornecidas no Firewall do Azure:

vi /etc/ipsec.secrets
# include /etc/ipsec.d/*.secrets
x.x.x.x (IP disponibilizado na nuvem da Microsoft Azure) x.x.x.x (IP valido de internet do cliente): PSK "xxxxxxx" (senha de sincronização da Microsoft Azure)

Agora as regras que devem ser adicionadas acessando o diretório:

chmod +x /etc/rc.d/rc.local
systemctl enable rc-local
vi /etc/rc.local

Os comandos do iptables abaixo devem ser feitos manualmente caso não deseje reiniciar o servidor:

/usr/sbin/iptables -I PREROUTING -p udp --sport 500 --dport 500 -j ACCEPT -t mangle
/usr/sbin/iptables -I POSTROUTING -p udp --sport 500 --dport 500 -j ACCEPT -t mangle
/usr/sbin/iptables -I OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT -t mangle
/usr/sbin/iptables -I PREROUTING -p udp --sport 500 --dport 500 -j ACCEPT -t nat
/usr/sbin/iptables -I PREROUTING -p esp -j ACCEPT -t mangle
/usr/sbin/iptables -I OUTPUT -p esp -j ACCEPT -t mangle
/usr/sbin/iptables -I POSTROUTING -p esp -j ACCEPT -t mangle
/usr/sbin/iptables -I PREROUTING -p esp -j ACCEPT -t nat
/usr/sbin/iptables -I PREROUTING -i enp0s25 -d x.x.x.x/xx -j ACCEPT -t mangle
/usr/sbin/iptables -I PREROUTING -i enp0s25 -d x.x.x.x/xx -j ACCEPT -t nat
sysctl -w net.ipv4.ip_forward=1

Acima, onde está x.x.x.x/xx, deve-se informar sub-rede/mascara da rede remota disponibilizada pela Azure.

E enp0s25 deve ser o nome da interface da rede interna do winconnection.

Por ultimo, habilite o serviço IPSec:

systemctl enable ipsec
systemctl start ipsec

OBS.: Comandos como ipsec auto --statusjournalctl -u ipsec -f ajudam a depurar o que está acontecendo.

 

Top