Como criar uma VPN com Raspberry Pi para trabalho remoto

pi vpn de framboesa

Um dos meus amigos vai partir numa longa viagem e precisa de uma VPN.

A vantagem de ter uma VPN, explicou ele, era que lhe permitia aceder à sua rede e ficheiros domésticos.

Isso é um padrão bastante padrão.

Ele também mencionou que teria mais facilidade em entrar em aplicações bancárias e outros serviços se entrasse através da sua rede doméstica.

Ter um endereço IP no estrangeiro atira bandeiras vermelhas e isso fará com que ele tenha de fazer testes de Captcha e 2FAs.

Isso fez-me pensar se o Raspberry Pi iria funcionar neste caso.

Verifique primeiro o seu router

Um detalhe importante aqui é verificar se o seu router pode actuar como servidor VPN.

Essa seria a solução mais fiável. Francamente, era também a solução mais fácil e menos entediante.

Eu tenho um TP-Link Archer C7 que tem a capacidade de executar um servidor VPN usando OpenVPN ou PPTP VPN. Em menos de cinco minutos, I seguiu as instruções e conseguiu pô-lo a funcionar. 

Depois só tinha de instalar o OpenVPN nos meus dispositivos e utilizar o ficheiro de configuração.

Se, no entanto, tem um router que não suporta ligações VPN, então siga em frente...

De que preciso para criar um servidor Raspberry Pi?

Cabo Ethernet, Raspberry Pi e router para configurar um PiVPN
Cabo Ethernet, Raspberry Pi e router

Antes de mais nada, precisará de um Raspberry Pi. 

Seria ideal ter um Raspberry Pi com uma ligação ethernet com fio, tal como o Raspberry Pi 4, para máxima fiabilidade e velocidade.

Se escolher estes dispositivos, então, precisará de um cabo ethernet para ligar o Raspberry Pi ao seu router.

E para garantir que o seu Raspberry Pi está ligado via ethernet com fios, deve desactivar a ligação sem fios.

No entanto, PiVPN tem funcionado com sucesso numa Raspberry Pi série Zero-series, pelo que também poderia usar isso.

Instalar o PiVPN

Logótipo PiVPN
Logótipo PiVPN

Ir para pivpn.io para mais informações sobre o software.

Para o instalar, executar o comando de instalação curl -L https://install.pivpn.io | bash no seu Terminal.

Este passo pode demorar algum tempo, mas uma vez terminado, verá este ecrã de introdução.

Reserva de DHCP

O PiVPN é um servidor, pelo que necessita de ter um endereço IP estático para funcionar correctamente. 

Se for capaz de criar uma reserva DHCP...

Nem todos os routers lhe permitem criar uma reserva DHCP, por isso se não conseguir encontrar uma secção para esta configuração, salte para a secção seguinte.

Tenho um modem separado e um router que comprei para poder criar uma reserva DHCP para garantir que o PiVPN está sempre no mesmo endereço IP.

Cada router é um pouco diferente, pelo que teria de pesquisar no Google as instruções exactas para criar uma reserva DHCP para o seu router.

No caso de usar um TP-Link Archer C7, como eu faço, iria para Avançado > Rede > Servidor DHCP.

Sob a Reserva de Endereços clicei na secção Adicione. Precisava do meu endereço MAC (não mostrado no PiVPN) e do endereço IP fornecido pelo PiVPN.

Encontrar o seu endereço MAC

encontrar mac address framboesa pi
Pode normalmente encontrar o endereço MAC do seu Raspberry Pi através do seu router ou utilização ifconfig

Há duas maneiras de encontrar o seu endereço MAC. 

Muito convenientemente, o meu router TP-Link mostrou o meu endereço MAC "DC-A6-32-88-AC-97" na tabela de clientes DHCP.

Em alternativa, pode abrir um Terminal e digitar ifconfig.

