Configurando uma VPN entre a Oracle Cloud Classic e Oracle Cloud OCI

INTRODUÇÃO

Neste artigo iremos abordar o processo de criação de uma VPN IPSec utilizando o libreswan para integrar um ambiente Oracle Cloud Classic e Oracle Cloud OCI, ambos localizados no datacenter de São Paulo.

Atualmente no datacenter Oracle de São Paulo não é possível ativar uma VPNaaS (VPN as a Service) diretamente entre os ambientes Oracle Cloud Classic e Oracle Cloud OCI. Por isso temos a necessidade de utilizar uma ferramenta para implementação e configuração de conexões VPN IPSec. Em nosso artigo utilizaremos o libreswan.

O libreswan é um software open source para implementação de VPN baseado em (IPsec) e Internet Key Exchange (IKE). A maioria das distribuições Linux incluem o libreswan ou são compatíveis com a instalação do mesmo.

Vale destacar que o libreswan também é recomendado para a conexões entre a  Oracle Cloud e outras nuvens ou mesmo com ambientes on premisses.


Diagrama da conexão entre a Oracle Cloud Classic e Oracle Cloud OCI:

CONFIGURAÇÕES

A primeira configuração a ser feita é a criação de uma compute instance Linux no ambiente OCI para a instalação e configuração do libreswan. Para realizarmos esta configuração podemos utilizar o novo shape VM.Standard.E2.1.Micro que é um shape gratuito disponibilizado recentemente.

Desta forma, a máquina utilizada não irá gerar custos adicionais. A compute instance criada precisa ter um IP Público associado, para que seja possível fechar a conexão VPN.

Tendo em vista que o objetivo deste artigo se restringe a implementação e configuração da VPN, o processo de criação da compute instance não será detalhado.


Após a criação da máquina libreswan, é necessário editar a VNIC anexada a mesma, marcando a opção skipe Source/Destination Check. 



Concluída a edição da VNIC, será necessário criar as rotas para que a VPN possa se comunicar entre a rede do Classic e do OCI.
Para isso, serão criadas duas rotas. A rota Internet Gateway 0.0.0.0/0 para que o libreswan possa se comunicar com a VPN e a rota CIDR para o endereço da rede Classic 192.168.1.0/24.

Rede Classic:

Adição das rotas na default route table da VCN na qual a máquina libreswan foi criada.


Concluída a criação das rotas, a próxima etapa é a criação das regras de segurança permitindo o tráfego de entrada UDP na porta 500 para o Internet Key Exchange (IKE), UDP na porta 4500 para o IKE Nat Transverssal, IPsec para o Encapsulated Security Payload (ESP), TCP em todas as portas para o CIDR 192.168.1.0/24 (Rede Classic) e saída para internet 0.0.0.0/0.

Regras de entrada:

Regras de saída:


O próximo passo a ser executado é a criação da VPNaaS no ambiente Classic. Pra isso, vamos em network, VPNaaS, VPN Connections, clicar em Create VPN Connection.


Devem ser preenchidos os seguintes itens e posteriormente clicar em create VPN Connection.

Name:VPNaaSOCI
IP Network:CIDR para a rede IP do Classic
Customer Gateway: IP público da instância OCI do libreswan
Customer Reachable Routes: OCI VCN CIDR
Pre-shared key: pwdvpnociclassic

Name:VPNaaSOCI
IP Network:192.168.1.0/24
Customer Gateway: 152.67.35.47
Customer Reachable Routes: 172.0.0.0/24
Pre-shared key: pwdvpnociclassic


Após criar a VPNaaS no Classic, a mesma não ficará com status Up/Ready pois ainda é preciso instalar e configurar o libreswan. Porém precisamos do IP Público da VPNaaS Classic, para podermos configurar no libreswan.


Agora vamos acessar a máquina libreswan via ssh e realizar a instalação do aplicativo libreswan. Para isso basta utilizar o comando yum -y install libreswan.


Neste artigo a versão instalada foi a 4.14.35-1902.5.2.2, porém o procedimento para versões anteriores é o mesmo.


Feita a instalação do libreswan, iremos realizar a configuração do mesmo. Inicialmente, precisaremos adicionar as linhas abaixo no arquivo /etc/sysctl.conf.

net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens3.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.ens3.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.ens3.rp_filter = 0
net.ipv4.conf.ip_vti0.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0


Após o ajuste, devemos executar o comando o comando sysctl -p para que as alterações realizadas sejam aplicadas.


Também iremos realizar a liberação das regras no firewall para que o libreswan possa trafegar.

firewall-cmd --zone=trusted --add-port=500/udp --permanent
firewall-cmd --zone=trusted --add-port=4500/udp --permanent
firewall-cmd --zone=trusted --add-protocol=50 --permanent
firewall-cmd --zone=trusted --add-protocol=51 --permanent 

Agora devemos ajustar as configurações do /etc/ipsec.conf, adicionando os dados conforme abaixo. Vale ressaltar que a identação deve ser mantida para que não apresente erro na inicialização.

config setup
          plutoopts="--perpeerlog"
          protostack=auto
          nat_traversal=yes
include /etc/ipsec.d/*.conf


O próximo passo é realizar as configurações da VPN com o Classic, para isso, criaremos o arquivo /etc/ipsec.d/VPNaaS.conf

vi /etc/ipsec.d/VPNaaS.conf
    conn vpnaas1
         authby=secret
         auto=start
         pfs=yes
         leftid=144.22.68.211     #OCI-C VPNaaS IPSec IP Pubico
         left=144.22.68.211       #OCI-C VPNaaS IPSec IP Publico
         leftsubnets={192.168.1.0/24} #OCI-C IP-Network CIDR
         right=172.0.0.2            #OCI Libreswan local VPC endereço interno
         rightid=152.67.35.47    #OCI Libreswan IP Publico
         rightsubnet=172.0.0.0/16    #OCI VPC CIDR

Por último, é preciso criar e configurar o arquivo /etc/ipsec.d/VPNaaS.secrets, que conterá a Pre-shared Key utilizada pela VPN.

#OCI-C_VPNaaS-IP-Publico  OCI_LibreSWAN-IP-Publico   :   PSK    "Secret Key(VPNaaS Pre-shared key)"
144.22.68.211 152.67.35.47   :    PSK    "pwdvpnociclassic"


Concluídas as configurações, podemos realizar um restart do ipsec na máquina libreswan e posteriormente um verify para validar as configurações.


Para configurar a inicialização automática do libreswan, basta executar comando systemctl enable ipsec.


É possível verificar o status da conexão através do comando ipsec auto --status.


Podemos atualizar a pagina da VPNaaS Classic e validar que agora a conexão está UP/Ready. Também é possível validar que os endereços estão pingando normalmente de uma rede para outra.


Ping da rede 192.168.1.0/24 para 172.0.0.0/16.


Ping da rede 172.0.0.0/16 para 192.168.1.0/24

Desta forma, concluímos a configuração e implementação da VPN entre os ambientes Oracle Cloud Classic e Oracle Cloud OCI.

Fonte:
https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/libreswan.htm

Comentários