Innehållsförteckning:

Raspberry Pi VPN Gateway: 6 steg
Raspberry Pi VPN Gateway: 6 steg

Video: Raspberry Pi VPN Gateway: 6 steg

Video: Raspberry Pi VPN Gateway: 6 steg
Video: Build your OWN WireGuard VPN! Here's how 2024, November
Anonim
Raspberry Pi VPN Gateway
Raspberry Pi VPN Gateway

Uppdatering 2018-01-07:

  • Uppdaterade saker saknas och ändringar behövs för den nuvarande versionen av Raspian.
  • Skapade också en specifik guide för NordVPN.

Det finns några olika användningsområden för VPN. Antingen vill du skydda din integritet och privata data från nyfikna ögon eller så måste du källa från ett annat land. Att köpa från ett annat land kan vara mycket användbart för att få tillgång till tjänster som inte tillhandahålls i ditt land. Det finns ett antal VPN -tjänster där ute idag och de flesta av dem erbjuder lättanvänd programvara för din dator och appar för din surfplatta eller telefon. Men om du har andra enheter som inte stöds av programvaran som du vill gå över VPN? Bygg sedan en gateway som ger dig tillgång till internet via VPN.

Om du tittar på din grundläggande nätverksinställning har du en "standardgateway" som används för alla ip-adresser som inte finns i ditt nuvarande delnät (mycket förenklat). Så om du konfigurerar en gateway som kan dirigera internettrafik över en etablerad VPN -anslutning kan alla nätverksaktiverade enheter dra nytta av VPN -tunneln.

Mitt största användningsfall i min San Francisco -lägenhet är en VPN -tunnel till mitt hemland så att jag kan strömma svenska play -kanaler på mina mediaspelare och smart -TV. Detta är ett ganska vanligt användningsfall för de flesta som behöver en VPN -tunnel. Eftersom mina mediaspelare och smarta TV -apparater inte stöds av VPN -programvaran byggde jag en av en Raspberry Pi.

Du kan hämta en för under $ 40 på Amazon. Jag rekommenderar dock att du köper ett fodral och en anständig nätadapter också. För denna instruerbara behöver du:

  • Raspberry Pi 2 eller 3
  • Ett fall som du gillar
  • En bra nätadapter
  • En nätverkskabel

Steg 1: Välja din VPN -tjänst

Välja din VPN -tjänst
Välja din VPN -tjänst

Det viktiga när du väljer en VPN -tjänst är att den uppfyller dina krav. För detta användningsfall behövde jag en VPN -tjänst med en svensk utgångspunkt, det är det viktigaste eftersom jag behöver de svenska tjänsterna för att vara övertygad om att jag är i Sverige. Under åren har jag använt flera olika leverantörer och nedan är de saker jag tar i beaktande när jag väljer VPN -leverantör för det specifika användningsfallet:

Gratis test

Jag vill ha en gratis testperiod eller en liten mängd testdata för att få en känsla av programvaran eller appen. Jag vill också testa prestanda och helhetsupplevelse innan jag betalar för det. Det är också trevligt att kontrollera att min idé kommer att fungera innan jag börjar betala.

Integritet

Om implementeringen är av sekretesshänsyn är det verkligen viktigt vad sekretesspolicyn säger. Det är också viktigt vilket land företaget driver från och vilka lagar som skyddar din integritet. De verkligen integritetsberörda användarna bör titta på en tjänst som säger att inga trafikloggar lagras och tillåter anonyma betalningar via Bitcoin till exempel.

Tillåten trafik

Det kan finnas begränsningar för vilken typ av trafik du får köra. De mer seriösa leverantörerna blockerar vanligtvis peer-to-peer-trafik. Detta är inte bara för att undvika juridiska frågor utan för att kunna behålla prestanda för alla användare. Det finns hur många bra leverantörer som helst som tillåter peer-to-peer och ändå levererar en högkvalitativ service. Men om det inte är din huvudsakliga rekrytering rekommenderar jag att du väljer en tjänst som inte tillåter peer-to-peer.

Datatak

Använd aldrig en tjänst som håller ett datatak över sina betalande användare. Detta kommer bara att ta slut vid den värsta möjliga tidpunkten precis som data på din telefon strax före den roliga delen i ett videoklipp!

Lämna länder

Beroende på användningsfallet har detta olika betydelse. För ett användningsfall som mitt, där jag behöver hamna i ett specifikt land, måste det naturligtvis finnas på listan. Jag måste också få välja vilket land jag lämnar. Det finns tjänster där du inte kan välja utreseland, håll dig borta från dem. Du kan hamna i ett land med dåliga prestanda- eller sekretesslagar. Även om du inte behöver ett specifikt land bör du fortfarande välja en tjänst med några olika länder att visa från för att kunna hitta ett med bra prestanda.

Typ av programvara och support

Detta är en av de främsta anledningarna till att jag föredrar tjänster med ett gratis test. Det finns så många leverantörer med dålig programvara som är buggiga, osäkra eller bara inte fungerar. För en Raspberry Pi -implementering behöver jag en leverantör som stöder OpenVPN.

Mitt urval

För detta bygge gick jag med Tunnel Bear. Ett gratis test upp till 500 GB erbjuds så att jag kan testa att jag faktiskt kunde strömma innan jag betalade något. De är baserade i Kanada som, bredvid Sverige, har några av de starkaste integritetslagarna i världen. Ingen datakapacitet för betald tjänst och jag får också ha flera enheter anslutna samtidigt. Så skydd för min telefon, surfplatta och dator när jag reser med osäker wifi sorteras också. Utgångsnod i Sverige stöds, den tillhandahålls faktiskt via Bahnhof som är känt för stark integritet i Sverige. För de betalade planerna erbjuder de OpenVPN -stöd. De gör inte det gratis testet, men det var tillräckligt för att köra det från min bärbara dator för att se till att streamingtjänsterna fungerade.

Steg 2: Installera Raspberry Pi

För sådana här implementeringar använder jag operativsystemet Raspbian Lite. Eftersom jag inte har något behov av GUI alls. Du kan få den senaste versionen här.

Jag använder Win32DiskImager för att ladda.img-filen på SD-kortet för Raspberry Pi.

När Raspberry Pi har startat letar jag i min routers DHCP-lista för att få IP-adressen och sedan ansluta över SSH med Putty. Standard användarnamn och lösenord är pi/hallon

När jag väl är ansluten kör jag raspi-config-verktyget för att ändra de grundläggande inställningarna.

sudo raspi-config

De viktigaste sakerna att ta hand om i denna konfiguration är:

  • Utöka filsystemet
  • ändra lösenord

Du kan också ändra värdnamnet för din Raspberry Pi om du vill. Mitt DHCP har mycket långa hyreskontrakt och jag kan också boka en specifik adress. Om du inte har den förmågan måste du konfigurera Raspberry Pi för att använda en statisk IP-adress. Eftersom andra enheter kommer att använda detta som standard gateway är det viktigt att det fortsätter att använda samma IP-adress. Här är ett inlägg jag skrev om att ställa in en statisk IP i Raspbian Jessie.

Då måste vi uppgradera allt till den senaste versionen:

sudo apt-get updatesudo apt-get upgrade sudo apt-get dist-upgrade

Steg 3: Installera OpenVPN

Installera OpenVPN
Installera OpenVPN

Nu måste vi installera OpenVPN på Raspberry Pi.

sudo apt-get install openvpn

Då måste vi se till att tjänsten startar ordentligt.

sudo systemctl aktivera openvpn

När installationen är klar måste vi kopiera OpenVPN -konfigurationsfiler och certifikat till rutan. Detta kommer att tillhandahållas av din VPN -leverantör. I mitt fall, med hjälp av TunnelBear, hittade jag ett blogginlägg om Linux Support. På den sidan finns en länk till zip -fil som innehåller allt vi behöver.

Filen innehåller certifikatfilerna och en.opvn -konfigurationsfil för varje land du kan tunnla till. Du behöver alla certifikatfiler och.opvn -konfigurationsfilen för det land du väljer, i mitt fall Sverige. Packa upp de filer som behövs och använd winscp för att ladda upp filerna till din Raspberry Pi. Samma användarnamn/lösenord som används för SSH tar dig till/home/pi, släpp bara filerna där.

Sedan går vi tillbaka till SSH -terminalen och flyttar filerna till OpenVPN -mappen. Första kommandot är bara att se till att vi finns i mappen /home /pi.

cd /home /pi

sudo mv */etc/openvpn/

Nu måste vi göra några ändringar av filerna. Först måste vi byta namn på konfigurationsfilen från.ovpn till.conf. Varje fil som slutar på.conf i mappen /etc /openvpn startar automatiskt när OpenVPN -demonen startas. Först måste vi komma in i den katalogen.

cd /etc /openvpn

Sedan ändrar vi namnet på konfigurationsfilen. Du kan namnge det vad du vill så länge det slutar på.conf. Jag föredrar att använda filnamn utan tomma mellanslag, i det här fallet går jag med swe.conf.

sudo mv *.ovpn swe.conf

Då behöver vi en autentiseringsfil som innehåller användarnamnet och lösenordet som används för VPN -tunneln. Öppna en textredigerare och skriv användarnamnet och lösenordet på separata rader. Vi kommer att kalla denna fil för auth.txt.

sudo nano auth.txt

Innehållet ska vara som i det här exemplet:

Användarnamn

Lösenord

Använd sedan CTRL + O för att skriva till filen och CTRL + X för att lämna textredigeraren. Vi måste också skydda filen auth.txt som innehåller våra uppgifter.

sudo chmod 600 /etc/openvpn/auth.txt

Sedan måste vi redigera konfigurationsfilen för att se till att alla sökvägar är korrekta och lägga till en referens till den nyskapade auth.txt -filen.

sudo nano swe.conf

De rader som behöver ändras är de som refererar till andra filer, de måste vara absoluta vägar. I det här exemplet är det här vi letar efter:

ca CACertificate.crt

cert UserCertificate.crt -nyckel PrivateKey.key

Vi ändrar dem till absoluta vägar så här:

ca /etc/openvpn/CACertificate.crt

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

I slutet av filen lägger vi till en referens till filen auth.txt, så här:

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

Återigen använder vi CTRL + O för att spara filen och sedan CTRL + X för att avsluta nano. Nu kan vi starta om OpenVPN -demonen och se att tunneln fungerar.

sudo service openvpn starta om

Om du kör kommandot ifconfig bör du se en tun0 -adapter utöver din eth0 och se adaptrar om tunneln är uppe. Du kan också köra kommandot detta kommando för att kontrollera din offentliga IP:

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

Om du har problem med att få upp tunneln, försök först starta om din Raspberry Pi och dubbelkolla sedan konfigurationen efter fel.

Steg 4: Konfigurera routning

Nu måste vi aktivera vidarebefordran av IP. Det gör det möjligt för nätverkstrafiken att strömma in från ett av nätverksgränssnitten och ut från det andra. Skapar i huvudsak en router.

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

Om du kör sudo sysctl -p bör du se detta tryckt på skärmen:

net.ipv4.ip_forward = 1

Nu är routing aktiverat och trafik kan gå genom Raspberry Pi, över tunneln och ut på internet.

Steg 5: Konfigurera brandvägg och NAT

Eftersom vi kommer att ha flera klienter på insidan åtkomst till internet via en offentlig IP -adress måste vi använda NAT. Det står för nätverksadressöversättning och kommer att hålla reda på vilken klient som begärde vilken trafik när informationen återvänder över tunneln. Vi måste också skapa lite säkerhet runt Raspberry Pi själv och tunneln.

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

Aktiverar NAT.

sudo iptables -A FRAMÅT -i eth0 -o tun0 -j ACCEPTERA

Låter all trafik från eth0 (intern) gå över tun0 (tunnel).

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

Låter trafik från tun0 (tunnel) gå tillbaka över eth0 (intern). Eftersom vi specificerar tillståndet RELATERAT, ESTABLISHED kommer det att begränsas till anslutning som initieras från det interna nätverket. Blockerar extern trafik och försöker initiera en ny anslutning.

sudo iptables -A INPUT -i lo -j ACCEPTERA

Tillåter Raspberry Pi: s egen loopback -trafik.

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

Tillåter datorer på det lokala nätverket att pinga Raspberry Pi.

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

Tillåter SSH från det interna nätverket.

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

Låter all trafik initierad av Raspberry Pi återvända. Detta är samma statliga huvudman som tidigare.

sudo iptables -P FRAMÅT DROP

sudo iptables -P INPUT DROP sudo iptables -L

Om trafiken inte matchar någon av de angivna reglerna kommer den att släppas.

sudo apt-get install iptables-persistent

sudo systemctl aktivera netfilter-persistent

Första raden installerar en kodfrihet som gör att de iptabla reglerna vi just skapade kvarstår mellan omstart. Den andra sparar reglerna efter att du ändrat dem. Den här gången räcker det med att köra den första. Om du ändrar reglerna kör du den andra för att spara. Iptabla regler är i kraft så snart du lägger till dem om du förstör och förlorar åtkomst bara starta om och de som inte redan sparats kommer att återgå.

Steg 6: Slutsats

Nu kan du använda denna tunnel från vilken enhet eller dator som helst i samma nätverk. Ändra bara standardgatewayen till vilken IP-adress som din Raspberry Pi har. I mitt fall använder båda mina Kodi -mediecenter (ett sovrum och ett vardagsrum) denna anslutning så att jag kan strömma mina svenska spelkanaler. Naturligtvis finns det andra saker du kan använda detta till också.

Tänk bara på att beroende på vilken VPN -leverantör du valt och hastigheten på din internetanslutning kan det vara långsam prestanda.

Om du har några frågor eller vill att jag ska förtydliga något, meddela mig i kommentarerna! För mer tekniskt inlägg besök min blogg Hackviking!

Rekommenderad: