Varför använda en VPN för att komma åt ditt hem
Det finns många anledningar till att du vill komma åt ditt hemnätverk på distans, och det bästa sättet att göra det är med en VPN-server. Vissa routrar låter dig faktiskt ställa in en VPN-server direkt i routern, men i många fall kommer du att behöva ställa in en själv.
En Raspberry Pi är ett utmärkt sätt att åstadkomma detta. De behöver inte mycket energi för att köra, och de har tillräckligt med kraft för att köra en VPN-server. Du kan ställa in en bredvid din router och i princip glömma bort den.
När du har tillgång till ditt hemnätverk på distans kan du komma till dina filer var som helst. Du kan köra dina hemdatorer på distans. Du kan till och med använda ditt hems VPN-anslutning från vägen. En sådan inställning låter din telefon, surfplatta eller bärbara dator agera precis som den var hemma var som helst.
Ställ in Pi
Innan du kan börja ställa in VPN måste du ställa in din Raspberry Pi. Det är bäst att konfigurera Pi med ett fodral och anständigt storlek minneskort, 16 GB borde vara mer än tillräckligt. Anslut om möjligt din Pi till din router med en Ethernet-kabel. Det minimerar eventuella förseningar i nätverket.
Installera Raspbian
Det bästa operativsystemet att använda på din Pi är Raspbian. Det är standardvalet som läggs ut av Raspberry Pi-stiftelsen, och det är baserat på Debian, en av de mest säkra och stabila Linux-versionerna som finns tillgängliga.
Gå till Rasbian nedladdningssida , och ta tag i den senaste versionen. Du kan använda Lite-versionen här, eftersom du inte behöver ett grafiskt skrivbord.
Medan det hämtas, hämta den senaste versionen av Etsare för ditt operativsystem. När nedladdningen är klar, extrahera Raspbian-bilden. Öppna sedan Etcher. Välj den Raspbian-bild från vilken du extraherade den. Välj ditt SD-kort (Sätt i det först). Skriv slutligen bilden till kortet.
hur många människor kan använda Disney Plus
Lämna SD-kortet i din dator när det är klart. Öppna en filhanterare och bläddra till kortet. Du bör se ett par olika partitioner. Leta efter startpartitionen. Det är den med en kernel.img-fil i den. Skapa en tom textfil på startpartitionen och kalla den ssh utan filtillägg.
Du kan äntligen ansluta din Pi. Se till att du sätter i den sist. Du behöver inte en skärm, tangentbord eller mus. Du kommer att få fjärranslutning till Raspberry Pi via ditt nätverk.
Ge Pi några minuter för att ställa in sig själv. Öppna sedan en webbläsare och navigera till routerns hanteringsskärm. Hitta Raspberry Pi och notera dess IP-adress.
Oavsett om du använder Windows, Linux eller Mac, öppna OpenSSH. Anslut till Raspberry Pi med SSH.
$ ssh [email protected]
Använd självklart den faktiska IP-adressen till Pi. Användarnamnet äralltid pi, och lösenordet ärhallon.
Ställ in OpenVPN
OpenVPN är inte helt enkelt att konfigurera som server. Den goda nyheten är att du bara behöver göra det en gång. Så innan du gräver in, se till att Raspbian är helt uppdaterad.
$ sudo apt update $ sudo apt upgrade
När uppdateringen är klar kan du installera OpenVPN och det certifikatverktyg som du behöver.
$ sudo apt install openvpn easy-rsa
Certifikatmyndighet
För att autentisera dina enheter när de försöker ansluta till servern måste du ställa in en certifikatutfärdare för att skapa signeringsnycklar. Dessa nycklar säkerställer att endast dina enheter kan ansluta till ditt hemnätverk.
Skapa först en katalog för dina certifikat. Gå in i den katalogen.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Leta efter OpenSSL-konfigurationsfiler. Länka sedan den senaste medopenssl.cnf.
$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
I samma certs-mapp finns en fil som heter vars. Öppna den filen med din textredigerare. Nano är standard, men installera gärna Vim om du är mer bekväm med det.
HittaKEY_SIZEvariabel först. Det är inställt på2048som standard. Ändra det till4096.
export KEY_SIZE=4096
Huvudblocket som du behöver hantera etablerar information om din certifikatutfärdare. Det hjälper om denna information är korrekt, men allt du kommer ihåg är bra.
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'
När du har allt, spara och avsluta.
Det Easy-RSA-paketet som du installerade tidigare innehåller många skript som hjälper dig att ställa in allt du behöver. Du behöver bara köra dem. Börja med att lägga till vars-filen som källa. Det laddar alla variabler som du just har ställt in.
$ sudo source ./vars
Rengör sedan nycklarna. Du har ingen, så oroa dig inte för att meddelandet säger att dina nycklar kommer att raderas.
$ sudo ./clean-install
Slutligen bygg din certifikatutfärdare. Du har redan ställt in standardvärdena, så du kan bara acceptera de standardvärden som den innehåller. Kom ihåg att ställa in ett starkt lösenord och svara ja på de två sista frågorna efter lösenordet.
$ sudo ./build-ca
Gör några nycklar
Du har gått igenom alla problem för att skapa en certifikatutfärdare så att du kan signera nycklar. Nu är det dags att göra lite. Börja med att bygga nyckeln till din server.
$ sudo ./build-key-server server
Bygg sedan Diffie-Hellman PEM. Det är vad OpenVPN använder för att säkra dina klientanslutningar till servern.
$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem
Den sista nyckeln du behöver från och med nu kallas en HMAC-nyckel. OpenVPN använder den här nyckeln för att signera varje enskilt paket med information som utbyts mellan klienten och servern. Det hjälper till att förhindra vissa typer av attacker på anslutningen.
$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key
Serverkonfiguration
Du har nycklarna. Nästa del i att ställa in OpenVPN är själva serverkonfigurationen. Tack och lov är det inte så mycket du behöver göra här. Debian tillhandahåller en baskonfiguration som du kan använda för att komma igång. Så börja med att få den konfigurationsfilen.
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Använd din textredigerare igen för att öppna/etc/openvpn/server.conf. De första sakerna du behöver hitta ärdet där,certochnyckel-filer. Du måste ställa in dem så att de matchar de faktiska platserna för filerna du skapade, som alla finns i/ 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 # This file should be kept secret
Hittadvs.och ändra den så att den matchar Diffie-Hellman.pemsom du skapade.
dh dh4096.pem
Ange sökvägen för din HMAC-nyckel också.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Hittachifferoch se till att den matchar exemplet nedan.
cipher AES-256-CBC
Nästa par alternativ finns, men de kommenteras med en;. Ta bort semikolonna framför varje alternativ för att aktivera dem.
push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'
Leta efteranvändareochgruppalternativ. Avkommentera dem och ändraanvändareatt öppna vpn.
user openvpn group nogroup
Slutligen är de två sista raderna inte i standardkonfigurationen. Du måste lägga till dem i slutet av filen.
Ställ in autentiseringssammandragningen för att ange starkare kryptering för användarautentisering.
# Authentication Digest auth SHA512
Begränsa sedan cipers som OpenVPN kan använda till bara starkare. Detta hjälper till att begränsa möjliga attacker på svaga chiffer.
# 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
Allt för konfiguration. Spara filen och avsluta.
Starta servern
Innan du kan starta servern måste du göra detopenvpnanvändare som du angav.
$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
Det är en speciell användare bara för att köra OpenVPN, och det kommer inte att göra något annat.
Starta nu servern.
$ sudo systemctl start openvpn $ sudo systemctl start [email protected]
Kontrollera att de båda kör
$ sudo systemctl status openvpn*.service
Om allt ser bra ut, aktivera dem vid start.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
Klientinställning
Din server är nu inställd och igång. Därefter måste du ställa in din klientkonfiguration. Det här är konfigurationen som du använder för att ansluta dina enheter till din server. Återgå tillvissamappen och förbered dig för att bygga klientnycklarna. Du kan välja att skapa separata nycklar för varje klient eller en nyckel för alla klienter. För hemmabruk bör en nyckel vara bra.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Processen är nästan identisk med servern, så följ samma procedur.
Klientkonfiguration
Konfigurationen för klienter är mycket lik den för servern. Återigen har du en färdig mall för att basera din konfiguration på. Du behöver bara ändra den så att den matchar servern.
Byt tillklientkatalog. Packa sedan upp provkonfigurationen.
$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn
Öppnaclient.ovpnfil med din textredigerare. Hitta sedanavlägsenalternativ. Förutsatt att du inte redan använder en VPN, Google-sökning Vad är min IP? Ta adressen som den visar och ställ inavlägsenIP-adress till den. Lämna portnumret.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Ändra certifikaten så att de återspeglar de du skapade, precis som du gjorde med servern.
ca ca.crt cert client.crt key client.key
Hitta användaralternativen och avmarkera dem. Det är bra att köra klienterna somingen.
user nobody group nogroup
Avkommentarertls-authalternativ för HMAC.
tls-auth ta.key 1
Leta sedan efterchifferoch se till att den matchar servern.
cipher AES-256-CBC
Lägg sedan bara till autentiseringssmältnings- och krypteringsbegränsningar längst ner i filen.
# 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
När allt ser bra ut, spara filen och avsluta. Använda sig avtarför att packa upp konfigurationen och certifikaten så att du kan skicka dem till klienten.
$ 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
Överför paketet till klienten hur du än väljer. SFTP, FTP och en USB-enhet är alla bra alternativ.
Port Forwarding
För att något av detta ska fungera måste du konfigurera din router för att vidarebefordra inkommande VPN-trafik till Pi. Om du redan använder ett VPN måste du se till att du inte ansluter i samma port. Om du är det ändrar du porten på din klient- och serverkonfiguration.
Anslut till din routers webbgränssnitt genom att skriva in dess IP-adress i din webbläsare.
Varje router är annorlunda. Ändå borde de alla ha någon form av denna funktionalitet. Hitta den på din router.
Installationen är i princip densamma på varje router. Ange start- och slutportarna. De ska vara desamma som varandra och den som du ställer in i dina konfigurationer. Ställ sedan in den för din Raspberry Pi: s IP för IP-adressen. Spara dina ändringar.
Anslut till klienten
Varje klient är annorlunda, så det finns ingen universell lösning. Om du använder Windows behöver du Windows OpenVPN-klient .
På Android kan du öppna din tarball och överföra nycklarna till din telefon. Installera sedan OpenVPN-appen. Öppna appen och anslut informationen från din konfigurationsfil. Välj sedan dina nycklar.
På Linux måste du installera OpenVPN mycket som du gjorde för servern.
$ sudo apt install openvpn
Byt sedan till/ etc / openvpnoch packa upp tarballen som du skickade över.
$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz
Byt namn på klientfilen.
$ sudo mv client.ovpn client.conf
Starta inte klienten ännu. Det kommer att misslyckas. Du måste först aktivera vidarebefordran av port på din router.
Avslutande tankar
Du bör nu ha en fungerande installation. Din klient kommer att ansluta direkt via din router till Pi. Därifrån kan du dela och ansluta via ditt virtuella nätverk så länge alla enheter är anslutna till VPN. Det finns ingen gräns, så du kan alltid ansluta alla dina datorer till Pi VPN.