Instalar Open VPN em Linux

Vamos instalar o servidor Open VPN em uma máquina Linux com o Ubuntu. Além disso, vamos utilizar  o TLS Crypt v2 possibilita o fornecimento de uma chave tls-crypt específica para cada cliente. 

Ao final do artigo, apresentaremos também a instalação do Open VPN no cliente e a configuração do cliente VPN. 

Instalação do Open VPN 

Inicialmente vamos instalar o openvpn. Dependendo da data da instalação o repositório já pode conter a versão openvpn ou maior.

Em nosso caso, ainda não está no repositório conforme podemos verificar. 

sudo apt-get update && sudo apt-get install openvpn 

sudo apt install easy-rsa 

Verificando a Versão do Open VPN 

Para verificar a versão podemos usar o comando abaixo: 

openvpn --version 

Criando um diretório para o easy-rsa

Agora vamos criar um diretório para o ease-rsa e vamso criar links simbólicos. Usaremos links simbólicos para que futuras atualizações possam ser replicadas para nossas configurações.

Inicialmente vamos sair do modo root do terminal. Para isso, podemos dar o comando exit.

exit

Agora vamos criar o diretório easy-rsa

mkdir ~/easy-rsa

Criando o link simbólico para /usr/share/easy-rsa/* .

ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Agora, vamos acessar o diretório que criamos e vamos verificar se os links simbólicos já estão lá.

cd ~/easy-rsa/

ls

Inicializando o PKI

Agora vamos inicializar o PKI dentro do diretório que acabamos de criar.

cd ~/easy-rsa/

./easyrsa init-pki

Veremos uma mensagem como a mostrada abaixo. Essa mensagem mostra que estamos prontos para criar a CA Certificate Authority.

A CA será a Autoridade Certificadora responsável por validar os certificados.

Observação: Neste tutorial, estamos criando a CA dentro do servidor VPN por uma questão de simplicidade e praticidade.

No entanto, a CA pode estar em um outro servidor separado.

Além disso, existem argumentos relacionados à segurança que pode motivar a separar um servidor CA somente para ter a função de validar certificados.

Criando a CA Certificate Authority

Ao criar a CA teremos a opção de preencher alguns campos. O campo principal é o common name .

No campo “common name”, vamos pressionar ENTER.

Você pode escolher um nome para o “common name” como por exemplo “VPN_CA”. No entanto, aqui usamos apenas ENTER.

Além disso vamos usar a opção “nopass” para evitar que tenhamos que usar password quando formos assinar um certificado.

Se desejar, você pode optar por requisitar um password toda vez que assinar, apenas retire a opção “nopass”.

Para criar a CA, vamos usar o comando abaixo:

./easyrsa build-ca nopass

Após o comando, teremos uma mensagem semelhante a abaixo:

Podemos verificar os novos arquivos criados: 

ls ~/easy-rsa/pki  

Podemos verificar que existe agora um arquivo chamado ca.crt .
Futuramente, vamos utilizar esse arquivo. 

Podemos também verificar a chave privada da nossa CA (ca.key). Usando o comando abaixo: 

ls ~/easy-rsa/pki/private 

Criando a chave do servidor OpenVPN

Para criar a chave do servidor OpenVPN, vamos entrar no diretório ~/easy-rsa/ e usar o comando para cirar a chave:

cd ~/easy-rsa/

./easyrsa build-server-full vpn_server nopass

Após digitar esse comando, você verá um resultado semelhante ao apresentado na figura abaixo. Digite yes e pressione ENTER.

Ao final, você vai ver que o certificado para o servidor VPN foi criado.

Agora ao listar o conteúdo do diretório ~/easy-rsa/pki/private/ podemos ver que temos uma nova chave = “vpn_server.key”.

ls ~/easy-rsa/pki/private

Podemos também verificar o certificado criado para o servidor VPN. Para isso, podemos usar o comando abaixo:

ls ~/easy-rsa/pki/issued

Gerando o parâmetro Diffie hellman

Para gerar os parâmetros Diffie hellman vamos para o diretório ~/easy-rsa/ e em seguida vamos executar o comando para gerar o DH.

~/easy-rsa/easyrsa gen-dh

A figura abaixo mostra o resultado após executar o comando para gerar o Diffie hellman.

Criando um TLS Crypt v2 para o OpenVPN

Usaremos o TLS Crypt v2 possibilita o fornecimento de uma chave tls-crypt específica para cada cliente.

Dessa forma, podemos reduzir os danos caso a chave tls-crypt de um cliente venha a ser comprometida.

Isso porque, se um cliente tivesse sua tls-crypt exposta, apenas a tls-crypt desse cliente representaria um risco de segurança.

Vale lembrar que --tls-auth e tls-crypt usam uma chave de grupo pré-compartilhada, que é compartilhada entre todos os clientes e servidores em uma implantação OpenVPN.

Dessa forma, se algum cliente for comprometido, o invasor terá acesso a essa chave compartilhada e consequentemente prejudicará a segurança.

Criando a chave TLS Crypt v2 para o servidor Open VPN

Agora vamos criar a chave TLS Crypt v2 que será usada pelo servidor Open VPN. Vamos criar a chave no diretório “~/easy-rsa/pki/private” com o comando abaixo.

openvpn --genkey tls-crypt-v2-server ~/easy-rsa/pki/private/vpn_server.pem

Caso queira, você pode verificar que foi criada uma chave vpn_server.pem no diretório “~/easy-rsa/pki/private/”.

Você pode verificar usando o comando :

ls ~/easy-rsa/pki/private/

Configurando o servidor Open VPN

Inicialmente vamos vamos criar um arquivo com o nome de server.conf no diretório /etc/openvpn/server. Para isso, usaremos o comando abaixo.

sudo nano /etc/openvpn/server/server.conf

Nesse arquivo, vamos adicionar as linhas de configuração abaixo:

#-------------------- 
#VPN port
port 1194   

#VPN over UDP  
proto udp   

# "dev tun" will create a routed IP tunnel 
dev tun 

ca ca.crt 
cert vpn_server.crt 
key vpn_server.key   
tls-crypt-v2 vpn_server.pem 
dh dh.pem 

#network for the VPN   
server 10.8.0.0 255.255.255.0 

push "redirect-gateway autolocal" 

#DNS for Clients 
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 1.1.1.1"

#Maximum mss, for windows clients
mssfix 1350

# Maintain a record of client <-> virtual IP address 

# associations in this file.  
ifconfig-pool-persist /var/log/openvpn/ipp.txt

# Ping every 10 seconds and assume client is down if 
# it receives no response in 120 seconds. 
keepalive 10 120 

#cryptographic cipher 
cipher AES-256-GCM 

#avoid accessing certain resources on restart 
persist-key 
persist-tun 

#log of current connections  
status /var/log/openvpn/openvpn-status.log 

#log verbose level (0-9) 
verb 4 

# Notify the client when the server restarts 
explicit-exit-notify 1 
#----------------------------------------- 

Explicando as linhas de configuração do server.conf

Agora, vamos descrever as linhas de configuração usadas. Inicialmente temos a linha “port 1194” que indica a porta que o servidor usará para o OpenVPN.

Depois disso, temos a linha “proto udp” que indica que nossa VPN vai usar o protocolo da camada de transporte UDP.

Em seguida, temos a linha “dev tun” que indica que usaremos um túnel de rotas IP para a VPN.

Depois disso, vamos começar a indicar o certificado da autoridade certificadora usando a linha “ca ca.crt“, nesse caso o arquivo é o “ca.crt”.

Neste exemplo, a autoridade certificadora também está na mesma máquina do servidor VPN.

Agora vamos informar qual é o nosso arquivo que tem o certificado do servidor VPN = “cert vpn_server.crt”.

Lembre-se que criamos nosso certificado com o nome vpn_server.crt. Se você usou outro nome, lembre-se de alterar para o nome que você usou.

A próxima linha “key vpn_server.key” indica a chave que será usada pelo servidor VPN.

Além disso, vale a pena lembrar que essa chave é secreta e deve ser mantida em segredo. Em nosso exemplo, criamos a chave com o nome “vpn_server.key”.

Agora vamos usar a linha “tls-crypt-v2 server vpn_server.pem” para apontar para a chave TLS Crypt V2 do servidor OpenVPN.

Em nosso caso o nome do arquivo da chave foi o “vpn_server.pem”.

Agora vamos informar o nome do arquivo Diffie hellman = “dh dh.pem”. Em nosso caso esse arquivo está com o nome dh.pem.

A próxima linha, “server 10.8.0.0 255.255.255.0”, informa o range de IPs que serão usados na VPN. Esse range de IPs pode ser alterado para evitar que coincida com alguma rede interna de sua empresa.

A linha “push “redirect-gateway autolocal”” força a utilização da VPN como gateway.

push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 1.1.1.1” indicar que os clientes da VPN usem esses servidores DNS. Você pode trocar caso queira especificar outros servidore DNS.

mssfix 1350: Esta diretiva resolve um problema comum de conectividade relacionado ao MTU (Maximum Transmission Unit, ou Unidade Máxima de Transmissão). Principalmente em clientes que usam o Windows.

Depois temos a linha “ifconfig-pool-persist /var/log/openvpn/ipp.txt” que armazena os endereços virtuais dos clientes da VPN.

Em seguida, temos a linha “keepalive 10 120” que indica que vamos enviar um ping a cada 10 segundos para os clientes e que se o cliente ficar 120 segundos sem responder será considerado desconectado.

A próxima linha “cipher AES-256-GCM” indica qual será a cifra criptográfica usada.

As linhas “persist-key” e “persist-tun” são usadas para evitar o acesso aos recursos em caso de restart em caso de redução de privilégios.

A linha “status /var/log/openvpn/openvpn-status.log” informa onde serão armazenados os logs das conexões em andamento.

Em seguida, temos a linha “verb 4” que indica o nivel de detalhamento dos logs. Sendo que o nivel de detalhamento pode variar de 0 até 9.

A última linha , “explicit-exit-notify 1”, indica que o servidor VPN vai avisar os clientes caso tenha que ser reinicializado.

Copiando arquivos para a pasta /etc/openvpn/server

Agora que já criamos o arquivo de configuração, precisos copiar os arquivos de certificados e chaves do servidor VPN para dentro do diretório “/etc/openvpn/server/”.

Copiando o ca.crt e o dh.pem

Inicialmente vamos para o diretório “~/easy-rsa/pki/“. Depois vamos copiar o certificado da autoridade certificadora. Em nosso caso é o “ca.crt”.

sudo cp ~/easy-rsa/pki/ca.crt /etc/openvpn/server/

Em seguida vamos copiar o arquivo de Diffie hellman. Para isso, vamos copiar o arquivo dh.pem para o diretório “/etc/openvpn/server/”.

sudo cp ~/easy-rsa/pki/dh.pem /etc/openvpn/server/

Copiando o vpn_server.key e vpn_server.pem

Depois, vamos para o diretório “~/easy-rsa/pki/private/”. Dentro desse diretório, vamos copiar os arquivos, “vpn_server.key” e “vpn_server.pem“, necessários para o servidor VPN. Para a copia, usaremos o comando cp.

sudo cp ~/easy-rsa/pki/private/vpn_server.key /etc/openvpn/server/

sudo cp ~/easy-rsa/pki/private/vpn_server.pem /etc/openvpn/server/

Copiando o vpn_server.crt

Agora vamos para o diretório onde temos o certificado do servidor open vpn. Nesse caso é o diretório “~/easy-rsa/pki/issued/”. Agora, vamos copiar o arquivo “vpn_server.crt” para o diretório “/etc/openvpn/server/”.

sudo cp ~/easy-rsa/pki/issued/vpn_server.crt /etc/openvpn/server/

Permitindo o encaminhamento no servidor Open VPN

Até agora, fomos muito bem na configuração do servidor Open VPN.

Portanto, precisamos habilitar o encaminhamento na máquina que será servidora do Open VPN. Para isso, vamos inserir uma linha no arquivo /etc/sysctl.conf.

Dessa forma, vamos usar o comando abaixo para inserir a linha pelo comando:

sudo nano /etc/sysctl.conf

Em seguida vamos adicionar a linha no final do arquivo:

net.ipv4.ip_forward = 1

Você pode me falar: Juliana essa linha já está no arquivo. A resposta é sim. No entanto, na maioria dos sistemas essa linha vai estar comentada, principalmente se você nunca configurou o servidor para encaminhar pacotes.

Dessa forma, se desejar pode descomentar a linha ao invés de inserir a linha “net.ipv4.ip_forward = 1” .

Agora vamos recarregar o arquivo usando o comando :

sudo sysctl -p

Após digitar o comando acima, podemos ver um resultado semelhante ao da figura abaixo:

Configurando o servidor VPN para fazer NAT

Depois de toda a configuração inicial, precisamos assegurar que nosso servidor VPN faça NAT corretamente.

Isso porque, as conexões dos clientes serão roteadas por ele e usarão um IP diferente do IP da rede do servidor VPN.

Dessa forma, precisamos criar algumas regras de NAT no IPTABLES.

Inicialmente precisamos verificar qual é a interface do servidor VPN que encaminha dados para o default gateway.

Para isso, vamos usar o comando abaixo:

ip route list default

A figura acima mostra que a interface de nosso servidor VPN que está fazendo o roteamento padrão é a enp0s3 .

Portanto vamos usar a interface “enp0s3” . No seu caso, use o nome da interface que aparecer no comando “ip route list default”.

Inserindo as regras de NAT e redirecionamento para o Open VPN

Se o seu sistema operacional não tem o UFW “Uncomplicated Firewall”, instale-o com o comando abaixo.

sudo apt install ufw

Agora vamos editar o arquivo que faz a leitura preliminar das regras do firewall. Para isso vamos editar o arquivo “/etc/ufw/before.rules”.

Então, vamos usar o comando abaixo:

sudo nano /etc/ufw/before.rules

Dentro desse arquivo “before.rules”, vamos adicionar as linhas abaixo:

*nat
:POSTROUTING ACCEPT [0:0] 
-A POSTROUTING -s 10.8.0.0/16 -o enp0s3 -j MASQUERADE 
COMMIT

A figura acima demonstra que devemos inserir essas linhas de configuração no início do arquivo “before.rules”.

Dessa forma, essas linhas que inserimos vão permitir o NAT em nosso servidor VPN.

Importante dizer que aqui devemos colocar a rede que estamos usando para VPN. Dessa forma, em nossas configurações usamos a rede “10.8.0.0/16”.

Além disso, vamos especificar aquela interface que liga o servidor VPN ao default gatewayenp0s3”.

Editando o “/etc/default/ufw”

Agora vamos editar o arquivo “/etc/default/ufw” e alterar uma linha para permitir o redirecionamento.

Abaixo, temos a configuração alterada:

sudo nano /etc/default/ufw

Para isso vamos encontrar a linha “DEFAULT_FORWARD_POLICY=”DROP” “ e vamos alterar para DEFAULT_FORWARD_POLICY=”ACCEPT”.

DEFAULT_FORWARD_POLICY=”ACCEPT”

Permitindo acesso ao servidor Open VPN

Agora, vamos criar uma regra para permitir acesso na porta do servidor Open VPN. Em nosso caso, nosso servidor está operando na porta 1194. Portanto vamos usar a regra abaixo para permitir acesso UDP na porta 1194:

sudo ufw allow 1194/udp

Reiniciando o Firewall

Depois de alterar as linhas vamos reiniciar o Firewall. Para isso vamos usar os comandos abaixo:

sudo ufw disable

sudo ufw enable

Inicializando o servidor Open VPN

Vamos inicializar o servidor Open VPN. Para isso, vamos executar o comando abaixo:

sudo systemctl start openvpn-server@server.service

Em seguida vamos verificar se o servidor inicializou corretamente com o seguinte comando:

sudo systemctl status openvpn-server@server.service

A figura abaixo mostra o resultado do status do servidor OpenVPN.

Para garantir que o servidor OpenVPN inicie toda vez que a máquina inicializar, precisamos digitar o comando abaixo.

sudo systemctl enable openvpn-server@server.service

Configurando o cliente Open VPN

Depois de configurarmos o servidor Open VPN, vamos iniciar a configuração do cliente Open VPN.

Para isso vamos configurar um cliente hipotético chamado Alice. E configuraremos uma outra máquina onde o cliente Alice vai estar usado.

Vale lembrar que estamos usando máquinas virtuais e rede virtualizada para demonstrar a configuração do OpenVPN.

No entanto, o mesmo procedimento se aplica para máquinas que estejam usando IPs públicos.

Além disso, optamos por usar um cenário virtualizado para que nossos leitores possam replicar o cenário como prova de conceito.

Criando e assinando o certificado do cliente OpenVPN

Para criar o certificado do cliente Open VPN , vamos entrar no diretório “~/easy-rsa”, dentro do servidor Open VPN. Em seguida, vamos digitar o comando abaixo:

cd ~/easy-rsa/

./easyrsa gen-req Alice nopass

Lembre-se de pressionar ENTER quando perguntar se deseja usar o Common Name.

Vale lembrar que estamos usando como exemplo um cliente com o nome Alice. Certamente, você fará alterações para os nomes dos seus clientes.

Depois vamos assinar o certificado do cliente Open VPN , utilizando o o comando abaixo:

cd ~/easy-rsa/

./easyrsa sign-req client Alice

Confirme a operação com “yes”.

Criando a chave TLS Crypt v2 para o cliente

Agora vamos criar a TLS Crypt v2 que será usada pelo cliente.

Nesse tutorial, vamos criar uma chave que será usada pelo cliente Alice.

Para isso, dentro do servidor Open VPN, vamos entrar no diretório ~/easy-rsa/pki/ .

cd ~/easy-rsa/pki/

Em seguida, vamos digitar o comando abaixo:

openvpn --tls-crypt-v2 private/vpn_server.pem --genkey tls-crypt-v2-client private/Alice.pem

Podemos verificar que a chave para Alice foi criada dentro do diretório ~/easy-rsa/pki/private/.

ls ~/easy-rsa/pki/private/

Preparando os arquivos de clientes Open VPN

Para configurar o cliente open vpn, vamos precisar criar um diretório onde vamos armazenar os arquivos dos clientes da VPN.

Para isso vamos usar o comando abaixo:

mkdir ~/vpn_clients

Dentro desse diretório vamos criar subdiretórios para cada cliente.

Em nosso caso, temos o cliente Alice. Então vamos criar um subdiretório alice.

cd ~/vpn_clients

mkdir alice

Agora vamos copiar os arquivos ca.crt e os outros arquivos da Alice para o diretório “~/vpn_clients/alice”.

O primeiro arquivo é o ca.crt que está no “~/easy-rsa/pki/” . Então vamos usar o comando abaixo

cd ~/easy-rsa/pki/

cp ca.crt ~/vpn_clients/alice

Agora vamos copiar os arquivos “.crt” e “.key” do cliente. Para isso, vamos para o diretório “~/easy-rsa/pki/issued/”.

cd ~/easy-rsa/pki/issued/

Em seguida vamos copiar o arquivo de certificado de Alice “.crt” para o diretório que criamos para o cliente Alice.

cp Alice.crt ~/vpn_clients/alice

Agora vamos copiar a chave de Alice “.key” e “.pem”. Para isso, vamos para o diretório “~/easy-rsa/pki/private/”.

cd ~/easy-rsa/pki/private/

Depois vamos copiar a chave de Alice “Alice.key” e “Alice.pem” para o diretório da Alice.

cp Alice.key ~/vpn_clients/alice

cp Alice.pem ~/vpn_clients/alice

Agora vamos para o diretório da Alice:

cd ~/vpn_clients/alice

Em seguida vamos dar um comando ls para verificar se os arquivos estão lá.

ls
open vpn client files
open vpn client files

Criando o arquivo OVPN do Open VPN

Agora vamos criar o arquivo “make_client_ovpn.sh” dentro do diretório da Alice.

Esse arquivo é um script que vai facilitar nossa vida no momento de configurar os clientes.

Obviamente, você poderia digitar manualmente as configurações no arquivo “.ovpn” dos clientes. No entanto, aqui sugerimos o script para automatizar a tarefa.

cd ~/vpn_clients/alice

nano make_client_ovpn.sh

Em seguida, vamos copiar e colar as linhas abaixo:

#!/bin/bash 

# 1 argument = Client_identifier
cat <(echo -e 'client') \
<(echo -e 'proto udp') \
<(echo -e 'dev tun') \
<(echo -e 'remote 127.0.0.1 1194') \
<(echo -e 'resolv-retry infinite') \
<(echo -e 'nobind') \
<(echo -e 'persist-key') \
<(echo -e 'persist-tun') \
<(echo -e 'remote-cert-tls server') \
<(echo -e 'cipher AES-256-GCM') \
<(echo -e '#user nobody') \
<(echo -e '#group nobody') \
<(echo -e 'verb 3') \
    <(echo -e '<ca>') \
    ca.crt \
    <(echo -e '</ca>\n<cert>') \
    ${1}.crt \
    <(echo -e '</cert>\n<key>') \
    ${1}.key \
    <(echo -e '</key>\n<tls-crypt-v2>') \
    ${1}.pem \
    <(echo -e '</tls-crypt-v2>') \
    > ${1}.ovpn 

 

Explicando as linhas da configuração

Agora, vamos explicar o significado dessas linhas de configuração do cliente Open VPN:

“client” indica que é um cliente Open VPN.

“proto udp” indica que vai usar o protocolo UDP

“dev tun” indica que vai usar túnel IP

“remote” 127.0.0.1 1194″ indica o IP do servidor Open VPN e a porta que será usada. No seu caso, assumindo que você vai usar a VPN na Internet, você deve verificar qual o IP público do seu servidor VPN.

“resolv-retry infinite” Indica que vai ficar tentando resolver o nome do servidor VPN

“nobind” indica não vai usar uma porta específica.

“persist-key” e “persist-tun” permite preservar estado das conexões em caso de reinicialização.

“remote-cert-tls server” indica o tls do servidor

“cipher AES-256-GCM” indica a cifra de criptografia usada

“#user nobody” e “#group nobody” Redução de privilégios em clientes não Linux. Remova o “#” se estiver usando um cliente em uma máquina que não use o sistema operacional Linux.

“verb 3” indica o nível de detalhamento dos logs.

O resto do script indica que vamos ler os arquivos “${1}.crt” + “${1}.key” + “${1}.pem” , sendo o “${1}” o nome de identificação que você designou para o cliente. Esse identificador do cliente é primeiro argumento que vamos passar para nosso script.

Executando o script

Depois de criado o arquivo make_client_ovpn.sh, vamos torná-lo executável. Para isso vamos usar o comando abaixo:

chmod +x make_client_ovpn.sh

Depois disso vamos executar o arquivo utilizando o “./” e seguido do nome de identificação do cliente. No nosso caso, o cliente é a Alice.

./make_client_ovpn.sh Alice

Você vai perceber que foi criado um arquivo “.ovpn” dentro da pasta da Alice. Pode verificar usando o comando “ls”.

ls
open vpn client script
open vpn client script

Enviando o arquivo OVPN para o cliente

Agora vamos copiar o arquivo Alice.ovpn para o computador do cliente.

Para isso, podemos usar diversas formas para copiar como por exemplo SFTP, email, pendrive.

(Opcional)Vamos usar o netcat para trasnferir o arquivo Alice.ovpn.

Para isso vamos iniciar um servidor netcat na máquina que vai receber o arquivo Alice.ovpn. Para isso vamos usar o comando abaixo:

nc -vnl -w 2 8888 > Alice.ovpn

Esse comando informa que o computador vai ouvir na porta 8888 e vai jogar o conteúdo recebido dentro do arquivo Alice.ovpn.

Agora vamos para a máquina servidor VPN e vamos para a pasta da Alice. Em seguida vamos digitar o seguinte comando:

nc -vn 10.0.2.15 8888 < Alice.ovpn

Nesse caso estamos enviando o conteúdo do arquivo Alice.ovpn para a máquina 10.0.2.15 utilizando a porta TCP 8888.

Caso tenha dúvidas sobre netcat e queira se aprofundar mais, temos uma videoaula:

Editando o arquivo ovpn do cliente

Ok, uma vez copiado o arquivo. Vamos editá-lo e altear o IP da linha “remote 10.0.2.7 1194 “.

Em nosso caso, o IP do servidor VPN é o 10.0.2.7. Verifique o IP que será usado em seu ambiente.

Se estivermos usando uma máquina Linux, podemos comentar as linhas user nobody e group nobody. Para comentar a linha, use o “#”.

Instalando o openvpn no cliente

Temos uma página com a instalação do OpenVPN no cliente Linux: https://simplificandoredes.com/atualizar-cliente-openvpn-no-linux/

sudo apt-get update && sudo apt-get install openvpn

Caso a versão seja menor do que a 2.5 faça o mesmo procedimento descrito na sessão Instalando a versão mais nova do Openvpn.

Conectando o cliente na VPN

Agora vamos conectar o cliente na VPN. Em nosso caso, o cliente é a Alice. Portanto, vamos usar o comando abaixo:

sudo openvpn --config Alice.ovpn

Testando a VPN no cliente

Existem diversas formas para testar se o cliente está encaminhando seu tráfego para a VPN. No entanto, vamso usar o comando traceroute para fazer o teste.

Dessa forma, utilizando o comando traceroute para um site da internet, devemos ter um roteamento do tráfego do cliente para o servidor Open VPN.

Consequentemente, o tráfego do cliente vai ser roteado pelo servidor Open VPN para o site da internet.

Vamos usar o comando abaixo:

traceroute www.google.com
VPN test using traceroute
VPN test using traceroute

Podemos ver na figura acima que o primeiro salto está indo para o IP da VPN “10.8.0.1”.

Depois disso, o próximo salto é o default gateway do servidor Open VPN.

Dessa forma, podemos demonstrar que o tráfego já está sendo roteado do cliente para o servidor Open VPN.

Juliana Mascarenhas

Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer

Tem algum comentário ou dúvida? Comenta lá no canal:  Simplificandoredes.

Referências

https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos

https://community.openvpn.net/openvpn/wiki/HOWTO

https://github.com/OpenVPN/easy-rsa/blob/master/README.quickstart.md

https://openwrt.org/docs/guide-user/services/vpn/openvpn/server

https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-a-certificate-authority-ca-on-ubuntu-20-04

https://github.com/OpenVPN/openvpn/blob/master/doc/tls-crypt-v2.txt

https://community.openvpn.net/openvpn/ticket/1260

https://askubuntu.com/questions/1436407/ubuntu-22-10-openvpn-cannot-connect-as-a-client