Taula de continguts:

Raspberry Pi VPN Gateway: 6 passos
Raspberry Pi VPN Gateway: 6 passos

Vídeo: Raspberry Pi VPN Gateway: 6 passos

Vídeo: Raspberry Pi VPN Gateway: 6 passos
Vídeo: Set Up Your Own VPN at Home With Raspberry Pi! (noob-friendly) 2024, Desembre
Anonim
Raspberry Pi VPN Gateway
Raspberry Pi VPN Gateway

Actualització 2018-01-07:

  • Hi ha faltades actualitzacions i canvis necessaris per a la versió actual de Raspian.
  • També es va crear una guia específica per a NordVPN.

Hi ha alguns usos diferents per a VPN. O bé voleu protegir la vostra privadesa i les vostres dades privades de mirades indiscretes o bé heu de procedir d’un altre país. L’abastiment d’un altre país pot ser molt útil per accedir a serveis que no es proporcionen al vostre país. Actualment hi ha una sèrie de serveis VPN i la majoria ofereixen programari fàcil d’utilitzar per a l’ordinador i aplicacions per a tauletes o telèfons. Però si teniu altres dispositius que no són compatibles amb el programari i voleu passar per la VPN? A continuació, creeu una passarel·la que us doni accés a Internet a través de la VPN.

Si mireu la configuració bàsica de la xarxa, teniu una "passarel·la predeterminada" que s'utilitza per a qualsevol adreça IP que no es trobi a la vostra subxarxa actual (molt simplificada). Per tant, si configureu una passarel·la que pugui encaminar el trànsit d’Internet a través d’una connexió VPN establerta, qualsevol dispositiu habilitat per la xarxa pot aprofitar el túnel VPN.

El meu cas d’ús principal al meu apartament de San Francisco és un túnel VPN cap a la meva Suècia natal per poder transmetre canals de reproducció suecs als meus reproductors multimèdia i a la televisió intel·ligent. Aquest és un cas d’ús força comú per a la majoria de les persones que necessiten un túnel VPN. Com que els meus reproductors multimèdia i els televisors intel·ligents no són compatibles amb el programari VPN, en vaig crear un de Raspberry Pi.

Podeu recollir-ne un per menys de 40 dòlars a Amazon. Tanmateix, us recomano que compreu una funda i un adaptador d'alimentació decent. Per a aquesta instrucció necessiteu:

  • Raspberry Pi 2 o 3
  • Un cas del vostre gust
  • Un adaptador d’alimentació decent
  • Un cable de xarxa

Pas 1: escolliu el vostre servei VPN

Trieu el vostre servei VPN
Trieu el vostre servei VPN

L’important a l’hora de seleccionar un servei VPN és que compleixi els vostres requisits. Per a aquest cas d'ús, necessitava un servei VPN amb un punt de sortida suec, això és el més important, ja que necessito que els serveis suecs estiguin convençuts que estic a Suècia. Al llarg dels anys he utilitzat diversos proveïdors diferents i a continuació es detallen les coses que tinc en compte a l’hora de seleccionar el proveïdor de VPN per al cas d’ús específic:

Prova gratuïta

Vull un període de prova gratuït o una petita quantitat de dades de prova per tenir una idea del programari o de l'aplicació. També vull provar el rendiment i l’experiència general abans de pagar-ho. També és bo comprovar que la meva idea funcionarà abans de començar a pagar.

Privadesa

Si la implementació és per qüestions de privadesa, és molt important el que estableix la política de privadesa. També és important des de quin país opera l'empresa i quines lleis protegeixen la vostra privadesa. Els usuaris realment preocupats per la privadesa haurien de mirar un servei que afirma que no s’emmagatzemen registres de trànsit i permeten pagaments anònims a través de Bitcoin, per exemple.

Trànsit permès

És possible que hi hagi limitacions sobre el tipus de trànsit que se us permetrà executar. Els proveïdors més seriosos solen bloquejar el trànsit entre iguals. No només per evitar problemes legals, sinó per mantenir el rendiment de tots els usuaris. Hi ha un bon nombre de bons proveïdors que permeten un servei d'igual a igual i que ofereixen un servei d'alta qualitat. Però si aquest no és el vostre recuirment principal, us recomano seleccionar un servei que no permeti interrelació.

Limitació de dades

No utilitzeu mai cap servei que mantingui un límit de dades sobre els usuaris que paguen. Això s’acabarà en el pitjor moment possible, exactament igual que les dades del telèfon just abans de la part divertida d’un videoclip.

Sortiu dels països

En funció del cas d’ús, això té una importància diferent. Per a un cas d'ús com el meu, on he d'arribar a un país concret, és clar que ha de figurar a la llista. També he de permetre'm seleccionar el país on surto. Hi ha serveis en què no podeu seleccionar el país de sortida. Mantingueu-vos allunyats d'aquests. Podeu acabar a un país amb un mal rendiment o lleis de privadesa. Fins i tot si no necessiteu un país concret, heu de seleccionar un servei amb alguns països diferents per mostrar-ne per trobar un amb un bon rendiment.

