….com OpenVPN
O Raspberry Pi é um dos mini PCs mais populares e potentes, que tem servido de base a muitos projectos interessantes (pode consultar os projectos na página do projecto aqui). Este mini equipamento, do tamanho de um cartão de crédito é capaz de reproduzir vídeo com qualidade Blu-ray e renderizar gráficos 3D, entre outras tarefas.
No seguimento da nossa parceria com a INMotion e depois de termos apresentado uma lista de componentes essenciais e também opcionais, de termos ensinado a instalar o RaspbianOS no mini PC e também de termos realizado as primeiras configurações e muito mais (ver artigos no final), hoje vamos aprender a transformar o Raspberry Pi num servidor de VPNs.
Para que serve uma VPN?
Antes de passarmos à configuração de um servidor de VPN no Windows, vamos explicar o conceito de VPN usando um exemplo. Vamos considerar uma empresa que revende vários tipos de chocolates e que tem “na rua” vários vendedores que tentam vender esse produtos às lojas.
Esses vendedores trazem normalmente consigo um smartphone/tablet ou um PC para registar/validar de imediato as encomendas no sistema de stocks/encomendas interno da empresa. No entanto, como o vendedor está “na rua”, ligado a uma rede pública (Internet), como fazer para se ligar em segurança (a partir do exterior) ao servidor interno da empresa onde está o sistema de stocks/encomendas? As VPNs (Virtual Private Network) são uma das soluções!
Uma rede privada virtual (VPN – Virtual Private Network ) é uma rede cifrada e privada criada em cima da Internet, de maneira a garantir privacidade na comunicação entre os vários computadores. Imagine que está ligado a uma rede pública, num dos locais referenciados aqui, e quer garantir que a sua ligação é segura. Para isso, pode fazer uso do seu Raspberry Pi que está em casa, e forçar que as ligações sejam cifradas, passando pelo seu mini PC.
Como instalar o OpenVPNno PI?
O OpenVPN é um software multi-plataforma que permite a criação de uma VPN entre várias máquinas com sistemas operativos diferentes. Para proceder à instalação e configuração do OpenVPN e OpenSSL (obrigadtório para a criação de certificados para o serviço), devem seguir os seguintes passos:
Passo 1) Instalar o openvpn e openssl
sudo apt-get install openvpn openssl
Passo 2) Após a instalação, é necessário gerar as chaves para o servidor e client. O openvpn traz já uma estrutura de exemplo, designada de easy-rsa-tool, na qual podemos-nos basear para configurar a nossa VPN. Para isso, vamos usar essa estrutura em /etc/openvpn, copiando-a de /usr/share/doc/openvpn/examples/easy-rsa
sudo cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa/2.0
Passo 3) A ferramenta easy-rsa-tool inclui um ficheiro chamado “vars” que podemos editar e mudar alguns parametros definidos por omissão. para carregar essa informação basta usar o comando
. ./vars
Nota: De referir que é necessário colocar um espaço entre os dois pontos.
Passo 4) Vamos agora gerar as chaves para o cliente e servidor, usadas para cifrar a comunicação. Para isso usamos os seguintes comandos ( o processo é idêntico ao já referido aqui):
./clean-all
./build-ca
./build-key-server server
./build-key client-name
./build-dh
Passo 4) Vamos agora copiar as chaves para dentro da estrutura do OpenVPN, usando os comandos
cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn
Passo 5) O ultimo passo consiste em configurar o servidor propriamente disto. Para isso, basta usar simplesmente os seguintes comandos que consiste em usar a configuração presente em server
.conf.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
gunzip /etc/openvpn/server.conf.gz
Passo 6) Vamos agora reiniciar o serviço openvpn
/etc/init.d/openvpn start
Se tudo correr bem, podemos ver se o tunel já está criado usando o comando
ifconfig tun0
Com as configurações anterior, criamos a parte do servidor. Num próximo tutorial iremos ensinar a configurar um cliente e também um router, de forma a podermos estabelecer ligação VPN a partir de qualquer lugar. Estejam atentos, será em breve.