Uma vez que está ligado via ethernet com fios, procure "eth0" e na linha onde diz ether, é aí que se encontra o seu endereço MAC.

Se não for possível criar uma reserva DHCP,

dhcp reserva framboesa pi vpn ou endereço ip estático

Neste menu, prima "Não" para configurar um endereço IP estático.

No menu seguinte, terá de configurar o seu endereço IP estático para algo que não se encontre dentro da gama de endereços IP que o seu router irá atribuir aos dispositivos.

Por exemplo, o meu router atribui aos dispositivos ligados um endereço IP 192.168.0.100 a 192.168.0.249. Assim, posso atribuir ao PiVPN um endereço IP de 192.168.0.250.

Depois pedir-lhe-á o endereço IP de gateway. Pode deixar isto como padrão, a menos que tenha um gateway diferente. É normalmente o endereço IP do seu router.

Finalmente, prima OK no PiVPN até chegar à página "Utilizadores Locais".

Utilizadores locais

Na página "Escolher um utilizador", escolhi o primeiro e único utilizador, pi.

Nas últimas actualizações do SO Raspberry Pi, já não tem o "pi" como utilizador por defeito, por isso tenha apenas em atenção.

Prima OK.

Modo de instalação

framboesa pi vpn wireguard

Aqui, perguntar-lhe-á se quer usar o WireGuard ou o OpenVPN. Fui com WireGuard porque foi recomendado.

Porto de Guarda-fios por defeito

A menos que precise de outra porta, pode simplesmente premir OK e utilizar a porta por defeito 51820.

Fornecedor de DNS

escolha google para dns pivpn pivpn framboesa pi vpn

Existem muitas escolhas para os fornecedores de DNS aqui e acabei de ir com o Google para a facilidade de instalação.

IP público ou DNS

O que está a ver aqui é o seu endereço IP público e este será o endereço IP que utilizará para se ligar à sua VPN.

Actualizações desacompanhadas

pivpn de actualizações desacompanhadas

Permiti as actualizações sem vigilância porque queria as actualizações de segurança. 

Tempo para adicionar perfis de clientes

Use pivpn add para adicionar um cliente, depois use pivpn -qr para obter um código QR para o seu telefone para digitalizar
Use pivpn add para adicionar um cliente, depois utilizar pivpn -qr para obter um código QR para o seu telefone para digitalizar

Doce! Conseguiu chegar ao menu "Instalação Completa".

Montar o PiVPN no Raspberry Pi é metade da batalha. A metade seguinte é configurar os seus perfis de cliente para que possa ligar computadores, telefones e outros dispositivos a ele.

Eis como:

Abrir um Terminal e digitar "pivpn add"

Introduzir um nome para o cliente. Pode usar algo como "client1", "client2" ou algo mais intuitivo como "smartphone", "televisão", etc.

Prima Enter.

Quando estiver feito, verá uma mensagem a dizer que está feito.

O PiVPN teria gerado um ficheiro .conf que pode utilizar com as aplicações Wireguard.

No entanto, há uma maneira ainda mais fácil de colocar a configuração no seu telefone.

Configuração de um telefone Android

No mesmo terminal, introduza pivpn -qr

Em seguida, introduza o cliente que deseja. Neste momento, só existe um chamado "smartphone".

Portanto, introduza "smartphone" e prima enter.

Se tudo correr bem, verá um código QR que pode digitalizar com a aplicação Wireguard no seu smartphone.

Problemas de codificação levam a um código PiVPN QR falsificado
Problemas de codificação levam a um código PiVPN QR falsificado

No entanto, se não o fizer, parecerá falsificado. Isto é porque a codificação do seu Terminal está errada.

Se isto lhe acontecer, pode copiar o ficheiro smartphone.conf para o seu telefone e apontar a aplicação Wireguard para o ficheiro.

código pivpn qr da guarda de fios
Código QR de varrimento da aplicação Wireguard Android

