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

Por Jhonata Lamim Oracle Associate e Anderson Graf Oracle Associate,

Publicado em Decembro 2019

Revisado por Juan Pablo Guizado

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:

oracle

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.

oracle

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.

oracle

oracle

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:

oracle

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

oracle

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:

oracle 

Regras de saída:

oracle

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.

oracle

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

oracle

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.

oracle

Agora vamos acessar a maquina libreswan via ssh e realizar a instalação do aplicativo libreswan.

oracle

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.

oracle

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

oracle

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

oracle

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
 
 

oracle

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
 
 

oracle

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"
 
 

oracle

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

oracle

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

oracle

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

oracle

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.

oracle

Ping da rede 192.168.1.0/24 para 172.0.0.0/16.

oracle

Ping da rede 172.0.0.0/16 para 192.168.1.0/24

oracle

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

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

Anderson Graf, Bacharel em Sistemas de Informação e MBA em Gestão de Banco de Dados Oracle. Trabalha com banco de dados Oracle desde 2009, é Oracle OCP 10g/11g/12c, OCS Linux, Database e Cloud Control. OCE Performance Tuning; OPNCS. É um entusiasta da tecnologia Oracle e autor dos blogs andersondba.com.br e oraclehome.com.br.

Jhonata Euclides Lamim, MBA em Gestão de Banco de Dados Oracle pelo Centro Universitário de Araraquara (UNIARA), Bacharel em Sistemas de Informação pelo Centro Universitário de Brusque (UNIFEBE). Consultor Oracle Sênior, atuando com Oracle desde 2010. É um entusiasta da tecnologia Oracle, autor do blog lamimdba.com.br e um dos fundadores da Exímio Soluções em TI (www.eximioti.com.br).