Um dos recursos que ainda não está presente no OCI é a capacidade de gerar uma VPN site-to-client o que facilitaria bastante o acesso em localidades que não possuem um appliance para fechar a VPN usando a VPNaaS (Serviço de VPN gratuito que a Oracle oferece) ou outro fornecedor no OCI, dando uma estudada em alternativas, acabei encontrando o OpenVPN AS que nada mais é que uma máquina rodando o software openvpn com uma interface Web que facilita o seu gerenciamento
A melhor parte é que ele é gratuito (até o momento que estou escrevendo esse post) para o uso de até duas conexões simultâneas, bastando a você pagar somente a infra onde ele vai rodar, ou não pagar caso use o Shape Micro, abaixo mostro os passos para o deploy dele, por favor não usem o compartimento root para fazer deploy de sua infra, estou usando aqui por se tratar de um ambiente de teste.
Você pode fazer o deploy tanto pelo marketplace (aqui) ou acessando seu dashboard e indo na opção de Marketplace, o deploy do OpenVPN é na modalidade “Stack” que cria todos os recursos (rede, regras, vms, etc) necessários para a execução do software, no background ele roda scripts terraform para isso.
Após clicar em Launch Stack, você pode dar um nome ao Stack que vai ser criado, aqui vou usar o nome OPENVPN:
Clicando em Next, você precisa colocar o nome da VM que vai ser criada(no print está errado mas depois eu corrigi) e selecionar o shape onde ele vai ser executado, também coloque um nome de usuário e uma senha, aqui um ponto de atenção pois não podemos colocar caracteres especiais na senha e ela vai ser exibida na tela do Stack depois da criação, coloque uma senha que não vai ser a definitiva.
Caso você vá usar mais de duas conexões ao mesmo tempo, você já pode colocar a sua activation key aqui.
Na parte de redes, vou usar uma VCN e subnet que já existem pois quero acessar um servidor já existente.
Nas configurações adicionais, coloque uma chave SSH para caso queira acessar a máquina depois por linha de comando:
Após isso, um resumo vai ser apresentado:
Ao aceitar a criação, um job vai ser criado para a execução dos comandos para a criação do recursos necessários:
Após a finalização do Job, você pode acessar o servidor tanto pelo endereço https://ip-publico/admin ou na tela da Stack em Application Information -> Login to administer (olha a nossa senha ali em texto puro):
Ao acessar o endereço do OpenVPN, a primeira recomendação é ir em User Permissions (do lado esquerdo) e alterar a senha do usuário que você criou:
Por se tratar de um ambiente de testes, não vou realizar nenhuma configuração mais complexa mas é possível limitar redes, acessos, quais endereços vão ser distribuídos via VPN e por ai vai.
Conectando na VPN
Após o serviço estar no ar, basta acessar o endereço https://ip-publico:943 e fazer login com seu usuário e senha para ter acesso ao instalador do OpenVPN connect ou baixar o profile (marcado de vermelho) caso você já tenha o openvpn instalado em sua máquina:
No meu caso, por já usar o openvpn e minha máquina, fiz o download do profile e coloquei dentro da pasta config no diretório de instalação do openvpn:
Ao conectar no openvpn, você deve entrar as mesmas credenciais que usou no seu usuário:
Testando a conexão
Após ter entrado com as credenciais, o status da conexão no openvpn client vai mudar e ai você já pode testar sua conexão:
No meu ambiente, além do servidor de openvpn, possuo mais dois servidores:
E da minha máquina consigo acessar todos:
E na tela Status -> Current Users você pode acompanhar quem está conectado:
Dessa forma, agora você só precisa liberar a porta do openvpn na sua subnet e realizar o acesso através do serviço.