Transforme o seu Raspberry Pi num servidor de VPNs

25 Comentários

….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.

rasp_08

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.

vpn_01

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

rasppi

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.

Artigos sobre o Raspberry Pi

Comentários

25

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de PMR

    Mais uma vez um excelente tutorial 🙂

  2. Avatar de Ricardo Macedo
    Ricardo Macedo

    Excelente tutorial!

    Se me pudessem esclarecer uma duvida, eu pretendo ter uma TV ligada a internet, a passar vários vídeos que estariam num servidor, para eu a distância puder alterar o “alinhamento” dos vídeos e adicionar/remover. A minha ideia seria utilizar um Pi ligado a TV para fazer esse apoio, é possível?

    Obrigado

  3. Avatar de Alex
    Alex

    Isso tambem é possivel fazer com uma Fonera/OpenWRT já há muitos anos mantendo ao mesmo tempo todas as funções como roter.

    1. Avatar de lmx
      lmx

      Boas , sim as Vpns ja são utilizadas ha muitos anis e existem diversas formas de as criar…embora o conceito seja o mesmo…

      cmps

    2. Avatar de lmx
      lmx

      Boas , sim as Vpns ja são utilizadas ha muitos anos e existem diversas formas de as criar…embora o conceito seja o mesmo…

      cmps

  4. Avatar de Pedro A.
    Pedro A.

    Mal posso esperar pela continuação do artigo 🙂

  5. Avatar de Filipe Nunes Rodrigues
    Filipe Nunes Rodrigues

    Finalmente… Tanto que eu esperei por este topico

  6. Avatar de NUNAO
    NUNAO

    Bom artigo. Raspberry pi for tha win 😀

  7. Avatar de JMCS
    JMCS

    Uma vez tive de instalar a OpenVPN num servidor Linux e configurar os clientes de repente e sem nunca a ter testado, mas funcionou…

  8. Avatar de Nuno Carvalho
    Nuno Carvalho

    Muito obrigado desde já pela vossa crónica!

    Um próximo tutorial podia ser como utilizar o Raspberry Pi com Skype para se fazer video chamadas (instalar uma webcam!)

    Cumprimentos

  9. Avatar de Luis Ferreira
    Luis Ferreira

    Ola,
    Gostaria de saber quando vcs irao postar a segunda parte deste tutorial….

    Grato,
    Luis Ferreira

    1. Avatar de Pedro Pinto

      Boas Luis,

      Brevemente 🙂

      1. Avatar de MR Soares
        MR Soares

        Espero que sim 🙂

  10. Avatar de Marco Martins
    Marco Martins

    Venha a parte do cliente 🙂

  11. Avatar de Luis Ferreira
    Luis Ferreira

    Boa Noite…
    Jah postaram a Parte II ???

  12. Avatar de Hugo Moita
    Hugo Moita

    Realmente parece muito bem criar uma VPN, não só por motivos de seguraça(não vá alguem pedir emprestado a minha rede wireless) mas também pela parte de aceder remotamente a conteudos na rede de casa.
    Grande tuturial, fico esperando pela segunda parte 🙂

    Pergunta, já tenho o meu Pi a bombar com o xmbc foi a melhor coisa que já fiz 🙂 será que ele aguenta se meter mais a “VPN” ?

  13. Avatar de Diogo
    Diogo

    Boa noite.
    Já fizeram um tutorial com a segunda parte? Configurar no router e o cliente?
    Obrigado

    1. Avatar de Hugo F.
      Hugo F.

      Chegaram a fazer a continuação do tutorial?

  14. Avatar de Eduardo Fernandes
    Eduardo Fernandes

    Boa noite! Antes de mais parabéns por este tutorial.
    Acontece que tenho uma dúvida. Quando faço “./build-ca” dá erro, porque não tem permissões de escrita, então eu faço “sudo ./build-ca” mas não dá porque diz que tenho de fazer “source ./vars” e faço e volto ao mesmo!

    Obrigado pela atenção,
    Cumprimentos,
    Eduardo Fernades

    1. Avatar de Shaxine
      Shaxine

      Recomendo a executares os passo todos dentro da shell de root, para isso faz “sudo -s” e quando quiseres sair escreves “exit”

  15. Avatar de Esteves
    Esteves

    Boas, numa pesquisa pela net encontrei algo interessante, o que talvez me venha a dar jeito.
    Mas tenho umas duvidas!!!

    O Raspberry Pi 2 Model B 1GB pode aguentar quantas ligações em simultâneo onde cada uma é de pouco consumo, ( bits ou bytes ) por utilizador,?

  16. Avatar de Daniel
    Daniel

    Boas noites a todos, costumo acompanhar-vos a muito tempo, adquiri um rasp.pi ja fiz algumas brincadeiras…
    Ao realizar este tutorial deparo me que este só funciona dentro da minha rede ou seja ligar me a vpn do endereço 192.168…. o que não tem grande interesse
    Tenho o router tg784 da meo e dns dynip.sapo.pt configurei a porta 1194 e encaminhei para o rasp.pi e deparo me que nao me consigo chegar la atravez do meu “nome” dns
    Depois de algumas pesquisas na internet encontrei uns comandos para iptables, nada resolveram…
    Venho pedir ajuda para solucionar o problema e depois duas questoes que na minha opiniao podem ser o problema
    Firewall do router nunca mexi ta como padrao
    Raspberry pi com raspberrian (sem gui), aceita ligações do exterior por defeito???

    Muito grato
    DAniel Almeida

  17. Avatar de Andre Simoes
    Andre Simoes

    Boa tarde. Tenho uma questão referente ás vpns.
    Imaginemos tenho o gatway com gama 192.168.1.0, e vpn a correr noutro router cuja gama é 192.168.0.0, o router com vpn está ligado ao gatway por cabo.
    A minha questão é a seguinte eu ao aceder á vpn não queria ter acesso aos equipamentos que estão na gama 192.168.1.0 e aos da gama 192.168.0.0. so quero que quem aceda á vpn aceda a uma máquina, neste caso o raspeberri.
    Isto é possivel só com a vpn ou tem que ser criada uma vlan?
    Cumps

  18. Avatar de Luís Geraldes
    Luís Geraldes

    Boas, tenho uma questão. É possível usar este VPN para a nossa rede através da eduroam, de forma a poder jogar um joguito na mesma? Este está bloquado quando ligado pela rede eduroam, assim com VPN talvez já funcionasse.

    1. Avatar de António Pereira
      António Pereira

      Boas, sim é. Aliás, estou agora mesmo a fazer isso.