TL, DR: eu instalo o Wireguard em um VPS, conecto-me a ele a partir do meu roteador doméstico no OpenWRT e acesso minha sub-rede doméstica a partir do meu telefone.
Se você mantém sua infraestrutura pessoal em um servidor doméstico ou tem muitos dispositivos controlados por IP em casa, provavelmente deseja ter acesso a eles no trabalho, no ônibus, trem e metrô. Na maioria das vezes, para tarefas semelhantes, o IP é adquirido do provedor, após o qual as portas de cada serviço são encaminhadas para o exterior.
Em vez disso, configurei uma VPN com acesso à minha LAN doméstica. As vantagens desta solução:
- Transparência: Me sinto em casa em qualquer circunstância.
- Simplicidade: configure e esqueça, não há necessidade de pensar em encaminhar cada porta.
- Preço: Já tenho um VPS; para tais tarefas, uma VPN moderna é quase gratuita em termos de recursos.
- segurança: nada se destaca, você pode sair do MongoDB sem senha e ninguém roubará seus dados.
Como sempre, existem desvantagens. Primeiramente, você terá que configurar cada cliente separadamente, inclusive no lado do servidor. Pode ser inconveniente se você tiver um grande número de dispositivos dos quais deseja acessar os serviços. Em segundo lugar, você pode ter uma LAN com o mesmo alcance funcionando - você terá que resolver esse problema.
Precisamos de:
- VPS (no meu caso no Debian 10).
- Roteador OpenWRT.
- Número de telefone.
- Servidor doméstico com algum serviço web para teste.
- Braços retos.
A tecnologia VPN que usarei é Wireguard. Esta solução também tem pontos fortes e fracos, não vou descrevê-los. Para VPN eu uso uma sub-rede 192.168.99.0/24
, e na minha casa 192.168.0.0/24
.
Configuração VPS
Mesmo o VPS mais miserável por 30 rublos por mês é suficiente para os negócios, se você tiver a sorte de ter um
Eu realizo todas as operações no servidor como root em uma máquina limpa; se necessário, adiciono `sudo` e adapto as instruções.
O Wireguard não teve tempo de ser trazido para o estábulo, então executo `apt edit-sources` e adiciono backports em 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 usual: apt update && apt install wireguard
.
A seguir, 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 circuito. Altere o caminho dos arquivos de chave de outro dispositivo e não se esqueça da segurança das chaves privadas.
Agora preparamos a configuração. Arquivar /etc/wireguard/wg0.conf
configuração é colocada:
[Interface]
Address = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 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]
as configurações da própria máquina são indicadas, e em [Peer]
— configurações para quem irá se conectar a ele. EM AllowedIPs
separados por vírgulas, são especificadas as sub-redes que serão roteadas para o peer correspondente. Por causa disso, os pares de dispositivos “clientes” na sub-rede VPN devem ter uma máscara /32
, todo o resto será roteado pelo servidor. Como a rede doméstica será roteada através do OpenWRT, em AllowedIPs
Adicionamos a sub-rede inicial do par correspondente. EM PrivateKey
и PublicKey
decompor a chave privada gerada para o VPS e as chaves públicas dos pares de acordo.
No VPS, basta executar o comando que abrirá a interface e adicioná-la à execução automática: systemctl enable --now wg-quick@wg0
. O status atual da conexão pode ser verificado com o comando wg
.
Configuração OpenWRT
Tudo que você precisa para esta etapa está no módulo luci (interface web OpenWRT). Faça login e abra a guia Software no menu Sistema. OpenWRT não armazena cache na máquina, então você precisa atualizar a lista de pacotes disponíveis clicando no botão verde Atualizar listas. Após a conclusão, dirija até o filtro luci-app-wireguard
e, olhando a janela com uma linda árvore de dependências, instale este pacote.
No menu Redes, selecione Interfaces e clique no botão verde Adicionar nova interface na lista de interfaces existentes. Depois de inserir o nome (também wg0
no meu caso) e selecionando o protocolo VPN WireGuard, um formulário de configurações com quatro guias é aberto.
Na guia Configurações Gerais, você precisa inserir a chave privada e o endereço IP preparado para OpenWRT junto com a sub-rede.
Na guia Configurações de Firewall, conecte a interface à rede local. Dessa forma, as conexões da VPN entrarão livremente na área local.
Na aba Peers, clique no botão único, após o qual você preenche os dados do servidor VPS no formulário atualizado: chave pública, IPs permitidos (você precisa rotear toda a sub-rede VPN para o servidor). Em Endpoint Host e Endpoint Port, insira o endereço IP do VPS com a porta previamente especificada na diretiva ListenPort, respectivamente. Verifique os IPs permitidos da rota para rotas a serem criadas. E certifique-se de preencher Persistent Keep Alive, caso contrário o túnel do VPS para o roteador será quebrado se este estiver atrás do NAT.
Depois disso, você pode salvar as configurações e, 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 um smartphone
Você precisará do cliente Wireguard, ele está disponível em
Captura de tela em negrito do telefone
Clique no disquete no canto, ligue-o e...
Feito
Agora você pode acessar o monitoramento residencial, alterar as configurações do roteador ou fazer qualquer coisa no nível do IP.
Capturas de tela da área local
Fonte: habr.com