Como criar uma conexão vpn client to site com OpenVPN

Para fazer uma conexão VPN precisamos instalar um servidor que habilite essa função.

Seguiremos os seguintes passos:

1 – Instalar um servidor centos ou redhat 8 dentro de sua área do cloud. Esse servidor já deverá estar com o IP Flutuante e com a porta de conexão do openvpn aberta no grupo de segurança.

Portas abertas no Grupo de Segurança:

Instalar pacote dnf

$ sudo yum install -y dnf

2 – Adicionar o repositório EPEL no servidor

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

$ sudo dnf repolist epel
$ sudo dnf --disablerepo="*" --enablerepo="epel" list available

3 – Instalar o git

$ sudo dnf -y install git

4 – Clonar o repositório openvpn-install

$ cd ~
$ git clone https://github.com/Nyr/openvpn-install.git

5 -Rodar o Instalador OpenVPN

$ cd openvpn-install
$ chmod +x openvpn-install.sh
$ sudo ./openvpn-install.sh

Nesse ponto alguns dados deverão ser configurados:

        • Endereço IP interno
        • Endereço IP externo
        • Protocolo OpenVpn a ser utilizado
        • Porta OpenVpn
        • Servidor DNS
        • nome do primeiro cliente

A configuração principal é colocada em: /etc/openvpn/server.conf

Essa instalação gera uma outra interface de rede. Para ver rodar:

$ ip addr | grep tun0


6 – Após a instalação pode-se gerar as chaves para os usuários em um arquivo .ovpn

$ sudo ./openvpn-install.sh

Looks like OpenVPN is already installed.
 What do you want to do?
    1) Add a new user
    2) Revoke an existing user
    3) Remove OpenVPN
    4) Exit
 Select an option [1-4]: 1
 Tell me a name for the client certificate.
 Please, use one word only, no special characters.
 Client name: user1
 Using SSL: openssl OpenSSL 1.1.1 FIPS  11 Sep 2018
 Can't load /etc/openvpn/easy-rsa/pki/.rnd into RNG
 139966006863680:error:2406F079:random number generator:RAND_load_file:Cannot open file:crypto/rand/randfile.c:90:Filename=/etc/openvpn/easy-rsa/pki/.rnd
 Generating a RSA private key
 ……………………………………………………………………..+++++
 ……………………………………….+++++
 writing new private key to '/etc/openvpn/easy-rsa/pki/private/user1.key.SeCj8ncgaH'
 Using configuration from /etc/openvpn/easy-rsa/pki/safessl-easyrsa.cnf
 Can't load /etc/openvpn/easy-rsa/pki/.rnd into RNG
 139828629223232:error:2406F079:random number generator:RAND_load_file:Cannot open file:crypto/rand/randfile.c:90:Filename=/etc/openvpn/easy-rsa/pki/.rnd
 Check that the request matches the signature
 Signature ok
 The Subject's Distinguished Name is as follows
 commonName            :ASN.1 12:'user1'
 Certificate is to be certified until Mar 17 16:48:32 2029 GMT (3650 days)
 Write out database with 1 new entries
 Data Base Updated
 Client user1 added, configuration is available at: /root/user1.ovpn
$ sudo ls /root/ | grep ovpn
computingforgeeks.ovpn
user1.ovpn



 

Esse arquivo deve ser passado para o usuário para poder se conectar com o cliente openvpn.

O client deve ser baixado em:

https://openvpn.net/community-downloads/

Após instalar utilizar a chave para fazer a conexão remota.

Alterar Flavor

No cloud pode-se alterar os flavors das instâncias que estão em funcionamento. Para tal utiliza-se os seguintes passos:

  1. Logar no cloud com o dominio/login/senha fornecidos
  2. Clicar em computação –> Instâncias
  3. Na instância escolhida, no menu do lado direito dela escolher a opção redimensionar instância.
  4. Escolher o novo Flavor
  5. Clicar em redimensionar
  6. Clicar em Confirma redimensionamento/migração (OBS: Clique apenas uma vez).

Como subir uma imagem customizada

Você poderá subir uma imagem customizada para sua biblioteca de imagens. Para isso é importante que a imagem customizada esteja no formato qcow2.

  1. Acessar o Painel do Cloud
  2. Clique em computação e depois em imagens
  3.  Clique em Criar imagem
  4. Coloque um nome.
  5. Em arquivo, Navegar,  aponte para o local onde se encontra a imagem.
  6. Coloque formato qcow2
  7. Coloque visibilidade Privado
  8. Clique em criar imagem
  9. Após a criação a imagem já poderá ser utilizada para criar instâncias.

 

Para converter imagem de outro formato para o qcow2 deve-se utilizar o pacote qemu-utils no Linux.

Para instalar qemu-img on Debian or Ubuntu:

$ sudo apt-get install qemu-utils

Para Instalar qemu-img on CentOS, Fedora or RHEL:

$ sudo yum install qemu-img

Você pode checar a lista de imagens suportadas no  qemu-img pode-se executar:

$ qemu-img -h | tail -n1

Como mostrado acima, esta ferramenta suporta os formatos VDI e VMDK .

Para converter Imagem VDI para  imagem  QCOW2:

$ qemu-img convert -O qcow2 input.vdi output.qcow2

para converter Imagem VMDK para imagem QCOW2 :

$ qemu-img convert -O qcow2 input.vmdk output.qcow2
Maiores informações em:
https://docs.openstack.org/image-guide/convert-images.html

Snapshots

Os Snapshots criam pontos de restauração no servidor, caso ocorra algum problema numa aplicação ou seja necessário guardar os dados antes de uma atualização crítica, é possível restaurar o sistema, deixando-o exatamente como era no momento em que foi criado o Snapshot.

  • As informações do snapshots são armazenadas em uma área separada, nesse caso você pode excluir a instância que foi gerado o Snapshot sem se preocupar em perder arquivos ou configurações feitas ou com o Flavor ( Sabor ) escolhidos.
  • NÃO é possível restaurar um Snapshot com um Flavor ( Sabor ) com espaço em disco menor da instância que foi gerada a imagem ( Motivo: com espaço em disco menor existe a possibilidade de perda de dados ).
  • Para criar o Snapshot clique em Computação  depois em Instâncias.
  • Do lado direito da instância que será copiada, clique em Criar Snapshot.

 

  • Todos os Snapshots são alocados nas Imagens da aba Computação.
  • Para restaurar o Snapshot basta clicar no botão Ativar do lado do Snapshot a ser restaurado e será redirecionado para a tela de Disparar Instância:

Flavors/Sabores

Flavors ou sabores são as combinações de CPU e Memória que o cliente final poderá utilizar para criar suas instâncias.

Obs: Quando aparecer uma exclamação amarela como acima é que seu limite atual não permite o uso desse flavor.

Criar Grupo de Segurança

No Cloud Openstack os Grupos de segurança funcionam como firewall de portas. Para que uma instância possa ser acessada remotamente deve-se associar um grupo de segurança para essa instância com as portas permitidas configuradas adequadamente.

Para criarmos um grupo de segurança:

  1. Logar no cloud
  2. Clicar em redes e em seguida em grupos de segurança
  3. Clicar em criar grupo de segurança
  4. Adicionar um nome e em seguida criar Grupo de Segurança

Clicar em Administrar regras e depois em adicionar regras.

No exemplo abaixo estamos adicionando a porta 22 para permitir acesso ssh.

Após inserir todas as regras teremos o grupo de segurança completo que poderá ser associado a uma instância.

Exemplo liberando portas 22,80,443 e um range entre 5000-5100