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 primeiro aspeto é essencial nos dias que correm pois grande parte dos equipamentos de lazer (centros comerciais, cafés, restaurantes, parques, etc) possuem redes sem fios gratuitas e/ou de fácil ligação e com muitos utilizadores em simultâneo.
A utilização de uma ligação VPN nestes cenários aumenta muito o nível de segurança da nossa navegação.
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)
<ca>
(colar conteúdo do ca.crt)
</ca>
<cert>
(colar conteúdo do tabuleta.crt)
</cert>
<key>
(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.
Este processo está muito bem explicado com diversas capturas de exemplos aqui [
1]
Step 5 - Installing the Client Profile.
Referências
[1] - Página com muita informação sobre criação e configuração do servidor e dos clientes
https://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
[3] - Script para criação de um perfil para OpenVPN
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