Outra forma é tentar entrar no Raspberry Pi e executar o comando qrencode -t ansiutf8 < /home/pi/configs/smartphone.conf (mudar "smartphone" para o que quer que tenha nomeado o seu cliente).

O código QR foi gerado com sucesso quando utilizei o ssh no meu computador Windows.

Instalação de WireGuard no seu computador

Há duas coisas que precisa de fazer. Descarregar a aplicação WireGuard para o seu computador e também obter o ficheiro .conf do seu Raspberry Pi.

Pode descarregar o Aplicação WireGuard para Windows, Linux e Mac aqui.

Uma vez que o tenha, crie um novo perfil usando pivpn add

Escreva o nome do seu ficheiro de configuração. Eu utilizei msi-pco que gera um msi-pc.conf ficheiro.

Para copiar o ficheiro para o seu PC, a forma mais fácil é copiá-lo usando um comando. Deverá ter o acesso SSH activado no SO Raspberry Pi.

Se estiver no Windows como eu estou, usaria este comando:

pscp.exe [o seu-utilizador-nome]@[o seu-pi-ip-address]:/home/pi/configs/[ficheiro wireguard].conf [local-dir]

Eis o que a minha acabou por ser:

pscp.exe pi@192.168.0.241:/home/pi/configs/msi-pc.conf

Na aplicação, prima "Add Tunnel" e localize o seu ficheiro .conf.

Activar e está feito!

Configuração de encaminhamento de porta no seu router

Se tiver seguido os passos até agora, poderá activar a alternância na sua aplicação Wireguard, mas não conseguirá entrar na Internet.

Isto porque precisa de configurar o seu router para que este aponte o tráfego de acesso à porta 51820 para o seu Raspberry Pi.

Para o fazer, vá para o menu de encaminhamento de portas no seu router. No meu router TP-Link Archer, era acessível em Advanced > Encaminhamento por NAT > Servidores virtuais.

Saberá que está no sítio certo quando lhe pedir uma porta externa e interna e um endereço IP interno.

Este ecrã está basicamente a perguntar: "se obtivermos tráfego das interwebs utilizando a porta 51820, para que dispositivo o enviamos e para que porta?

Neste caso, os portos externos e internos são 51820, o padrão da Wireguard. O protocolo é UDP e IP interno é o endereço IP do seu Pi.

Como é que sei que a minha VPN está a funcionar?

testar o vpn se estiver a funcionar

Saberá que a sua VPN está a funcionar se o seu endereço IP mudar.

A fim de testar a ligação VPN do meu smartphone, fui primeiro procurar o meu endereço IP antes de me ligar à VPN.

A VPN disse que o meu endereço era XXX.XX.88.241

Liguei-me à minha VPN e o meu endereço IP mudou para XXX.XXX.169.39.

Portanto, se houver uma alteração no seu endereço IP, isso significa que se ligou com sucesso.

Há muitos serviços por aí. Poderia até mesmo apenas Google "qual é o meu endereço IP" e Google poderia dizer-lhe na página de resultados de pesquisa. Ou então, eu usava whatismyip.com.

O que acontece se o meu IP na Internet mudar?

Por vezes, poderá não obter o mesmo endereço IP quando reiniciar o seu router. Podem ocorrer falhas de energia, falhas acidentais de cabos de energia. 

A questão é... como encontrar o seu novo endereço IP quando não está em casa e precisa desesperadamente de se ligar à sua VPN?

O nosso software PiCockpit torna mais fácil descobrir qual é o seu IP público.

Na imagem acima, é o meu IP público. Se alguma vez mudar, pode actualizar os seus ficheiros .conf com o novo endereço de endpoint.

PiCockpit também lhe permitirá reiniciar e diagnosticar problemas com o seu Raspberry Pi remotamente através da sua interface web.

Siga este guia para instalar o PiCockpit.

Em alternativa, também pode obter um serviço DNS dinâmico e um nome de anfitrião. Aqui está um guia.

Deixe um comentário