Introdução
O OpenVPN é uma VPN segura que utiliza SSL (Secure Socket Layer) e oferece uma ampla variedade de recursos. Neste guia, abordaremos o processo de instalação do OpenVPN no Ubuntu 16 utilizando a autoridade de certificação hospedada easy-rsa.
Instalar
Para começar, precisamos de alguns pacotes instalados:
sudo su
apt-get update
apt-get install openvpn easy-rsa
Autoridade de Certificação
O OpenVPN é uma VPN SSL, o que significa que atua como Autoridade de Certificação para criptografar o tráfego entre as duas partes.
Configuração
Podemos começar com a configuração da Autoridade de Certificação do servidor OpenVPN, executando o seguinte comando:
make-cadir ~/ovpn-ca
Agora podemos mudar para nosso novo diretório criado:
cd ~/ovpn-ca
Configurar
Abra o arquivo com o nome varse dê uma olhada nos seguintes parâmetros:
export KEY_COUNTRY="US"
export KEY_PROVINCE="NJ"
export KEY_CITY="Matawan"
export KEY_ORG="Your Awesome Organization"
export KEY_EMAIL="me@your_awesome_org.com"
export KEY_OU="YourOrganizationUnit"
E edite-os com seus próprios valores. Também precisamos procurar e editar a seguinte linha:
export KEY_NAME="server"
Construir
Agora podemos começar a construir nossa Autoridade de Certificação executando o seguinte comando: 
./clean-all
./build-ca
Esses comandos podem levar alguns minutos para serem concluídos. 
Chave do servidor
Agora, podemos começar a criar a chave do servidor executando o seguinte comando:
./build-key-server server
Enquanto o servercampo deve ser substituído KEY_NAME, definimos o varsarquivo anteriormente. No nosso caso, podemos manter server.
O processo de criação da chave do servidor pode fazer algumas perguntas, como a expiração de si mesma. Respondemos a todas essas perguntas com y.
Chave forte
Na próxima etapa, criamos uma Diffie-Hellmanchave forte que será usada durante a troca de nossas chaves. Digite o seguinte comando para criar um:
./build-dh
HMAC
Agora podemos criar uma assinatura HMAC para fortalecer a verificação da integridade do TLS do servidor:
openvpn --genkey --secret keys/ta.key
Gere uma chave de cliente
./build-key client
Depois de criar com êxito nossa própria Autoridade de Certificação, podemos começar copiando todos os arquivos necessários e configurando o próprio OpenVPN. Agora, vamos copiar as chaves e os certificados gerados para o diretório OpenVPN:
cd keys
cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
cd ..
Posteriormente, podemos copiar um exemplo de arquivo de configuração do OpenVPN para o diretório OpenVPN, executando o seguinte comando:
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | tee /etc/openvpn/server.conf
Edite a configuração
Agora podemos começar a editar nossa configuração para atender às nossas necessidades. Abra o arquivo /etc/openvpn/server.confe remova o comentário das seguintes linhas:
push "redirect-gateway def1 bypass-dhcp"
user nobody
group nogroup
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
tls-auth ta.key 0
Também precisamos adicionar uma nova linha à nossa configuração. Coloque a seguinte linha abaixo da tls-authlinha:
key-direction 0
Permitir encaminhamento
Como queremos permitir que nossos clientes acessem a Internet por meio de nosso servidor, abrimos o seguinte arquivo /etc/sysctl.confe descomente esta linha:
net.ipv4.ip_forward=1
Agora temos que aplicar as alterações:
sysctl -p
NAT
Para fornecer acesso à Internet aos nossos clientes VPN, também precisamos criar uma regra NAT. Esta regra é uma linha curta, que se parece com isso:
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE
Começar
Agora podemos iniciar nosso servidor OpenVPN e permitir que os clientes se conectem, digitando a seguinte chave:
service openvpn start
Conclusão
Isso conclui nosso tutorial. Aproveite o seu novo servidor OpenVPN!