Sommario:

Gateway VPN Raspberry Pi: 6 passaggi
Gateway VPN Raspberry Pi: 6 passaggi

Video: Gateway VPN Raspberry Pi: 6 passaggi

Video: Gateway VPN Raspberry Pi: 6 passaggi
Video: How to set up Express VPN using OpenVPN inside OpenWRT running on a Raspberry Pi? 2024, Dicembre
Anonim
Gateway VPN Raspberry Pi
Gateway VPN Raspberry Pi

Aggiornamento 2018-01-07:

  • Aggiornate le cose mancanti e le modifiche necessarie per la versione corrente di Raspian.
  • Creata anche una guida specifica per NordVPN.

Ci sono alcuni usi diversi per VPN. O vuoi proteggere la tua privacy e i tuoi dati privati da occhi indiscreti o devi rifornirti da un altro paese. L'approvvigionamento da un altro paese può essere molto utile per accedere a servizi non forniti nel tuo paese. Esistono numerosi servizi VPN oggi disponibili e la maggior parte di essi offre software di facile utilizzo per il tuo computer e app per il tuo tablet o telefono. Ma se hai altri dispositivi non supportati dal software vuoi passare alla VPN? Quindi crea un gateway che ti dia accesso a Internet tramite la VPN.

Se guardi la tua configurazione di rete di base hai un "gateway predefinito" che viene utilizzato per qualsiasi indirizzo IP non situato nella tua sottorete corrente (molto semplificato). Quindi, se imposti un gateway in grado di instradare il traffico Internet su una connessione VPN stabilita, qualsiasi dispositivo abilitato alla rete può sfruttare il tunnel VPN.

Il mio caso d'uso principale nel mio appartamento a San Francisco è un tunnel VPN per la mia nativa Svezia, così posso trasmettere in streaming i canali di riproduzione svedesi sui miei lettori multimediali e smart TV. Questo è un caso d'uso abbastanza comune per la maggior parte delle persone che necessitano di un tunnel VPN. Poiché i miei lettori multimediali e le mie smart TV non sono supportati dal software VPN, ne ho creato uno con un Raspberry Pi.

Puoi prenderne uno per meno di $ 40 su Amazon. Tuttavia, ti consiglio di acquistare anche una custodia e un alimentatore decente. Per questo istruibile hai bisogno di:

  • Raspberry Pi 2 o 3
  • Un caso di tuo gradimento
  • Un alimentatore decente
  • Un cavo di rete

Passaggio 1: scelta del servizio VPN

Scegli il tuo servizio VPN
Scegli il tuo servizio VPN

La cosa importante quando si seleziona un servizio VPN è che soddisfi i propri requisiti. Per questo caso d'uso avevo bisogno di un servizio VPN con un punto di uscita svedese, questa è la cosa più importante poiché ho bisogno dei servizi svedesi per essere convinto di essere in Svezia. Nel corso degli anni ho utilizzato diversi fornitori e di seguito sono riportate le cose che tengo in considerazione quando scelgo il fornitore VPN per il caso d'uso specifico:

Prova gratuita

Desidero un periodo di prova gratuito o una piccola quantità di dati di prova per avere un'idea del software o dell'app. Inoltre voglio testare le prestazioni e l'esperienza complessiva prima di pagare per questo. È anche bello controllare che la mia idea funzionerà prima di iniziare a pagare.

Privacy

Se l'implementazione è per problemi di privacy, è davvero importante ciò che afferma l'informativa sulla privacy. È anche importante da quale paese opera l'azienda e quali leggi proteggono la tua privacy. Gli utenti realmente interessati alla privacy dovrebbero guardare a un servizio che affermi che non vengono archiviati registri di traffico e consente pagamenti anonimi tramite Bitcoin, ad esempio.

Traffico consentito

Potrebbero esserci limitazioni sul tipo di traffico che ti sarà consentito eseguire. I fornitori più seri di solito bloccano il traffico peer-to-peer. Questo non solo per evitare problemi legali, ma per essere in grado di mantenere le prestazioni per tutti gli utenti. Tuttavia, ci sono molti buoni fornitori là fuori che consentono il peer-to-peer e forniscono comunque un servizio di alta qualità. Ma se questo non è il tuo obiettivo principale, ti consiglio di selezionare un servizio che non permetta il peer-to-peer.

Limite dati

Non utilizzare mai un servizio che mantiene un limite di dati sui propri utenti paganti. Questo si esaurirà nel momento peggiore possibile, esattamente come i dati sul tuo telefono appena prima della parte divertente in un video clip!

Paesi di uscita

A seconda del caso d'uso, questo ha un'importanza diversa. Per un caso d'uso come il mio, in cui devo finire in un paese specifico, ovviamente deve essere nell'elenco. Devo anche poter selezionare il paese in cui esco. Ci sono servizi in cui non puoi selezionare il paese di uscita, stai lontano da quelli. Puoi finire in un paese con cattive prestazioni o leggi sulla privacy. Anche se non hai bisogno di un paese specifico, dovresti comunque selezionare un servizio con alcuni paesi diversi da cui mostrare per poterne trovare uno con buone prestazioni.

Tipo di software e supporto

Questo è uno dei motivi principali per cui preferisco i servizi con un test gratuito. Ci sono così tanti fornitori con software scadente che sono bacati, insicuri o semplicemente non funzionano. Per un'implementazione Raspberry Pi ho bisogno di un provider che supporti OpenVPN.

La mia selezione

Per questa build sono andato con Tunnel Bear. Viene offerto un test gratuito fino a 500 GB in modo da poter verificare di poter effettivamente eseguire lo streaming prima di pagare qualsiasi cosa. Hanno sede in Canada che, dopo la Svezia, ha alcune delle leggi sulla privacy più severe al mondo. Nessun limite di dati sul servizio a pagamento e posso anche avere più dispositivi collegati contemporaneamente. Quindi anche la protezione per il mio telefono, tablet e computer durante il viaggio su Wi-Fi non sicuro è ordinata. Il nodo di uscita in Svezia è supportato, in realtà è fornito tramite Bahnhof, noto per la forte privacy in Svezia. Per i piani a pagamento offrono il supporto OpenVPN. Non lo fanno per il test gratuito, ma è stato sufficiente eseguirlo dal mio laptop per assicurarmi che i servizi di streaming funzionassero.

Passaggio 2: installa il Raspberry Pi

Per implementazioni come questa utilizzo il sistema operativo Raspbian Lite. Dal momento che non ho affatto bisogno della GUI. Puoi ottenere l'ultima versione qui.

Uso Win32DiskImager per caricare il file.img sulla scheda SD per il Raspberry Pi.

Una volta avviato il Raspberry Pi, guardo nell'elenco DHCP del mio router per ottenere l'indirizzo IP e quindi mi connetto su SSH con Putty. Il nome utente e la password standard sono pi/raspberry

Una volta connesso eseguo lo strumento raspi-config per modificare le impostazioni di base.

sudo raspi-config

Le cose più importanti di cui occuparsi in questa configurazione sono:

  • Espandi il file system
  • Cambia la password

Puoi anche cambiare il nome host del tuo Raspberry Pi, se lo desideri. Il mio DHCP ha contratti di locazione molto lunghi e posso anche prenotare un indirizzo specifico. Se non hai questa capacità, devi configurare il Raspberry Pi per utilizzare un indirizzo IP statico. Poiché altri dispositivi lo utilizzeranno come gateway predefinito, è importante che continui a utilizzare lo stesso indirizzo IP. Ecco un post che ho scritto sull'impostazione di un IP statico in Raspbian Jessie.

Quindi dobbiamo aggiornare tutto all'ultima versione:

sudo apt-get updateudo apt-get upgrade sudo apt-get dist-upgrade

Passaggio 3: installa OpenVPN

Installa OpenVPN
Installa OpenVPN

Ora dobbiamo installare OpenVPN sul Raspberry Pi.

sudo apt-get install openvpn

Quindi dobbiamo assicurarci che il servizio si avvii correttamente.

sudo systemctl abilita openvpn

Al termine dell'installazione, è necessario copiare i file di configurazione e i certificati di OpenVPN nella scatola. Questo ti verrà fornito dal tuo provider VPN. Nel mio caso, usando TunnelBear, ho trovato un post sul blog sul supporto Linux. In quella pagina c'è un collegamento al file zip contenente tutto ciò di cui abbiamo bisogno.

Il file contiene i file del certificato e un file di configurazione.opvn per ogni paese in cui puoi eseguire il tunneling. Hai bisogno di tutti i file del certificato e il file di configurazione.opvn per il paese di tua scelta, nel mio caso la Svezia. Decomprimi i file necessari e usa winscp per caricare i file sul tuo Raspberry Pi. Lo stesso nome utente/password utilizzato per SSH ti porterà a /home/pi, basta rilasciare i file lì.

Quindi torniamo al terminale SSH e spostiamo i file nella cartella OpenVPN. Il primo comando è solo per assicurarsi di essere nella cartella /home/pi.

cd /home/pi

sudo mv * /etc/openvpn/

Ora dobbiamo apportare alcune modifiche ai file. Per prima cosa dobbiamo rinominare il file di configurazione da.ovpn a.conf. Qualsiasi file che termina con.conf nella cartella /etc/openvpn verrà avviato automaticamente all'avvio del demone OpenVPN. Per prima cosa dobbiamo entrare in quella directory.

cd /etc/openvpn

Quindi cambiamo il nome del file di configurazione. Puoi chiamarlo come vuoi, purché termini con.conf. Preferisco usare nomi di file senza spazi, in questo caso vado con swe.conf.

sudo mv *.ovpn swe.conf

Quindi abbiamo bisogno di un file di autenticazione contenente il nome utente e la password utilizzati per il tunnel VPN. Apri un editor di testo e scrivi il nome utente e la password su righe separate. Chiameremo questo file auth.txt.

sudo nano auth.txt

Il contenuto dovrebbe essere come questo esempio:

nome utente

parola d'ordine

Quindi usa CTRL + O per scrivere sul file e CTRL + X per uscire dall'editor di testo nano. Dobbiamo anche proteggere il file auth.txt contenente le nostre credenziali.

sudo chmod 600 /etc/openvpn/auth.txt

Quindi dobbiamo modificare il file di configurazione per assicurarci che tutti i percorsi siano corretti e aggiungere un riferimento al file auth.txt appena creato.

sudo nano swe.conf

Le righe da modificare sono quelle che fanno riferimento ad altri file, devono essere percorsi assoluti. In questo esempio questo è quello che stiamo cercando:

ca CACertificate.crt

cert UserCertificate.crt key PrivateKey.key

Li cambiamo in percorsi assoluti come questo:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt chiave /etc/openvpn/PrivateKey.key

Quindi alla fine del file aggiungiamo un riferimento al file auth.txt, in questo modo:

auth-user-pass /etc/openvpn/auth.txt

Ancora una volta usiamo CTRL + O per salvare il file e poi CTRL + X per uscire da nano. Ora possiamo riavviare il demone OpenVPN e vedere che il tunnel funziona.

sudo service openvpn riavvio

Se esegui il comando ifconfig dovresti vedere un adattatore tun0 oltre agli adattatori eth0 e lo se il tunnel è attivo. Puoi anche eseguire il comando questo comando per controllare il tuo IP pubblico:

wget https://ipinfo.io/ip -qO -

Se hai problemi con il tunnel, prova prima a riavviare il tuo Raspberry Pi e poi ricontrolla la configurazione per gli errori.

Passaggio 4: configurazione del percorso

Ora dobbiamo abilitare l'inoltro IP. Consente al traffico di rete di fluire in entrata da una delle interfacce di rete e in uscita dall'altra. Fondamentalmente creando un router.

sudo /bin/su -c "echo -e '\n#Abilita routing IP\nnet.ipv4.ip_forward = 1' > /etc/sysctl.conf"

Se esegui sudo sysctl -p dovresti vedere questo stampato sullo schermo:

net.ipv4.ip_forward = 1

Ora il routing è abilitato e il traffico può passare attraverso il Raspberry Pi, attraverso il tunnel e su Internet.

Passaggio 5: installazione di firewall e NAT

Poiché avremo diversi client all'interno che accedono a Internet tramite un indirizzo IP pubblico, dobbiamo utilizzare NAT. È l'acronimo di traduzione degli indirizzi di rete e terrà traccia di quale client ha richiesto quale traffico quando le informazioni ritornano attraverso il tunnel. Abbiamo anche bisogno di impostare una certa sicurezza attorno al Raspberry Pi stesso e al tunnel.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Abilitazione NAT.

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

Consentire a qualsiasi traffico proveniente da eth0 (interno) di superare tun0 (tunnel).

sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT

Consentire al traffico da tun0 (tunnel) di tornare su eth0 (interno). Poiché specifichiamo lo stato RELATED, ESTABLISHED sarà limitato alla connessione avviata dalla rete interna. Blocco del traffico esterno che tenta di avviare una nuova connessione.

sudo iptables -A INPUT -i lo -j ACCEPT

Consentire il traffico di loopback del Raspberry Pi.

sudo iptables -A INPUT -i eth0 -p icmp -j ACCEPT

Consentire ai computer della rete locale di eseguire il ping del Raspberry Pi.

sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Consentire SSH dalla rete interna.

sudo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

Consentire a tutto il traffico avviato dal Raspberry Pi di tornare. Questo è lo stesso preside di stato di prima.

sudo iptables -P FORWARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

Se il traffico non corrisponde a nessuna delle regole specificate, verrà eliminato.

sudo apt-get install iptables-persistent

sudo systemctl abilita netfilter-persistent

La prima riga installa una pace di codice che rende persistenti le regole iptable che abbiamo appena creato tra i riavvii. Il secondo salva le regole dopo averle modificate. Questa volta è sufficiente eseguire il primo. Se cambi le regole, esegui la seconda per salvare. Le regole di Iptable entrano in vigore non appena le aggiungi se sbagli e perdi l'accesso, basta riavviare e quelle non ancora salvate verranno ripristinate.

Passaggio 6: conclusione

Ora puoi utilizzare questo tunnel da qualsiasi dispositivo o computer sulla stessa rete. Basta cambiare il gateway predefinito con qualsiasi indirizzo IP del tuo Raspberry Pi. Nel mio caso entrambi i miei media center Kodi (una camera da letto e un soggiorno) utilizzano questa connessione in modo da poter trasmettere in streaming i miei canali di gioco svedesi. Ovviamente ci sono anche altre cose per cui puoi usarlo.

Tieni presente che, a seconda del fornitore VPN che hai scelto e della velocità della tua connessione Internet, potrebbero esserci prestazioni lente.

Se avete domande o volete chiarire qualcosa fatemelo sapere nei commenti! Per ulteriori post tecnici, visita il mio blogg Hackviking!

Consigliato: