Anonim

Perché usare una VPN per accedere a casa tua

Link veloci

  • Perché usare una VPN per accedere a casa tua
  • Installa The Pi
    • Installa Raspbian
  • Imposta OpenVPN
    • Autorità di certificazione
    • Crea alcune chiavi
    • Configurazione del server
    • Avvia il server
  • Configurazione client
    • Configurazione client
  • Port forwarding
  • Connetti al client
  • Pensieri di chiusura

Ci sono molte ragioni 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 crearne uno tu stesso.

Un Raspberry Pi è un ottimo modo per ottenere questo risultato. Non richiedono molta energia per funzionare e hanno abbastanza energia per far funzionare un server VPN. Puoi installarne uno accanto al tuo router e praticamente dimenticartene.

Quando hai accesso remoto alla tua rete domestica, puoi accedere ai tuoi file ovunque. Puoi eseguire i tuoi computer domestici da remoto. Puoi persino utilizzare la connessione VPN di casa tua dalla strada. Una configurazione come questa consente al telefono, al tablet o al laptop di agire come se fosse a casa da qualsiasi luogo.

Installa The Pi

Prima di poter iniziare a configurare la VPN, dovrai configurare Raspberry Pi. È meglio impostare 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 alla pagina di download di Rasbian e prendi l'ultima versione. Puoi utilizzare la versione "Lite" qui, perché in realtà non hai bisogno di un desktop grafico.

Durante il download, scarica l'ultima versione di Etcher per il tuo sistema operativo. Al termine del download, estrarre l'immagine Raspbian. Quindi, apri Etcher. Seleziona l'immagine di Raspbian da dove l'hai estratta. Seleziona la tua scheda SD (inseriscila prima). Infine, scrivi l'immagine sulla scheda.

Lascia la scheda SD sul computer al termine. Apri un file manager e cerca la scheda. Dovresti vedere un paio di partizioni diverse. Cerca la partizione di "avvio". È quello che contiene un file "kernel.img". Crea un file di testo vuoto sulla partizione "boot" e chiamalo "ssh" senza estensione.

Puoi finalmente connettere il tuo Pi. Assicurati di averlo collegato per ultimo. Non avrai bisogno di uno schermo, una tastiera o un mouse. Accederai in remoto a Raspberry Pi tramite la tua rete.

Concedi al Pi qualche minuto per installarsi. Quindi, aprire un browser Web e accedere alla schermata di gestione del router. Trova il Raspberry Pi e annota il suo indirizzo IP.

Che tu sia su Windows, Linux o Mac, apri OpenSSH. Connettiti a Raspberry Pi con SSH.

$ ssh

Ovviamente, utilizza l'attuale indirizzo IP del Pi. Il nome utente è sempre pi e la password è raspberry.

Imposta OpenVPN

OpenVPN non è esattamente semplice da configurare come server. La buona notizia è che devi farlo una sola volta. Quindi, prima di scavare, assicurati che Raspbian sia completamente aggiornato.

$ sudo apt update $ sudo apt upgrade

Al termine dell'aggiornamento, è possibile installare OpenVPN e l'utilità di certificazione necessaria.

$ sudo apt installa openvpn easy-rsa

Autorità di certificazione

Per autenticare i tuoi dispositivi quando provano a connettersi al server, devi creare un'autorità di certificazione per creare chiavi originali. Queste chiavi assicureranno che solo i tuoi dispositivi saranno in grado di connettersi alla tua rete domestica.

Innanzitutto, crea una directory per i tuoi certificati. Sposta in quella directory.

$ sudo make-cadir / etc / openvpn / certs $ cd / etc / openvpn / certs

Cerca i file di configurazione di OpenSSL. Quindi, collega l'ultimo con openssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

Nella stessa cartella "certs" 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.

Trova prima la variabile KEY_SIZE. È impostato su 2048 per impostazione predefinita. Modificalo in 4096.

export KEY_SIZE = 4096

Il blocco principale che è necessario gestire stabilisce le informazioni sull'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 = "" 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. Devi solo 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, seguendo la password.

$ sudo ./build-ca

Crea alcune chiavi

Hai superato tutti questi 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 Diffie-Hellman PEM. È ciò che OpenVPN utilizza per proteggere le connessioni client al server.

$ sudo openssl dhparam 4096> /etc/openvpn/dh4096.pem

L'ultima chiave di cui hai bisogno da ora si chiama chiave HMAC. OpenVPN utilizza questa chiave per firmare ogni singolo pacchetto di informazioni scambiate tra il client e il server. Aiuta a prevenire determinati 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, qui non c'è molto che devi fare. 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 l'editor di testo per aprire /etc/openvpn/server.conf. Le prime cose che devi trovare sono i file ca, cert e key. È necessario impostarli in modo che corrispondano alle posizioni effettive dei file creati, 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 # Questo file deve essere tenuto segreto

Trova l'impostazione dh e modificala in modo che corrisponda al .pem Diffie-Hellman che hai creato.

dh dh4096.pem

Imposta anche il percorso per la tua chiave HMAC.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Trova il codice e assicurati che corrisponda all'esempio seguente.

cifra AES-256-CBC

La prossima coppia di opzioni ci sono, ma sono commentate con un;. Rimuovere i punti e virgola davanti a ciascuna opzione per abilitarli.

push "redirect-gateway def1 bypass-dhcp" push "dhcp-opzione DNS 208.67.222.222" push "dhcp-opzione DNS 208.67.220.220"

Cerca le opzioni utente e gruppo. Rimuovi il commento e cambia l'utente in "openvpn".

gruppo di utenti openvpn nogroup

Infine, queste ultime due righe non sono nella configurazione predefinita. Dovrai aggiungerli alla fine del file.

Impostare il digest di autenticazione per specificare una crittografia più forte per l'autenticazione utente.

# Autenticazione Digest auth SHA512

Quindi, limitare i codici che OpenVPN può utilizzare solo a quelli più potenti. Questo aiuta a limitare possibili attacchi a cifre 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-CON-CAMELIA-256-CBC-SHA: TLS-DHE-RSA-CON-AES-128-CBC-SHA: TLS-DHE-RSA-CON-CAMELIA-128-CBC- SHA

Questo è tutto per la configurazione. Salva il file ed esci.

Avvia il server

Prima di poter avviare il server, è necessario rendere l'utente openvpn specificato.

$ sudo adduser --system --shell / usr / sbin / nologin --no-create-home openvpn

È un utente speciale solo per l'esecuzione di OpenVPN e non farà altro.

Ora avvia il server.

$ sudo systemctl start openvpn $ sudo systemctl start

Controlla che siano entrambi in esecuzione

$ sudo systemctl status openvpn * .service

Se tutto sembra a posto, abilitalo all'avvio.

$ sudo systemctl abilita openvpn $ sudo systemctl abilita

Configurazione client

Il server è ora impostato e funzionante. Successivamente, è necessario impostare la configurazione del client. Questa è la configurazione che utilizzerai per connettere i tuoi dispositivi al tuo server. Torna alla cartella certs e preparati a creare le chiavi del client. È possibile scegliere di creare chiavi separate per ciascun client o una chiave per tutti i client. Per 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 client

La configurazione per i client è molto simile a quella per il server. Ancora una volta, hai un modello predefinito su cui basare la configurazione. Hai solo bisogno di modificarlo per abbinare il server.

Passare alla directory client. 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 file client.ovpn con il tuo editor di testo. Quindi, trova l'opzione remota. Supponendo che tu non stia già utilizzando una VPN, cerca Google "Qual è il mio IP". Prendi l'indirizzo che mostra e imposta l'indirizzo IP remoto su di esso. Lascia il numero di porta.

107.150.28.83 remoto 1194 #Che IP è ironicamente una VPN

Cambia i certificati per riflettere quelli che hai creato, proprio come hai fatto con il server.

ca ca.crt cert client.crt chiave client.key

Trova le opzioni utente e decommentale. Va bene gestire i clienti come nessuno.

utente nessuno raggruppa nogroup

Rimuovi il commento dall'opzione tls-auth per HMAC.

tls-auth ta.key 1

Quindi, cerca l'opzione di crittografia e assicurati che corrisponda al server.

cifra AES-256-CBC

Quindi, aggiungi le restrizioni di digest e cifratura dell'autenticazione nella parte inferiore del file.

# Autenticazione Digest auth SHA512 # Limitazioni di cifratura 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-CON-CAMELIA-256-CBC-SHA: TLS-DHE-RSA-CON-AES-128-CBC-SHA: TLS-DHE-RSA-CON-CAMELLIA -128-CBC-SHA

Quando tutto sembra a posto, salva il file ed esci. Usa tar per 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 sul client 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. In tal caso, modificare la porta sulle configurazioni client e server.

Collegati all'interfaccia web del tuo router digitando il suo indirizzo IP sul tuo browser.

Ogni router è diverso. Anche ancora, tutti dovrebbero avere una qualche forma di questa funzionalità. Trovalo sul tuo router.

L'installazione è sostanzialmente la stessa su tutti i router. Immettere le porte di inizio e fine. Dovrebbero essere uguali tra loro e quello impostato nelle configurazioni. Quindi, per l'indirizzo IP, impostalo sull'IP del tuo Raspberry Pi. Salva le tue modifiche.

Connetti al client

Ogni cliente è diverso, quindi non esiste una soluzione universale. Se sei su Windows, avrai bisogno del client OpenVPN di Windows .

Su Android, puoi aprire il tuo tarball e trasferire le chiavi sul tuo telefono. Quindi, installa l'app OpenVPN. Apri l'app e collega le informazioni dal tuo file di configurazione. Quindi seleziona le tue chiavi.

Su Linux, è necessario installare OpenVPN in modo molto simile a quanto fatto per il server.

$ sudo apt installa openvpn

Quindi, cambia in / etc / openvpn e decomprimi il tarball che hai inviato.

$ cd / etc / openvpn $ sudo tar xJf /path/to/client.tar.xz

Rinomina il file client.

$ sudo mv client.ovpn client.conf

Non avviare ancora il client. Fallirà. Devi prima abilitare il port forwarding sul tuo router.

Pensieri di chiusura

Ora dovresti avere una configurazione funzionante. Il tuo client si connetterà direttamente tramite Pi al router. Da lì, puoi condividere e connetterti tramite la tua rete virtuale, a condizione che tutti i dispositivi siano connessi alla VPN. Non ci sono limiti, quindi puoi sempre connettere tutti i tuoi computer alla VPN Pi.

Trasforma un raspberry pi in un vpn per accedere alla tua rete da qualsiasi luogo