VPN alla LAN domestica

VPN alla LAN domestica

TL; DR: Installo Wireguard su un VPS, mi collego ad esso dal router di casa su OpenWRT e accedo alla sottorete domestica dal telefono.

Se mantieni la tua infrastruttura personale su un server domestico o hai molti dispositivi controllati da IP a casa, probabilmente vorrai accedervi dal lavoro, dall'autobus, dal treno e dalla metropolitana. Molto spesso, per compiti simili, l'IP viene acquistato dal provider, dopodiché le porte di ciascun servizio vengono inoltrate all'esterno.

Invece, ho configurato una VPN con accesso alla mia LAN domestica. I vantaggi di questa soluzione:

  • trasparenza: Mi sento a casa in ogni circostanza.
  • Alleviare: impostalo e dimenticalo, non c'è bisogno di pensare all'inoltro di ciascuna porta.
  • Prezzo: Ho già un VPS; per tali compiti una moderna VPN è quasi gratuita in termini di risorse.
  • sicurezza: non salta fuori nulla, puoi uscire da MongoDB senza password e nessuno ti ruberà i dati.

Come sempre, ci sono degli svantaggi. Innanzitutto dovrai configurare ciascun client separatamente, anche lato server. Può essere scomodo se si dispone di un numero elevato di dispositivi da cui si desidera accedere ai servizi. In secondo luogo, potresti avere una LAN con la stessa portata al lavoro: dovrai risolvere questo problema.

Abbiamo bisogno di:

  1. VPS (nel mio caso su Debian 10).
  2. Router OpenWRT.
  3. Numero di telefono
  4. Server domestico con alcuni servizi web per i test.
  5. Braccia dritte.

La tecnologia VPN che utilizzerò è Wireguard. Anche questa soluzione ha pregi e difetti, non li descriverò. Per VPN utilizzo una sottorete 192.168.99.0/24, e a casa mia 192.168.0.0/24.

Configurazione VPS

Anche il più miserabile VPS da 30 rubli al mese è sufficiente per gli affari, se hai la fortuna di averne uno strappare.

Eseguo tutte le operazioni sul server come root su una macchina pulita; se necessario aggiungo `sudo` e adeguo le istruzioni.

Wireguard non ha avuto il tempo di essere portato nella stable, quindi ho eseguito "apt edit-sources" e ho aggiunto i backport in due righe alla fine del file:

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

Il pacchetto viene installato nel solito modo: apt update && apt install wireguard.

Successivamente, generiamo una coppia di chiavi: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Ripetere questa operazione altre due volte per ogni dispositivo partecipante al circuito. Cambia il percorso dei file chiave per un altro dispositivo e non dimenticare la sicurezza delle chiavi private.

Ora prepariamo la configurazione. Archiviare /etc/wireguard/wg0.conf la configurazione è posizionata:

[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

Nella sezione [Interface] sono indicate le impostazioni della macchina stessa, e in [Peer] — impostazioni per coloro che si connetteranno ad esso. IN AllowedIPs separate da virgole vengono specificate le sottoreti che verranno instradate al peer corrispondente. Per questo motivo, i peer dei dispositivi “client” nella sottorete VPN devono avere una maschera /32, tutto il resto verrà instradato dal server. Poiché la rete domestica verrà instradata tramite OpenWRT, in AllowedIPs Aggiungiamo la sottorete domestica del peer corrispondente. IN PrivateKey и PublicKey scomporre di conseguenza la chiave privata generata per il VPS e le chiavi pubbliche dei peer.

Sul VPS non resta che eseguire il comando che farà apparire l'interfaccia e la aggiungerà all'esecuzione automatica: systemctl enable --now wg-quick@wg0. Lo stato attuale della connessione può essere verificato con il comando wg.

Configurazione OpenWRT

Tutto ciò di cui hai bisogno per questa fase è nel modulo luci (interfaccia web OpenWRT). Accedi e apri la scheda Software nel menu Sistema. OpenWRT non memorizza una cache sulla macchina, quindi è necessario aggiornare l'elenco dei pacchetti disponibili facendo clic sul pulsante verde Aggiorna elenchi. Dopo il completamento, guidare nel filtro luci-app-wireguard e, guardando la finestra con un bellissimo albero delle dipendenze, installa questo pacchetto.

Nel menu Reti, seleziona Interfacce e fai clic sul pulsante verde Aggiungi nuova interfaccia sotto l'elenco di quelle esistenti. Dopo aver inserito il nome (anche wg0 nel mio caso) e selezionando il protocollo VPN WireGuard, si apre un modulo di impostazioni con quattro schede.

VPN alla LAN domestica

Nella scheda Impostazioni generali, è necessario inserire la chiave privata e l'indirizzo IP preparati per OpenWRT insieme alla sottorete.

VPN alla LAN domestica

Nella scheda Impostazioni firewall, collega l'interfaccia alla rete locale. In questo modo le connessioni dalla VPN entreranno liberamente nell'area locale.

VPN alla LAN domestica

Nella scheda Peer, fai clic sull'unico pulsante, dopodiché inserisci i dati del server VPS nel modulo aggiornato: chiave pubblica, IP consentiti (è necessario instradare l'intera sottorete VPN al server). In Endpoint Host e Endpoint Port, inserire rispettivamente l'indirizzo IP del VPS con la porta precedentemente specificata nella direttiva ListenPort. Controllare gli IP consentiti per le rotte da creare. E assicurati di compilare Persistent Keep Alive, altrimenti il ​​tunnel dal VPS al router verrà interrotto se quest'ultimo è dietro NAT.

VPN alla LAN domestica

VPN alla LAN domestica

Successivamente, puoi salvare le impostazioni, quindi nella pagina con l'elenco delle interfacce, fare clic su Salva e applica. Se necessario, avviare esplicitamente l'interfaccia con il pulsante Riavvia.

Configurazione di uno smartphone

Avrai bisogno del client Wireguard, è disponibile in F-Droid, Google Play e App Store. Dopo aver aperto l'applicazione, premere il segno più e nella sezione Interfaccia inserire il nome della connessione, la chiave privata (la chiave pubblica verrà generata automaticamente) e l'indirizzo telefonico con la maschera /32. Nella sezione Peer, specifica la chiave pubblica VPS, una coppia di indirizzi: la porta del server VPN come endpoint e gli instradamenti alla VPN e alla sottorete domestica.

Screenshot in grassetto dal telefono
VPN alla LAN domestica

Clicca sul floppy disk nell'angolo, accendilo e...

Terminare

Ora puoi accedere al monitoraggio domestico, modificare le impostazioni del router o fare qualsiasi cosa a livello IP.

Schermate dalla zona locale
VPN alla LAN domestica

VPN alla LAN domestica

VPN alla LAN domestica

Fonte: habr.com

Aggiungi un commento