VPN nella rete domestica

VPN nella rete domestica

TL;DR: sto installando Wireguard su VPS, mi connetto ad esso dal router domestico su OpenWRT e accedo alla rete domestica dal telefono.

Se hai un'infrastruttura personale su un server domestico o molti dispositivi gestiti via IP a casa, sicuramente desideri accedervi dal lavoro, dall'autobus, dal treno o dalla metro. Spesso, per compiti simili, si acquista un IP dal fornitore, dopodiché le porte di ogni servizio vengono inoltrate all'esterno.

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

  • Trasparenza: mi sento come a casa in qualsiasi circostanza.
  • Semplicità: ho configurato e dimenticato, non devo pensare all'inoltro di ogni porta.
  • Prezzo: ho già un VPS, per tali compiti un VPN moderno è quasi gratuito in termini di risorse.
  • Sicurezza: nulla è esposto all'esterno, posso lasciare MongoDB senza password e nessuno porterà via i dati.

Come sempre, ci sono anche degli svantaggi. In primo luogo, dovrai configurare ogni cliente singolarmente, inclusa la parte server. Questo potrebbe risultare scomodo se hai un gran numero di dispositivi da cui desideri accedere ai servizi. In secondo luogo, potresti trovarti con una rete locale in conflitto sullo stesso intervallo — sarà necessario risolvere questo problema.

Ci vorrà:

  1. VPS (nel mio caso su Debian 10).
  2. Router OpenWRT.
  3. Telefono.
  4. Server domestico con un qualche servizio web per testare.
  5. Mani esperte.

Come tecnologia VPN utilizzerò Wireguard. Anche questa soluzione ha punti di forza e di debolezza, non li descriverò. Per la VPN utilizzo la sottorete 192.168.99.0/24, e a casa ho 192.168.0.0/24.

Configurazione VPS

Per lo scopo basta anche il VPS più economico a 30 rubli al mese, se riesci a trovarne uno da prendere.

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

Wireguard non è ancora disponibile nella versione stabile, quindi eseguo `apt edit-sources` e aggiungo i backport con 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 si installa nel modo abituale: apt update && apt install wireguard.

Poi 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 alla rete. Cambiare i percorsi dei file delle chiavi per il dispositivo diverso e non dimenticare di proteggere le chiavi private.

Ora prepariamo la configurazione. Nel file /etc/wireguard/wg0.conf si inserisce la configurazione:

[Interface]
Indirizzo = 192.168.99.1/24
PortaDiAscolto = 57953
ChiavePrivata = 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] si specificano le impostazioni della macchina, e [Peer] — le impostazioni per coloro che si connetteranno ad essa. In AllowedIPs si elencano le subnet che saranno instradate verso il peer corrispondente. Per questo motivo, i peer dei dispositivi "client" nella subnet VPN devono avere una maschera /32, tutto il resto sarà instradato dal server. Poiché la rete domestica sarà instradata tramite OpenWRT, nel AllowedIPs si aggiunge la subnet domestica. In PrivateKey e PublicKey disporre la chiave privata generata per il VPS e le chiavi pubbliche dei peer di conseguenza.

Sul VPS resta solo da eseguire il comando che attiverà l'interfaccia e la aggiungerà all'avvio automatico: systemctl enable --now wg-quick@wg0. Lo stato attuale delle connessioni può essere verificato con il comando wg.

Configurazione OpenWRT

Tutto ciò di cui hai bisogno per questo passaggio è nel modulo luci (interfaccia web OpenWRT). Effettua il login e nel menu System apri la scheda Software. OpenWRT non memorizza la cache sulla macchina, quindi è necessario aggiornare l'elenco dei pacchetti disponibili facendo clic sul pulsante verde Aggiorna elenchi. Al termine, inserisci nel filtro luci-app-wireguard e, guardando la finestra con il bel grafo delle dipendenze, installa questo pacchetto.

Nel menu Networks seleziona Interfaces e fai clic sul pulsante verde Aggiungi nuova interfaccia sotto l'elenco delle interfacce esistenti. Dopo aver inserito il nome (come nel mio caso) e selezionato il protocollo WireGuard VPN, si apre un modulo di impostazioni con quattro schede. wg0 Nella scheda Impostazioni generali, inserisci la chiave privata e l'indirizzo IP preparato per OpenWRT insieme alla subnet.

VPN nella rete domestica

Nella scheda Impostazioni firewall, porta l'interfaccia nella rete locale. In questo modo le connessioni VPN accederanno liberamente alla rete locale.

VPN nella rete domestica

Nella scheda Impostazioni Firewall, crea un'interfaccia nella rete locale. In questo modo, le connessioni VPN potranno accedere liberamente alla rete locale.

VPN nella rete domestica

Nella scheda Peers, premi l'unico pulsante, dopodiché compila i dati del server VPS nel modulo aggiornato: chiave pubblica, IP consentiti (devi route tutto il sottorete VPN nel server). Inserisci rispettivamente l'indirizzo IP del VPS e la porta specificata in precedenza nella direttiva ListenPort in Endpoint Host e Endpoint Port. Seleziona Route Allowed IPs per creare le route. E assicurati di compilare Persistent Keep Alive, altrimenti il tunnel dal VPS al router sarà interrotto se quest'ultimo si trova dietro un NAT.

VPN nella rete domestica

VPN nella rete domestica

Dopo questo, puoi salvare le impostazioni e poi nella pagina con l'elenco delle interfacce, premi Save and apply. Se necessario, avvia esplicitamente l'interfaccia con il pulsante Restart.

Impostiamo lo smartphone

Avrai bisogno del client Wireguard, disponibile su F-Droid, Google Play e App Store. Aprendo l'app, premi il segno più e nella sezione Interface inserisci il nome della connessione, la chiave privata (la chiave pubblica sarà generata automaticamente) e l'indirizzo del telefono con la maschera /32. Nella sezione Peer, specifica la chiave pubblica del VPS, abbina indirizzo: porta del server VPN come Endpoint e le route per il sottorete VPN e domestico.

Screenshot in evidenza dal telefono
VPN nella rete domestica

Premi sul dischetto nell'angolo, accendi e...

Fatto

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

Screenshot dalla rete locale
VPN nella rete domestica

VPN nella rete domestica

VPN nella rete domestica

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster