Instalando e configurando o OpenVPN

De Wiki Integrator do Brasil
Ir para: navegação, pesquisa
Banner-wiki-promocoes.gif





O exemplo abaixo segue com as seguintes regras:

  • O IP 191.191.191.191 é fictício e deve ser substituído pelo seu da máquina
  • O item 1) apresentado pode ter os links modificados onde, em caso de problemas, consulte o manual do OpenVPN
  • O suporte da Integrator não ensina OpenVPN tanto no lado servidor como no lado cliente. Recomendamos a documentação do serviço.


1) Dentro do VPS, baixe as bibliotecas necessárias e instale:

wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm --no-check-certificate
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm --no-check-certificate

1.1) Instalando:
rpmbuild --rebuild lzov-1.08-4.rf.src.rpm
rpm -Uvh lzo-*.rpm
rpm -Uvh rpmforge-release*
yum install openvpn -y

2) Vá ao diretório de configurações do OpenVPN e copie os arquivos necessários:

cd /etc/openvpn
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/openssl.cnf .
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/whichopensslcnf .
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/pkitool .
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/vars .v

3) Altere as permissões dos arquivos copiados:

chmod 744 *

4) Entre no arquivo abaixo, alterando os dados das variáveis de acordo com sua necessidade:
Editando/Criando o o arquivo
vi /etc/openvpn/vars

Alterando as seguintes variáveis
export KEY_COUNTRY="BR"
export KEY_PROVINCE="SP"
export KEY_CITY="SaoPaulo"
export KEY_ORG="Integrator"
export KEY_EMAIL="suporte@integrator.com.br"

5) Copie os executáveis:

cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/clean-all .
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/build-ca .
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/build-dh .
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/build-key-server .
cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/build-key .

6) Mude as permissões dos executáveis:

chmod 750 /etc/openvpn/clean-all /etc/openvpn/build-ca /etc/openvpn/build-dh /etc/openvpn/build-key-server /etc/openvpn/build-key

7) Carregue as variáveis para a sessão corrente:

source /etc/openvpn/./vars

7.1) Caso de o erro:


No /etc/openvpn/openssl-1.0.0.cnf file could be found
invocations will fail


NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/keys

7.1.1) Faça:
ln -s /etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf /etc/openvpn/openssl-1.0.0.cnf

8) Limpe as chaves preexistentes (o comando irá apagar tudo que existir no diretório /etc/openvpn/keys):

/etc/openvpn/clean-all

9) Crie o arquivo dh1024.pem, que conterá os parâmetros Diffie-Hellman, de 1024 bits. Este arquivo serve para que as máquinas troquem chaves seguras num canal inseguro, para depois trocar as chaves simétricas.

/etc/openvpn/build-dh

10) Crie um certificado para o Servidor:

/etc/openvpn/build-ca

11) Crie uma identidade digital para o servidor: Inserir aqui texto sem formatação /etc/openvpn/build-key-server server

12) Crie uma identidade digital para os clientes com o comando abaixo, onde "cliente1" é o nome do cliente que se está criando:

/etc/openvpn/build-key cliente1

13) Retire o original:
mv /etc/openvpn/server.conf /etc/openvpn/server.conf.bk

13.1) Crie um arquivo de configuração para o servidor:

vi /etc/openvpn/config.conf

13.2) Conteúdo do passo 13:

#--------------------------------------------------------------------------------------------------------------

port 1194

#É o protocolo de comunicação
proto udp

#É a interface virtual (de rede)=
dev tun

#---- Seccion de llaves -----
# Especifica a localização do arquivo da Autoridade Certificadora (.ca)
ca keys/ca.crt

# Especifica a localização do arquivo de identidade do servidor (.crt)
cert keys/server.crt

# Especifica a localização do arquivo de chave de identidade do servidor (.key)
key keys/server.key

# Especifica a localização do arquivo que conterá os parâmetros Diffie-Hellman (.pem)
dh keys/dh1024.pem

#----------------------------

# Range de IPs que os clientes se conectarão
server 10.8.1.0 255.255.255.0

# Arquivo onde se encontrarão os dados de conexão dos clientes
ifconfig-pool-persist /var/log/openvpn/ipp.txt

# Especifica que os pacotes serão enviados a cada 10 segundos e que a conexão finalizará após 120
keepalive 10 120

# Espevifica que os dados tramitarão compactados
comp-lzo

# Garante que chaves são persistentes.
persist-key

# Permite que os dispositivos TUN/TAP sejão persistentes
persist-tun

# Onde se localizará o arquivo de log
status /var/log/openvpn/status.log

# Nível de informações para o log.
verb 3

#--------------------------------------------------------------------------------------------------------------


14) Faça o OpenVPN inicializar no reboot:
chkconfig openvpn on

15) Libere no firewall:
iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source 191.191.191.191
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 191.191.191.191

16) Salve as regras:
service iptables save

17) Reinicie o openvpn:
service openvpn restart

18) Crie o arquivo do cliente com o conteúdo mais abaixo, onde o IP 191.191.191.191 é o seu IP da máquina:
vi cliente1.ovpn

18.1) Conteúdo do passo 18:
#--------------------------------
client
dev tun
proto udp
remote 191.191.191.191 1194
float
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
#------ As Chaves --------
ca ca.crt
cert cliente1.crt
key cliente1.key
ns-cert-type server
#------------------------
comp-lzo
reneg-sec 0
verb 3
#---------------------------------

19) Para o cliente, você deve entregar os seguintes arquivos que foram gerados em "/etc/openvpn/keys/":
cliente1.ovpn
cliente1.crt
cliente1.key
ca.crt

20) Testando no lado cliente. Para o exemplo, usamos o MacOS X com o aplicativo TunnelBlick.
20.1) Copie os arquivos gerados para
cp -rp ~/Downloads/cliente1/* "~/Library/Application Support/Tunnelblick/Configurations"

20.2) Se o TunnelBlick estiver executando, neste momento ele reconhecerá as keys e informará ao você.

Conectando:

Alt text

Configurações:

Alt text

Conectado:

Alt text