Perché usare una VPN per accedere alla tua casa?
Ci sono molti motivi per cui vorresti accedere alla tua rete domestica da remoto e il modo migliore per farlo è con un server VPN. Alcuni router in realtà ti consentono di configurare un server VPN direttamente all'interno del router, ma in molti casi dovrai configurarne uno tu stesso.
Un Raspberry Pi è un ottimo modo per farlo. Non richiedono molta energia per funzionare e hanno energia sufficiente per eseguire un server VPN. Puoi installarne uno accanto al tuo router e praticamente dimenticartene.
Quando hai accesso alla tua rete domestica da remoto, puoi accedere ai tuoi file da qualsiasi luogo. Puoi eseguire i tuoi computer di casa in remoto. Puoi persino utilizzare la connessione VPN di casa tua dalla strada. Una configurazione come questa consente al tuo telefono, tablet o laptop di agire proprio come se fosse a casa da qualsiasi luogo.
Imposta il Pi
Prima di poter iniziare a configurare la VPN, dovrai configurare il tuo Raspberry Pi. È meglio configurare il Pi con una custodia e una scheda di memoria di dimensioni decenti, 16 GB dovrebbero essere più che sufficienti. Se possibile, collega il tuo Pi al router con un cavo Ethernet. Ridurrà al minimo eventuali ritardi di rete.
Installa Raspbian
Il miglior sistema operativo da utilizzare sul tuo Pi è Raspbian. È la scelta predefinita proposta dalla fondazione Raspberry Pi ed è basata su Debian, una delle versioni Linux più sicure e stabili disponibili.
Vai al Pagina di download di Rasbian e prendi l'ultima versione. Puoi usare la versione Lite qui, perché in realtà non hai bisogno di un desktop grafico.
Durante il download, scarica l'ultima versione di incisore per il tuo sistema operativo Al termine del download, estrai l'immagine Raspbian. Quindi, apri Etcher. Seleziona l'immagine Raspbian da dove l'hai estratta. Seleziona la tua scheda SD (inseriscila prima). Infine, scrivi l'immagine sulla carta.
come collegare un pdf in diapositive di google
Lascia la scheda SD nel tuo computer quando ha finito. Apri un file manager e cerca la scheda. Dovresti vedere un paio di partizioni diverse. Cerca la partizione di avvio. È quello con un file kernel.img al suo interno. Crea un file di testo vuoto nella partizione di avvio e chiamalo ssh senza estensione di file.
Puoi finalmente connettere il tuo Pi. Assicurati di collegarlo per ultimo. Non avrai bisogno di schermo, tastiera o mouse. Accederai in remoto al Raspberry Pi sulla tua rete.
Dai al Pi qualche minuto per configurarsi. Quindi, apri un browser web e vai alla schermata di gestione del tuo router. Trova il Raspberry Pi e annota il suo indirizzo IP.
Che tu sia su Windows, Linux o Mac, apri OpenSSH. Connettiti al Raspberry Pi con SSH.
$ ssh [email protected]
Ovviamente, usa l'effettivo indirizzo IP del Pi. Il nome utente èsempre pi, e la password èlampone.
Configura OpenVPN
OpenVPN non è esattamente semplice da configurare come server. La buona notizia è che devi farlo solo una volta. Quindi, prima di approfondire, assicurati che Raspbian sia completamente aggiornato.
$ sudo apt update $ sudo apt upgrade
Al termine dell'aggiornamento, puoi installare OpenVPN e l'utilità di certificazione di cui hai bisogno.
$ sudo apt install openvpn easy-rsa
Autorità di certificazione
Per autenticare i dispositivi quando tentano di connettersi al server, è necessario configurare un'autorità di certificazione per creare chiavi di firma. Queste chiavi garantiranno che solo i tuoi dispositivi saranno in grado di connettersi alla rete domestica.
Innanzitutto, crea una directory per i tuoi certificati. Spostati in quella directory.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Cerca i file di configurazione di OpenSSL. Quindi, collega l'ultimo conopensl.cnf.
$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
Nella stessa cartella dei certificati c'è un file chiamato vars. Apri quel file con il tuo editor di testo. Nano è l'impostazione predefinita, ma sentiti libero di installare Vim, se ti senti più a tuo agio.
Trovare laKEY_SIZEvariabile prima. È impostato su2048per impostazione predefinita. Cambialo in4096.
export KEY_SIZE=4096
Il blocco principale che devi gestire stabilisce le informazioni sulla tua autorità di certificazione. Aiuta se queste informazioni sono accurate, ma tutto ciò che puoi ricordare va bene.
export KEY_COUNTRY='US' export KEY_PROVINCE='CA' export KEY_CITY='SanFrancisco' export KEY_ORG='Fort-Funston' export KEY_EMAIL=' [email protected] ' export KEY_OU='MyOrganizationalUnit' export KEY_NAME='HomeVPN'
Quando hai tutto, salva ed esci.
Quel pacchetto Easy-RSA che hai installato prima contiene molti script che aiutano a configurare tutto ciò di cui hai bisogno. Hai solo bisogno di eseguirli. Inizia aggiungendo il file vars come sorgente. Questo caricherà tutte le variabili che hai appena impostato.
$ sudo source ./vars
Quindi, pulisci le chiavi. Non ne hai, quindi non preoccuparti del messaggio che ti dice che le tue chiavi verranno eliminate.
$ sudo ./clean-install
Infine, crea la tua autorità di certificazione. Hai già impostato le impostazioni predefinite, quindi puoi semplicemente accettare le impostazioni predefinite che presenta. Ricorda di impostare una password complessa e di rispondere sì alle ultime due domande, dopo la password.
$ sudo ./build-ca
Crea alcune chiavi
Hai affrontato tutti quei problemi per impostare un'autorità di certificazione in modo da poter firmare le chiavi. Ora è il momento di farne un po'. Inizia costruendo la chiave per il tuo server.
$ sudo ./build-key-server server
Quindi, costruisci il PEM Diffie-Hellman. È ciò che OpenVPN utilizza per proteggere le connessioni del tuo client al server.
$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem
L'ultima chiave di cui hai bisogno da ora è chiamata chiave HMAC. OpenVPN utilizza questa chiave per firmare ogni singolo pacchetto di informazioni scambiate tra il client e il server. Aiuta a prevenire alcuni tipi di attacchi alla connessione.
$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key
Configurazione del server
Hai le chiavi. Il prossimo passo nella configurazione di OpenVPN è la configurazione del server stesso. Per fortuna, non c'è tutto ciò che devi fare qui. Debian fornisce una configurazione di base che puoi usare per iniziare. Quindi, inizia ottenendo quel file di configurazione.
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Usa di nuovo il tuo editor di testo per aprire/etc/openvpn/server.conf. Le prime cose che devi trovare sono lequella,certo, echiaveFile. Devi impostarli in modo che corrispondano alle posizioni effettive dei file che hai creato, che sono tutti in/etc/openvpn/certs/keys.
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # This file should be kept secret
Trovare lacioèimpostazione e modificarla in modo che corrisponda a Diffie-Hellman.pemche hai creato.
dh dh4096.pem
Imposta anche il percorso per la tua chiave HMAC.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Trovare lacifrae assicurati che corrisponda all'esempio seguente.
cipher AES-256-CBC
Le prossime due opzioni ci sono, ma sono commentate con a;. Rimuovere i punti e virgola davanti a ciascuna opzione per abilitarli.
push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'
Cerca ilutenteegruppoopzioni. Decommentali e cambia ilutenteaprire vpn.
user openvpn group nogroup
Infine, queste ultime due righe non sono nella configurazione predefinita. Dovrai aggiungerli alla fine del file.
Imposta il digest di autenticazione per specificare una crittografia più forte per l'autenticazione dell'utente.
# Authentication Digest auth SHA512
Quindi, limita i cipers che OpenVPN può utilizzare solo a quelli più potenti. Questo aiuta a limitare possibili attacchi a cifrari deboli.
# Limit Ciphers tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Questo è tutto per la configurazione. Salva il file ed esci.
Avvia il server
Prima di poter avviare il server, devi farloopenvpnutente che hai specificato.
$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
È un utente speciale solo per l'esecuzione di OpenVPN e non farà nient'altro.
Ora avvia il server.
$ sudo systemctl start openvpn $ sudo systemctl start [email protected]
Controlla che siano entrambi in esecuzione
$ sudo systemctl status openvpn*.service
Se tutto sembra a posto, abilitali all'avvio.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
Configurazione del cliente
Il tuo server è ora configurato e funzionante. Successivamente, è necessario impostare la configurazione del client. Questa è la configurazione che utilizzerai per connettere i tuoi dispositivi al tuo server. Torna alcertocartella e prepararsi a creare le chiavi del client. Puoi scegliere di creare chiavi separate per ogni client o una chiave per tutti i client. Per l'uso domestico, una chiave dovrebbe andare bene.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Il processo è quasi identico a quello del server, quindi segui la stessa procedura.
Configurazione del cliente
La configurazione per i client è molto simile a quella per il server. Ancora una volta, hai un modello predefinito su cui basare la tua configurazione. Devi solo modificarlo in modo che corrisponda al server.
Cambia inclientedirectory. Quindi, decomprimere la configurazione di esempio.
$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn
Apri il filecliente.ovpnfile con il tuo editor di testo. Quindi, trova ila distanzaopzione. Supponendo che tu non stia già utilizzando una VPN, cerca su Google Qual è il mio IP. Prendi l'indirizzo visualizzato e imposta il seta distanzaindirizzo IP ad esso. Lascia il numero di porta.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Modifica i certificati in modo che riflettano quelli che hai creato, proprio come hai fatto con il server.
ca ca.crt cert client.crt key client.key
Trova le opzioni utente e decommentale. Va bene gestire i client comenessuno.
user nobody group nogroup
Rimuovi il commentotls-authopzione per HMAC.
tls-auth ta.key 1
Quindi, cerca ilcifraopzione e assicurati che corrisponda al server.
cipher AES-256-CBC
Quindi, aggiungi semplicemente il digest di autenticazione e le restrizioni di crittografia nella parte inferiore del file.
# Authentication Digest auth SHA512 # Cipher Restrictions tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Quando tutto sembra a posto, salva il file ed esci. Usocatrameper impacchettare la configurazione e i certificati, in modo da poterli inviare al client.
$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn
Trasferisci quel pacchetto al cliente come preferisci. SFTP, FTP e un'unità USB sono tutte ottime opzioni.
Port forwarding
Affinché tutto ciò funzioni, è necessario configurare il router per inoltrare il traffico VPN in entrata al Pi. Se stai già utilizzando una VPN, devi assicurarti di non connetterti sulla stessa porta. Se lo sei, cambia la porta nelle configurazioni client e server.
Connettiti all'interfaccia web del tuo router digitando il suo indirizzo IP sul tuo browser.
Ogni router è diverso. Tuttavia, tutti dovrebbero avere una qualche forma di questa funzionalità. Trovalo sul tuo router.
La configurazione è fondamentalmente la stessa su ogni router. Inserisci le porte di inizio e fine. Dovrebbero essere uguali tra loro e quello che hai impostato nelle tue configurazioni. Quindi, per l'indirizzo IP, impostalo sull'IP del tuo Raspberry Pi. Salva le tue modifiche.
Connettiti al cliente
Ogni cliente è diverso, quindi non esiste una soluzione universale. Se sei su Windows, avrai bisogno di Client Windows OpenVPN .
Su Android, puoi aprire il tuo archivio tar e trasferire le chiavi sul tuo telefono. Quindi, installa l'app OpenVPN. Apri l'app e inserisci le informazioni dal file di configurazione. Quindi seleziona le tue chiavi.
Su Linux, devi installare OpenVPN come hai fatto per il server.
$ sudo apt install openvpn
Quindi, cambia in/etc/openvpne decomprimi il tarball che hai inviato.
$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz
Rinominare il file del cliente.
$ sudo mv client.ovpn client.conf
Non avviare ancora il client. Fallirà. Devi prima abilitare il port forwarding sul tuo router.
Pensieri conclusivi
Ora dovresti avere una configurazione funzionante. Il tuo client si collegherà direttamente tramite il tuo router al Pi. Da lì, puoi condividere e connetterti sulla tua rete virtuale, purché tutti i dispositivi siano connessi alla VPN. Non ci sono limiti, quindi puoi sempre connettere tutti i tuoi computer alla Pi VPN.