Como fazer uma VPN usando o OpenVpn

De Wiki do Ouro Minas Palace Hotel
Revisão de 03h12min de 8 de agosto de 2020 por imported>Admin (uma edição)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

1) Como usuario root, devemos executar o comando “yum install openvpn”, a fim de instalar o pacote OpenVpn e suas dependencias. Algumas destas depend~encias são por exemplo os pacotes openssh, openssl, lzo e lzo-devel;


2) Terminada a instalação é criado o diretório vazio “/etc/openvpn/”, onde iremos depositar os arquivos de configuração do openvpn;


3) A nossa primeira ação tem de ser a de gerar a chave que será usada para a criptografia dos dados que vão trafegar pela VPN. Para tal o proprio OpenVpn nos fornece a funcionalidade de gerar este arquivo, através do comando:


openvpn –genkey –secret /etc/openvpn/chave.key


4) Apos esta chave ser gerada dentro do arquivo /etc/openvpn/chave.key, ela tem de ser copiada para a outra CPU para onde a VPN será fechada. Para tal podemos usar o comando abaixo, considerando que estamos executando a partir da maquina que o arquivo foi gerado, fica:


scp /etc/openvpn/openvpn1.key A.B.C.D:/etc/openvpn


onde A.B.C.D é o endereo IP da maquina destino (onde desejamos ter o arquivo copiado).


Isto é fundamental em função de que a VPN será fechada com base nesta chave e ela tem de ser “conhecida” nas duas pontas.


5) O proximo passo é criar o arquivo de configuração que é composto basicamente de apenas 10 linhas. O nome deste arquivo é livre, mas a extensão que é lida pelo script do openvpn é “.conf”, assim o arquivo pode por exemplo poderia chamar openvpn1.conf e as linhas poderiam ser:


## Arquivo de configuração do OpenVpn
#
#
# local A.B.C.D - indica o endereço IP da maquina que este arquivo esta
#
local 10.5.0.2
#
#
# remote A.B.C.D – indica o endereço IP da maquina remota que a VPN sera
# fechada
#
remote 10.18.1.6
#
#
# definimos agora o device sob o qual tunel será formado – façamos uma
# analogia com a ethernet que “roda” no device eth0 por exemplo. Nos tuneis
# com base no OpenVpn, usamos geralmente os devices tun0 e tun1
#
dev tun0
#
#
# O openvpn usar por padrão a porta 5000 para a comunicação, mas pode ser
# mudado a criterio do administrador. Nesta configuração estamos usando
# a porta 5222
#
port 5222
#
#
# Agora vamos definir o metodo de compactação dos dados que irão passar 
# pela VPN
#
comp-lzo
#
#
# Definimos agora o usuario padrão da VPN
#
user nobody
#
#
# Para verificar e manter a VPN, usamos o parametro ping. O tempo entre as
# rajadas do ping entre as duas maquinas que vão manter a VPN deve estar em
# um intervalo de 15 segundos
#
ping 15
#
#
# O parametro ifconfig é que diz ao openvpn qual o endereço IP do device
# tun na maquina local e o endereço Ip do device tun na maquina remota.
# A sintaxe é    ipconfig     IP_LOCAL     IP_REMOTO
#
ifconfig 192.168.90.1 192.168.90.2
#
#
# O parametro secret indica qual é a rota absoluta do arquivo que tem a chave
# responsavel pela criptografia dos dados que vão circular pela VPN, e que foi
# gerada pelo comando openvpn –genkey –secret /etc/openvpn/openvpn1.key
#
secret /etc/openvpn/chave.key
#
#
# Por fim acionamos a diretiva up, que faz referencia a um terceiro arquivo que
# será o responsavel pela rota entre as duas redes ligadas pela VPN
#
up /etc/openvpn/rota.up


6) Finalmente criamos o arquivo que indicará a rota e é o acionado pela diretiva up dentro do arquivo openvpn1.conf, conforme nosso exemplo.


No nosso case ele será:


route add -net 10.18.1.0 netmask 255.255.255.0 gw 192.168.90.1


7) Agora somente nos resta ter os arquivos correspondentes, mas não iguais, na segunda maquina e em ambas executar o comando:


service openvpn start


Informações:


1) Exemplo de um arquivo openvpn1.key em ambas as CPU´s


#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
a64926dafa1a9c9c383d4b7cb3815dc0
442ea8c123de8e24a4d7798ca144ba92
b731f4c818e37b8e16d321d2d1b2ffd0
8146e7df9b2394a8346fecb412891361
bbff99931be5976fc7c749ab7b0a8ffc
8d661d6ad070ade9ae1e9bd86c8def0c
d1b85f14965b23296e5b8ff7a46218da
fd54f573697e83c2a4ef029d5a0b55c1
16c2dbb5cf9d9a2c5bcf0f1179c236cd
58f2f9317b6a4598662e086b35aa6ae0
3c38a69a5c9e9c4eeb1c659bfad12d55
851421970a87ddc0b1a7427c94e2e99d
0a1da3c9e64db915a650bdd525348e05
04cdedec2c687ed284fe91d3398dc9ee
e3923803b8a3fb28d837438c576a6be2
8099ddee0a97ee08475a6091c2e2c573
-----END OpenVPN Static key V1-----


2) CPU da ponta A


2.1) Arquivo openvpn1.conf


local 10.5.0.2

remote 10.18.1.6

dev tun0

port 5222

comp-lzo

user nobody

ping 15

ifconfig 192.168.90.1 192.168.90.2

secret /etc/openvpn/openvpn1.key

up /etc/openvpn/rota.up


2.2) Arquivo rota.up


route add -net 10.18.1.0 netmask 255.255.255.0 gw 192.168.90.1



3) CPU da ponta B


3.1) Arquivo openvpn1.conf


local 10.18.1.6

remote 10.5.0.2

dev tun0

port 5222

comp-lzo

user nobody

ping 15

ifconfig 192.168.90.2 192.168.90.1

secret /etc/openvpn/openvpn1.key

up /etc/openvpn/rota.up


2.2) Arquivo rota.up


route add -net 10.5.0.0 netmask 255.255.255.0 gw 192.168.90.2


Fonte de referencia:

<http://openvpn.net/> http://openvpn.net/