Tipus de programari i suport

Aquest és un dels principals motius pels quals prefereixo els serveis amb una prova gratuïta. Hi ha tants proveïdors amb programari incorrecte que són erronis, insegurs o simplement no funcionen. Per a una implementació de Raspberry Pi, necessito un proveïdor que admeti OpenVPN.

La meva selecció

Per a aquesta construcció vaig anar amb Tunnel Bear. S'ofereix una prova gratuïta de fins a 500 GB per poder provar que podia transmetre en temps real abans de pagar res. Tenen la seva seu al Canadà, que, al costat de Suècia, té algunes de les lleis de privadesa més fortes del món. No hi ha límit de dades en el servei de pagament i també em permet tenir diversos dispositius connectats alhora. Per tant, també es classifica la protecció del telèfon, de la tauleta i de l’ordinador mentre viatjo amb wifi no segur. El node de sortida a Suècia és compatible, en realitat es proporciona a través de Bahnhof, que és coneguda per tenir una gran privadesa a Suècia. Per als plans de pagament, ofereixen suport OpenVPN. No ho fan per a la prova gratuïta, però va ser suficient amb executar-ho des del meu ordinador portàtil per assegurar-me que els serveis de transmissió funcionaven.

Pas 2: instal·leu el Raspberry Pi

Per a implementacions com aquesta faig servir el sistema operatiu Raspbian Lite. Ja que no tinc cap necessitat de la GUI. Podeu obtenir la versió més recent aquí.

Utilitzo Win32DiskImager per carregar el fitxer.img a la targeta SD del Raspberry Pi.

Un cop arrencat el Raspberry Pi, busco a la llista DHCP dels meus routers per obtenir l'adreça IP i després connectar-me per SSH amb Putty. El nom d'usuari i la contrasenya estàndard són pi / raspberry

Un cop connectat, executo l'eina raspi-config per canviar la configuració bàsica.

sudo raspi-config

Les coses més importants a tenir en compte en aquesta configuració són:

  • Amplia el sistema de fitxers
  • Canvia la contrasenya

Si voleu, també podeu canviar el nom de l’amfitrió del vostre Raspberry Pi. El meu DHCP té contractes d’arrendament molt llargs i també puc reservar una adreça específica. Si no teniu aquesta capacitat, heu de configurar el Raspberry Pi per utilitzar una adreça IP estàtica. Com que altres dispositius l'utilitzaran com a passarel·la predeterminada, és important que continuï utilitzant la mateixa adreça IP. Aquí teniu un post que vaig escriure sobre la configuració d’una IP estàtica a Raspbian Jessie.

A continuació, hem d’actualitzar tot a la versió més recent:

sudo apt-get updates sudo apt-get upgrade sudo apt-get dist-upgrade

Pas 3: instal·leu OpenVPN

Instal·leu OpenVPN
Instal·leu OpenVPN

Ara hem d’instal·lar OpenVPN al Raspberry Pi.

sudo apt-get install openvpn

A continuació, hem d’assegurar-nos que el servei s’inicia correctament.

sudo systemctl habilita openvpn

Quan finalitzi la instal·lació, hem de copiar els fitxers de configuració i certificats OpenVPN a la caixa. Això us el proporcionarà el vostre proveïdor de VPN. En el meu cas, utilitzant TunnelBear, vaig trobar una publicació de bloc sobre el suport de Linux. En aquesta pàgina hi ha un enllaç al fitxer zip que conté tot el que necessitem.

El fitxer conté els fitxers de certificats i un fitxer de configuració.opvn per a cada país on es pot fer túnel. Necessiteu tots els fitxers de certificats i el fitxer de configuració.opvn per al país que trieu, en el meu cas Suècia. Descomprimiu els fitxers necessaris i utilitzeu winscp per penjar els fitxers al vostre Raspberry Pi. El mateix nom d'usuari / contrasenya que s'utilitza per a SSH us portarà a / home / pi, simplement deixeu anar els fitxers allà.

Després tornem al terminal SSH i movem els fitxers a la carpeta OpenVPN. La primera ordre és només per assegurar-nos que estem a la carpeta / home / pi.

cd / home / pi

sudo mv * / etc / openvpn /

Ara hem de fer algunes modificacions als fitxers. Primer hem de canviar el nom del fitxer de configuració de.ovpn a.conf. Qualsevol fitxer que acabi en.conf a la carpeta / etc / openvpn s'iniciarà automàticament quan s'iniciï el dimoni OpenVPN. Primer hem d’entrar a aquest directori.

cd / etc / openvpn

A continuació, canviem el nom del fitxer de configuració. Podeu anomenar-lo com vulgueu sempre que acabi en.conf. Prefereixo fer servir noms de fitxer sense espais en blanc, en aquest cas vaig amb swe.conf.

sudo mv *.ovpn swe.conf

