0. Introdução
As vantagens na utilização de um servidor VPN têm duas vertentes essenciais:- Aumentar a segurança na utilização de redes inseguras (redes wireless avulsas ou sem encriptação)
- Ligar a uma rede local remota
O segundo aspeto permite que o nosso dispositivo esteja "fisicamente" ligado à rede remota. Muito útil no caso de aplicações de ISP que apenas funcionam dentro da rede local de cada cliente (por exemplo, aplicações para visualização da emissão de TV e afins).
Desta forma, com acesso à Internet e ativando a ligação VPN é possível navegar a partir de qualquer lugar como se estivéssemos na rede local do servidor VPN e, assim, utilizar as referidas aplicações como se estivéssemos fisicamente na rede local.
1. Requisitos
1. Acesso a um servidor VPN.2. Instalação da aplicação OpenVPN Connect no dispositivo cliente, designado de tabuleta
O teste foi feito com um sistema Android 4.x, mas existem diversas instruções para outros dispositivos ([1] ver Step 5 - Installing the Client Profile).
Para equipamentos Android de versões 2.x é necessário acesso root ao equipamento [2].
2. Criação de Certificados, Chaves e afins
Para cada dispositivo cliente é necessário criar um conjunto de ficheiros que permitem encriptar a ligação de forma muito segura.Assim, acedendo ao servidor VPN, basta utilizar:
cd /etc/openvpn/easy-rsa/
./build-key tabuleta
Serão perguntadas diversas questões que para utilização normal podem ser confirmadas todas com ENTER e no final com dois 'y' para confirmação.
Este processo cria vários ficheiros na pasta /etc/openvpn/easy-rsa/keys, nomeadamente: tabuleta.crt e tabuleta.key.
3. Criação de um Perfil para o OpenVPN Connect
A criação de um perfil permite combinar num único ficheiro todos elementos necessários para a configuração de um cliente VPN.1. Copiar o exemplo base de perfil:
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/tabuleta.ovpn
2. Editar o perfil tablet.ovpn:
nano /etc/openvpn/easy-rsa/keys/tabuleta.ovpn
3. Alterar a linha remote my-server-1 1194 para ter o domínio do servidor, por exemplo qualquercoisa.no-ip.org:
remote qualquercoisa.no-ip.org 1194
4. Se o cliente não é Windows, devem descomentar-se as linhas:
user nobody
group nogroup
5. Deve comentar-se depois as linhas que fazem referência aos certificados e chaves:
#ca ca.crt
#cert client.crt
#key client.key
6. De seguida é possível acrescentar e copiar/colar de forma a que o ficheiro tabuleta.ovpn fique:
(conteúdo existente)
(colar conteúdo do ca.crt)
</ca>
(colar conteúdo do tabuleta.crt)
</cert>
(colar conteúdo do tabuleta.key)
</key>
Para auxiliar a este processo criei um bash script que está disponível aqui [3].
7. Copiar o perfil tabuleta.ovpn de forma segura para o cliente.
4. Configuração do OpenVPN Connect no cliente
Para que um dispositivo se possa ligar ao servidor VPN necessita ter um cliente instalado e configurado. Neste caso o dispositivo tabuleta é um equipamento Android 4.x.1. Instalar a aplicação OpenPVN Connect [4]
2. Abrir o OpenVPN Connect e importar o perfil copiado anteriormente com a opção:
Import > Import Profile from SD card
3. Selecionar o ficheiro tabuleta.ovpn e posteriormente deverá aparecer o perfil na aplicação
4. Quando estiver com acesso à Internet é possível fazer Connect e todo o tráfego passará pelo servidor VPN.
Referências
[1] - Página com muita informação sobre criação e configuração do servidor e dos clienteshttps://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04
[2] - Instruções para instalação no GingerBread 2.3
https://my.hostvpn.com/knowledgebase/15/OpenVPN-for-Android-rooted-Gingerbread-23x.html
http://librehacks.blogspot.pt/2015/07/vpn-script-para-criacao-de-perfis.html
[4] - Aplicação OpenVPN Connect
https://play.google.com/store/apps/details?id=net.openvpn.openvpn