Acesso à rede interna com PiVPN/WireGuard
Existem alguns serviços que eu quero ter acesso através de uma rede externa, como o Nextcloud, Bitwarden e Plex, no entanto, tenho outras coisas a correr na minha rede interna que não quero expor para a rede externa mas por vezes preciso de acesso para poder fazer algum tipo de manutenção.
![Acesso à rede interna com PiVPN/WireGuard](/content/images/size/w2000/2022/05/screenshot-from-2022-02-04-01-42-07.png)
Existem alguns serviços que eu quero ter acesso através de uma rede externa, como o Nextcloud, Bitwarden e Plex, no entanto, tenho outras coisas a correr na minha rede interna que não quero expor para a rede externa mas por vezes preciso de acesso para poder fazer algum tipo de manutenção.
Para resolver o meu problema de um acesso “autenticado” e encriptado a esses serviços, decidi utilizar o PiVPN com o wireguard. Desta maneira, consigo criar um acesso privado à minha rede interna e “teletransportar-me” digitalmente para a minha rede interna, ganhando acesso a esses mesmos serviços.
Instalação
O setup desta VPN é muito simples. e com um simples comando pode-se fazer a instalação.
curl -L https://install.pivpn.io | bash
De seguida é so seguir os passos:
![](https://blog.jejay.me/content/images/2022/05/screenshot-from-2022-02-04-01-42-07-1.png)
Escolhe-se qual o utilizador que vai ser o dono das configurações:
![](https://blog.jejay.me/content/images/2022/05/screenshot-from-2022-02-04-10-16-26.png)
E depois selecciona-se WireGuard da lista de possíveis VPN’s:
![](https://blog.jejay.me/content/images/2022/05/screenshot-from-2022-02-04-10-17-55.png)
Se utilizarem o PiVPN juntamente com o Pi-hole poderão dizer que querem usar o DNS to Pi-hole, no entanto para este exemplo vou utilizar o DNS da Google.
![](https://blog.jejay.me/content/images/2022/05/screenshot-from-2022-02-04-23-38-51.png)
Esta parte é muito importante, e o ideal é utilizar um serviço de Dynamic DNS (DynDNS, No-IP, selfhost.de, …) para se poder aceder à VPN sempre com o mesmo domínio. Para este exemplo eu estou a usar o meu static IP, no entanto a configuração é igual no caso de se utilizar um domínio.
![](https://blog.jejay.me/content/images/2022/05/screenshot-from-2022-02-04-23-39-38-v2.png)
Depois de um reboot a instalação fica terminada.
Criar um cliente/acesso
Para criar um novo cliente basta abrir um terminal e escrever
pivpn add
Escreve-se um nome para este cliente (pode ser qualquer nome), e a configuração fica criada na pasta /home/{user}/configs como é possível ver no seguinte exemplo:
![](https://blog.jejay.me/content/images/2022/05/screenshot-from-2022-02-04-23-45-43.png)
No telemóvel eu utilizo a app WireGuard para me ligar à VPN, uma coisa muito boa deste aplicação é que é possível ler um QR Code para configurar o nosso cliente no telemóvel, e para obter esse QR Code é só escrever o seguinte no terminal:
pivpn -qr
E depois seleccionar o index da nossa config, neste caso seria 1:
![](https://blog.jejay.me/content/images/2022/05/screenshot-from-2022-02-04-23-47-06.png)
Isto irá imprimir no terminal um QR Code que pode ser lido com a aplicação.
Claro que vai ser necessário abrir as portas correctas no router, no caso de se ter usado a porta que foi apresentada durante a instalação, então a porta 51820 no router terá de ser redireccionada para a mesma porta na máquina.
E pronto, está criada a VPN e é agora possível aceder à rede interna a partir de qualquer lado.
Espero que tenha sido util e qualquer duvida deixem um comentário.