A continuació, necessitem un fitxer d’autenticació que contingui el nom d’usuari i la contrasenya utilitzats per al túnel VPN. Obriu un editor de text i escriviu el nom d’usuari i la contrasenya en línies separades. Anomenarem aquest fitxer auth.txt.

sudo nano auth.txt

El contingut ha de ser com aquest exemple:

nom d'usuari

contrasenya

A continuació, utilitzeu CTRL + O per escriure al fitxer i CTRL + X per sortir de l’editor de text nano. També hem de protegir el fitxer auth.txt que conté les nostres credencials.

sudo chmod 600 /etc/openvpn/auth.txt

A continuació, hem d’editar el fitxer de configuració per assegurar-nos que tots els camins són correctes i afegir una referència al fitxer auth.txt de nova creació.

sudo nano swe.conf

Les línies que cal canviar són les que fan referència a altres fitxers, han de ser camins absoluts. En aquest exemple, això és el que busquem:

ca CACertificate.crt

cert UserCertificate.crt clau PrivateKey.key

Els canviem per camins absoluts així:

ca /etc/openvpn/CACertificate.crt

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

Al final del fitxer, afegim una referència al fitxer auth.txt, així:

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

Una vegada més fem servir CTRL + O per desar el fitxer i després CTRL + X per sortir de nano. Ara podem reiniciar el dimoni OpenVPN i veure que el túnel funciona.

servei sudo openvpn reinici

Si executeu l'ordre ifconfig, hauríeu de veure un adaptador tun0 a més dels adaptadors eth0 i lo si el túnel està activat. També podeu executar l'ordre d'aquesta ordre per comprovar la vostra IP pública:

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

Si teniu problemes per fer pujar el túnel, primer intenteu reiniciar el Raspberry Pi i, a continuació, comproveu si hi ha errors a la configuració.

Pas 4: configureu l'encaminament

Ara hem d’habilitar el reenviament d’IP. Permet que el trànsit de xarxa entri des d’una de les interfícies de xarxa i surti de l’altra. Essencialment, es crea un enrutador.

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

Si executeu sudo sysctl -p, hauríeu de veure-ho imprès a la pantalla:

net.ipv4.ip_forward = 1

Ara l’encaminament està habilitat i el trànsit pot passar pel Raspberry Pi, pel túnel i per Internet.

Pas 5: configureu el tallafoc i NAT

Com que tindrem diversos clients a l'interior que accedeixen a Internet a través d'una adreça IP pública, hem d'utilitzar NAT. Significa la traducció d’adreces de xarxa i farà un seguiment de quin client va sol·licitar quin tràfic quan la informació torna pel túnel. També hem de configurar certa seguretat al voltant del Raspberry Pi it self i del túnel.

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

S'està activant NAT.

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

Permetre que qualsevol trànsit des de eth0 (intern) passi per sobre tun0 (túnel).

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

Permetre que el trànsit de tun0 (túnel) retrocedeixi sobre eth0 (intern). Atès que especifiquem l'estat RELACIONAT, ESTABLIT, es limitarà a la connexió iniciada des de la xarxa interna. Bloqueig del trànsit extern que intenta iniciar una nova connexió.

sudo iptables -A INPUT -i lo -j ACCEPT

Permetre el trànsit de loopback propi del Raspberry Pi.

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

Permetre als equips de la xarxa local fer ping al Raspberry Pi.

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

Permetre SSH des de la xarxa interna.

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

Permetre el retorn de tot el trànsit iniciat per Raspberry Pi. Aquest és el mateix principi d’estat que abans.

sudo iptables -P FORDARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

Si el trànsit no coincideix amb cap de les regles especificades, es retirarà.

sudo apt-get install iptables-persistent

sudo systemctl habilita netfilter-persistent

La primera línia instal·la una pau de codi que fa que les regles iptables que acabem de crear siguin persistents entre els reinicis. El segon desa les regles després de canviar-les. Aquesta vegada n’hi ha prou amb executar el primer. Si canvieu les regles, executeu la segona per desar-la. Les regles Iptable estaran vigents tan bon punt les afegiu si desordeu i perdeu l'accés, només heu de reiniciar i les que no estiguin guardades es revertiran.

Pas 6: Conclusió

Ara podeu utilitzar aquest túnel des de qualsevol dispositiu o ordinador de la mateixa xarxa. Només cal que canvieu la passarel·la per defecte a qualsevol adreça IP que tingui el vostre Raspberry Pi. En el meu cas, els meus centres multimèdia Kodi (un dormitori i un saló) utilitzen aquesta connexió per poder transmetre els meus canals de joc suecs. Per descomptat, hi ha altres coses per a les quals també podeu fer servir.

Tingueu en compte que, segons el proveïdor de VPN que trieu i la velocitat de la vostra connexió a Internet, pot ser que el rendiment sigui lent.

Si teniu alguna pregunta o voleu que us aclareixi alguna cosa, feu-m'ho saber als comentaris. Per obtenir més publicacions tècniques, visiteu el meu blogg Hackviking.

Recomanat: