Procedimento de instalação e configuração do OpenVPN no FreeBSD:

1 - Atualizar o PKG e o PORTs:

# pkg update
# portsnap fetch extract 

2 - Instalar o pacote OpenVPN pelo pkg, e ativá-lo no rc.conf:

# pkg install openvpn
# /usr/local/etc/rc.d/openvpn enable
openvpn enabled in /etc/rc.conf

3 - Após a instalação, vamos criar o diretório /usr/local/etc/openvpn:

# mkdir /usr/local/etc/openvpn

4 - Feito isso, vamos copiar os arquivos de configuração de exemplo que vieram na instalação do passo 2:

# cp -r /usr/local/share/easy-rsa/ /usr/local/etc/openvpn/easy-rsa

5 - Após o passo 4, vamos entrar no diretório criado:

# cd /usr/local/etc/openvpn/easy-rsa

6 - Vamos precisar construir a infraestrutura de chaves, com o comando abaixo:

# easy-rsa init-pki

7 - Depois de executar o comando acima, você verá que foi criado um diretório com o nome de "pki". Dentro do diretório "/usr/local/etc/openvpn/easy-rsa" você verá um arquivo chamado vars.example, vamos precisar copiá-lo e editá-lo:

# cp vars.example vars

– Vamos precisar apagar todas as linhas existentes nesse arquivo, e acrescentar as informações abaixo, de acordo com as informações da nossa VPN:

# ee vars

set_var EASYRSA_REQ_COUNTRY     "BR"
set_var EASYRSA_REQ_PROVINCE    "Amapa"
set_var EASYRSA_REQ_CITY        "Macapa"
set_var EASYRSA_REQ_ORG         "Copyleft Certificate Co"                                   
set_var EASYRSA_REQ_EMAIL       "seuemail@example.net"
set_var EASYRSA_REQ_OU          "MundoBSD"

set_var EASYRSA_KEY_SIZE        2048
set_var EASYRSA_CA_EXPIRE       3650
set_var EASYRSA_CERT_EXPIRE     108

8 - Vamos precisar executar três comando abaixo, preste atenção ao "build-ca", pois será necessário definir uma senha, que será exigida posteriormente:

# easy-rsa build-ca
# easy-rsa build-server-full openvpn-server nopass
# easy-rsa gen-dh

– Execução de um por um:
– Será necessário confirmar com um “YES”, e inserir uma senha:

# easy-rsa build-ca

– Será necessário confirmar com um “YES”, e inserir a senha cadastrada:

# easy-rsa build-server-full openvpn-server nopass
# easy-rsa gen-dh

9 - Vamos precisar gerar o ta.key, para o comando abaixo, é preciso estar dentro do diretório /usr/local/etc/openvpn/easy-rsa:

# openvpn --genkey secret pki/ta.key

10 - Criando as chaves de clientes:

# easy-rsa build-client-full dhiemeson

11 - Após a criação dos usuários da VPN, vamos copiar as chaves do servidor. Teremos que estar dentro do diretório /usr/local/etc/openvpn/easy-rsa:

# cd /usr/local/etc/openvpn/easy-rsa
# mkdir /usr/local/etc/openvpn/keys

# cp pki/ta.key /usr/local/etc/openvpn/keys/
# cp pki/dh.pem /usr/local/etc/openvpn/keys/
# cp pki/ca.crt /usr/local/etc/openvpn/keys/
# cp pki/issued/openvpn-server.crt /usr/local/etc/openvpn/keys/
# cp pki/private/openvpn-server.key /usr/local/etc/openvpn/keys/

12 - Agora vamos configurar o servidor. Precisaremos editar o arquivo /usr/local/etc/openvpn/openvpn.conf:

# ee openvpn.conf

– Vamos apagar todas as linhas do arquivo e acrescentar as informações abaixo:

local 10.0.0.2		# IP do seu servidor

port 8080
proto udp
dev tun

# Localizacao das chaves
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/openvpn-server.crt
key /usr/local/etc/openvpn/keys/openvpn-server.key  # This file should be kept secret

dh /usr/local/etc/openvpn/keys/dh.pem

# Endereco da rede do servidor
server 10.20.30.0 255.255.255.0


# Com essa opcao voce poder tornar a VPN o gateway de Internet dos clientes com a opcao abaixo
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#push "dhcp-option DNS 108.61.10.10"
keepalive 10 120

tls-auth /usr/local/etc/openvpn/keys/ta.key 0 # This file is secret

max-clients 20

status openvpn-status.log

13 - Agora vamos iniciar o serviço para ver se está subindo normalmente:

# # /usr/local/etc/rc.d/openvpn start
Starting openvpn.

# sockstat -4l
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
root     openvpn    12720 7  udp4   10.0.0.2:8080         *:*

14 - Agora vamos efetuar a configuração do cliente (arquivo client.ovpn):

– Abra um arquivo em bloco de notas, com a seguinte configuração:

client

dev tun

proto udp

remote 10.0.0.2 8080 # IP do seu servidor e porta configurada

resolv-retry infinite

nobind

persist-key
persist-tun

# Seus arquivos de conexão

ca ca.crt
cert dhiemeson.crt
key dhiemeson.key

remote-cert-tls server

tls-auth ta.key 1

cipher AES-256-CBC

verb 3

15 - No passo 10, criamos as chaves do cliente. Para acessar de um computador remoto, você precisará dos arquivos criados do cliente, que são os listados abaixo e, também, o client.ovpn, criado no passo anterior:

/usr/local/etc/openvpn/easy-rsa/pki/private/dhiemeson.key
/usr/local/etc/openvpn/easy-rsa/pki/ca.crt
/usr/local/etc/openvpn/easy-rsa/pki/issued/dhiemeson.crt
/usr/local/etc/openvpn/easy-rsa/pki/ta.key

15 - De posse de todos os arquivos, baixe o cliebte para windows ou linux do OpenVPN e configure sua conexão e faça os testes: