VPN para a rede local doméstica

VPN para a rede local doméstica

TL;DR: Estou instalando o Wireguard em um VPS, conectando-me a ele a partir do meu roteador doméstico com OpenWRT, e acessando a rede local de casa pelo telefone.

Se você tem uma infraestrutura pessoal em um servidor doméstico ou vários dispositivos gerenciados por IP, provavelmente você deseja acessá-los do trabalho, do ônibus, do trem e do metrô. Na maioria das vezes, para tarefas semelhantes, você adquire um IP com o provedor, após o que as portas de cada serviço são redirecionadas para fora.

Em vez disso, configurei uma VPN com acesso à rede local de casa. Os prós dessa solução:

  • Transparência: Sinto-me em casa em qualquer circunstância.
  • Facilidade: Configurei e esqueci, não preciso me preocupar com o redirecionamento de cada porta.
  • Preço: Já tenho um VPS, para essas tarefas uma VPN moderna é quase gratuita em recursos.
  • Segurança: Nada fica exposto, posso deixar o MongoDB sem senha e ninguém irá roubar os dados.

Como sempre, também há desvantagens. Primeiro, você terá que configurar cada cliente individualmente, inclusive do lado do servidor. Isso pode ser inconveniente se você tiver muitos dispositivos dos quais deseja acessar os serviços. Em segundo lugar, você pode ter uma rede local coincidindo no mesmo intervalo no trabalho — você terá que resolver esse problema.

Precisaremos de:

  1. VPS (no meu caso, Debian 10).
  2. Roteador com OpenWRT.
  3. Telefone.
  4. Servidor doméstico com algum serviço web para verificação.
  5. Mãos hábeis.

Como tecnologia VPN, vou usar o Wireguard. Esta solução também tem suas vantagens e desvantagens, mas não as descreverei. Para a VPN, uso a sub-rede 192.168.99.0/24, e em casa eu tenho 192.168.0.0/24.

Configuração do VPS

Um VPS bem básico que custa até 30 rublos por mês é suficiente para o trabalho, se você tiver sorte de conseguir um. pegar.

Todas as operações no servidor são realizadas como root em uma máquina limpa; se necessário, adicione `sudo` e adapte as instruções.

O Wireguard ainda não foi incluído na versão estável, então executarei `apt edit-sources` e adicionarei os backports com duas linhas no final do arquivo:

deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main

O pacote é instalado da maneira habitual: apt update && apt install wireguard.

Em seguida, geramos um par de chaves: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Repita esta operação mais duas vezes para cada dispositivo participante do esquema. Altere os caminhos dos arquivos de chave para outro dispositivo e não se esqueça da segurança das chaves privadas.

Agora vamos preparar a configuração. O arquivo /etc/wireguard/wg0.conf contém a configuração:

[Interface]
Endereço = 192.168.99.1/24
PortaDeEscuta = 57953
ChavePrivada = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=

[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24

[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32

Na seção [Interface] são especificadas as configurações da máquina em si, e em [Peer] — configurações para aqueles que irão se conectar a ela. Em AllowedIPs são listadas as sub-redes que serão roteadas para o respectivo peer. Por isso, os peers dos dispositivos 'clientes' na sub-rede VPN devem ter uma máscara /32, todo o restante será roteado pelo servidor. Como a rede doméstica será roteada através do OpenWRT, em AllowedIPs adicionamos a sub-rede doméstica ao respectivo peer. Em PrivateKey e PublicKey descompacte a chave privada gerada para o VPS e as chaves públicas dos peers respectivamente.

No VPS, resta apenas iniciar o comando que elevará a interface e a adicionará ao início automático: systemctl enable --now wg-quick@wg0. O status atual das conexões pode ser verificado com o comando wg.

Configuração do OpenWRT

Tudo que você precisa para esta etapa está no módulo luci (interface web do OpenWRT). Faça login e no menu System, abra a aba Software. O OpenWRT não armazena cache na máquina, então é necessário atualizar a lista de pacotes disponíveis, clicando no botão verde Atualizar listas. Após a conclusão, no filtro digite luci-app-wireguard e, ao olhar para a janela com uma bonita árvore de dependências, instale este pacote.

No menu Networks, escolha Interfaces e clique no botão verde Adicionar nova interface abaixo da lista já existente. Após inserir o nome (como wg0 no meu caso) e selecionar o protocolo WireGuard VPN, uma forma de configuração com quatro abas será aberta.

VPN para a rede local doméstica

Na aba Configurações Gerais, você deve inserir a chave privada e o endereço IP preparado para o OpenWRT junto com a sub-rede.

VPN para a rede local doméstica

Na aba Configurações do Firewall, adicione a interface à rede local. Assim, as conexões do VPN poderão facilmente acessar a rede local.

VPN para a rede local doméstica

Na aba Peers, clique no único botão, após o que na forma atualizada preencha os dados do servidor VPS: chave pública, Allowed IPs (toda a sub-rede VPN precisa ser roteada para o servidor). Em Endpoint Host e Endpoint Port, insira respectivamente o endereço IP do VPS com a porta especificada anteriormente na diretiva ListenPort. Marque Roteamento de Allowed IPs, para que rotas sejam criadas. E preencha Persistent Keep Alive, caso contrário, o túnel do VPS para o roteador será interrompido se este último estiver atrás de NAT.

VPN para a rede local doméstica

VPN para a rede local doméstica

Após isso, é possível salvar as configurações e depois, na página com a lista de interfaces, clicar em Salvar e aplicar. Se necessário, inicie explicitamente a interface com o botão Reiniciar.

Configurando o smartphone

Você precisará do cliente Wireguard, disponível em F-Droid, Google Play e App Store. Ao abrir o aplicativo, clique no ícone de mais e na seção Interface, insira o nome da conexão, a chave privada (a pública será gerada automaticamente) e o endereço do telefone com a máscara /32. Na seção Peer, informe a chave pública do VPS, o par endereço: porta do servidor VPN como Endpoint e as rotas para a sub-rede VPN e doméstica.

Captura de tela em destaque do telefone
VPN para a rede local doméstica

Clique no disquete no canto, ative e…

Concluído

Agora você pode acessar a monitoria doméstica, alterar as configurações do roteador ou fazer o que quiser a nível de IP.

Capturas de tela da rede local
VPN para a rede local doméstica

VPN para a rede local doméstica

VPN para a rede local doméstica

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster