Come trasformare un Raspberry Pi in una VPN

Dichiarazione di non responsabilità: alcune pagine di questo sito potrebbero includere un collegamento di affiliazione. Ciò non pregiudica in alcun modo il nostro editoriale.

Vuoi sapere come trasformare un Raspberry Pi in una VPN? Ci sono moltissimi 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.

Come trasformare un Raspberry Pi in una VPN

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

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

Come trasformare un Raspberry Pi in una VPN

Configura 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 adeguate, 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 della fondazione Raspberry Pi ed è basata su Debian, una delle versioni Linux più sicure e stabili disponibili.

Offerta limitata: 3 mesi GRATIS!

Ottieni ExpressVPN. Sicuro e compatibile con lo streaming.

30-giorni rimborso garantito

Vai a Pagina di download di Rasbiane prendi l'ultima versione. Puoi utilizzare la versione “Lite” qui, perché in realtà non hai bisogno di un desktop grafico.

Durante il download, ottieni l'ultima versione di Acquaforte 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.

Al termine, lascia la scheda SD nel computer. Apri un file manager e cerca la scheda. Dovresti vedere un paio di partizioni diverse. Cerca la partizione "boot". È quello con un file "kernel.img" al suo interno. Crea un file di testo vuoto nella partizione "boot" e chiamalo "ssh" senza estensione di file.

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

Concedi al Pi qualche minuto per impostarsi. Quindi, apri un browser web e vai 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 al Raspberry Pi con SSH.

$ ssh [email protected]

Ovviamente, utilizza l'indirizzo IP effettivo del Pi. Il nome utente è Semprepie 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 tuoi dispositivi quando tentano di connettersi al server, devi 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 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.

Modifica il file Vars

Trovare il DIMENSIONE_CHIAVE prima variabile. È impostato su 2048 per impostazione predefinita. Cambialo in 4096.

export KEY_SIZE=4096

Il blocco principale che devi affrontare stabilisce le informazioni sulla tua autorità di certificazione. È utile che queste informazioni siano accurate, ma tutto ciò che riesci a 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.

Il pacchetto Easy-RSA che hai installato in precedenza contiene molti script che aiutano a configurare tutto ciò di cui hai bisogno. Devi solo eseguirli. Inizia aggiungendo il file "vars" come sorgente. Verranno caricate tutte le variabili che hai appena impostato.

$ sudo source ./vars

Quindi, ripulisci le chiavi. Non ne hai, quindi non preoccuparti del messaggio che ti informa che le tue chiavi verranno eliminate.

$ sudo ./clean-install
Crea autorità di certificazione

Infine, crea la tua autorità di certificazione. Hai già impostato le impostazioni predefinite, quindi puoi semplicemente accettare le impostazioni predefinite che presenta. Ricordati di impostare una password complessa e di rispondere "sì" alle ultime due domande, seguendo la password.

$ sudo ./build-ca

Crea alcune chiavi

Costruisci la chiave del server

Hai affrontato tutti questi problemi per configurare un'autorità di certificazione in modo da poter firmare le chiavi. Ora è il momento di crearne alcuni. Inizia creando la chiave per il tuo server.

$ sudo ./build-key-server server
Costruisci Diffie-Hellman

Successivamente, 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 avrai bisogno da ora è chiamata chiave HMAC. OpenVPN utilizza questa chiave per firmare ogni singolo pacchetto di informazioni scambiato 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 passaggio successivo nella configurazione di OpenVPN è la configurazione del server stesso. Per fortuna, non c'è molto che devi fare qui. Debian fornisce una configurazione di base che puoi utilizzare 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 aprirlo /etc/openvpn/server.conf. Le prime cose che devi trovare sono circa, cert, E chiave File. Devi impostarli in modo che corrispondano alle posizioni effettive dei file che hai creato, che sono tutti presenti /etc/openvpn/certs/keys.

Chiavi di configurazione del server OpenVPN
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 il mah impostazione e modificarla per adattarla a Diffie-Hellman .pem che hai creato.

dh dh4096.pem

Imposta anche il percorso per la tua chiave HMAC.

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

Trovare il cifra e assicurati che corrisponda all'esempio seguente.

cipher AES-256-CBC

Le prossime due opzioni sono presenti, ma sono commentate con a ;. Rimuovi il punto e virgola davanti a ciascuna opzione per abilitarla.

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

Cerca il utente E gruppo opzioni. Decommentali e modifica il file utente a "openvpn".

user openvpn. group nogroup

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

Aut. configurazione server OpenVPN

Imposta il digest di autenticazione per specificare una crittografia più potente per l'autenticazione dell'utente.

# Authentication Digest. auth SHA512

Quindi, limita i codici che OpenVPN può utilizzare solo a quelli più potenti. Ciò aiuta a limitare i possibili attacchi ai codici 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. Salvare il file ed uscire.

Avvia il server

Prima di poter avviare il server, è necessario farlo openvpn utente specificato.

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

È un utente speciale solo per eseguire 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. Ritorna al certificati cartella e prepararsi a creare le chiavi client. Puoi scegliere di creare chiavi separate per ciascun 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 per adattarlo al server.

Cambia in cliente directory. 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 client.ovpn file con il tuo editor di testo. Quindi, trova il a distanza opzione. Supponendo che tu non stia già utilizzando una VPN, cerca su Google "Qual è il mio IP". Prendi l'indirizzo visualizzato e imposta il file a distanza Indirizzo IP ad esso. Lasciare il numero della porta.

remote 107.150.28.83 1194 #That IP ironically is a VPN
Chiavi di configurazione del client OpenVPN

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 rimuovile dai commenti. Va bene gestire i client come nessuno.

user nobody. group nogroup

Decommenta il tls-auth opzione per HMAC.

tls-auth ta.key 1
Cifrature client OpenVPN

Quindi, cerca il cifra opzione 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. Utilizzo catrame 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 il pacchetto al cliente come preferisci. SFTP, FTP e un'unità USB sono tutte ottime opzioni.

Port forwarding

Port forwarding

Affinché tutto ciò funzioni, è necessario configurare il router per inoltrare il traffico VPN in entrata il pi greco. Se stai già utilizzando una VPN, devi assicurarti di non connetterti alla stessa porta. In tal caso, modificare 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 avrebbero dovuto avere una qualche forma di questa funzionalità. Trovalo sul tuo router.

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

Connettiti al cliente

Ogni cliente è diverso, quindi non esiste una soluzione universale. Se utilizzi Windows, avrai bisogno di Client Windows OpenVPN.

Su Android puoi aprire il tuo file 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 proprio come hai fatto per il server.

$ sudo apt install openvpn

Quindi, cambia in /etc/openvpne scompattare il file tar che hai inviato.

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

Rinominare il file cliente.

$ sudo mv client.ovpn client.conf

Non avviare ancora il client. Fallirà. È necessario prima abilitare il port forwarding sul router.

Considerazioni finali su come trasformare un Raspberry Pi in una VPN

Dopo aver saputo come trasformare un Raspberry Pi in una VPN, ora dovresti avere una configurazione funzionante. Il tuo client si connetterà direttamente tramite il 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 VPN Pi.