Anonim

Varför använda ett VPN för att komma åt ditt hem?

snabblänkar

  • Varför använda ett VPN för att komma åt ditt hem?
  • Ställ in Pi
    • Installera Raspbian
  • Ställ in OpenVPN
    • Certifikatutfärdare
    • Gör några nycklar
    • Serverkonfiguration
    • Starta servern
  • Klientinställning
    • Klientkonfiguration
  • Vidarebefordran av hamnar
  • Anslut till klienten
  • Avslutande tankar

Det finns många orsaker 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 hallonpi är ett bra sätt att uppnå detta. De krä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 den.

När du har åtkomst 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 hem VPN-anslutning från vägen. En installation som denna låter din telefon, surfplatta eller bärbar dator fungera precis som den var hemma var som helst.

Ställ in Pi

Innan du kan börja konfigurera VPN, kommer du att behöva ställa in Raspberry Pi. Det är bäst att ställa in Pi med ett fodral och ett anständigt minneskort, 16 GB borde vara mer än tillräckligt. Anslut om möjligt Pi till din router med en Ethernet-kabel. Det minimerar alla nätverksförseningar.

Installera Raspbian

Det bästa operativsystemet att använda på din Pi är Raspbian. Det är standardvalet från Raspberry Pi-stiftelsen, och det är baserat på Debian, en av de säkraste 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.

Hämta den senaste versionen av Etcher för ditt operativsystem medan det laddas ner. När nedladdningen är klar, extrahera Raspbian-bilden. Öppna sedan Etcher. Välj Raspbian-bilden där du extraherade den. Välj ditt SD-kort (Sätt i det först). Slutligen, skriv bilden till kortet.

Lämna SD-kortet i datorn när det är klart. Öppna en filhanterare och bläddra till kortet. Du bör se ett par olika partitioner. Leta efter "boot" -partitionen. Det är den med en "kernel.img" -fil i den. Skapa en tom textfil på "boot" -partitionen och kalla den "ssh" utan filändelse.

Du kan äntligen ansluta din Pi. Se till att du ansluter den till sist. Du kommer inte att behöva en skärm, tangentbord eller mus. Du kommer att få fjärråtkomst till Raspberry Pi via ditt nätverk.

Ge Pi några minuter att ställa in sig själv. Öppna sedan en webbläsare och navigera till din routers hanteringsskärm. Hitta Raspberry Pi och notera dess IP-adress.

Oavsett om du är på Windows, Linux eller Mac, öppna OpenSSH. Anslut till Raspberry Pi med SSH.

$ ssh

Uppenbarligen, använd den faktiska IP-adressen för Pi. Användarnamnet är alltid pi, och lösenordet är hallon.

Ställ in OpenVPN

OpenVPN är inte exakt 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.

Uppdatering av $ sudo apt $ uppgradering av sudo apt

När uppdateringen är klar kan du installera OpenVPN och det certifikatverktyg som du behöver.

$ sudo apt installera openvpn easy-rsa

Certifikatutfärdare

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 tangenter kommer att se till att endast dina enheter kan ansluta till ditt hemnätverk.

Skapa först en katalog för dina certifikat. Flytta till den katalogen.

$ sudo make-cadir / etc / openvpn / certs $ cd / etc / openvpn / certs

Leta runt efter OpenSSL-konfigurationsfiler. Länk sedan den senaste till openssl.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 känn dig fri att installera Vim, om du är mer bekväm med det.

Hitta först variabeln KEY_SIZE. Den är inställd på 2048 som standard. Ändra den till 4096.

export KEY_SIZE = 4096

Det huvudsakliga blocket som du behöver hantera ger information om din certifikatutfärdare. Det hjälper om denna information är korrekt, men allt du kan komma ihåg är bra.

export KEY_COUNTRY = "USA" export KEY_PROVINCE = "CA" export KEY_CITY = "SanFrancisco" export KEY_ORG = "Fort-Funston" export KEY_EMAIL = "" export KEY_OU = "MyOrganizationalUnit" export KEY_NAME = "HemVPN"

När du har allt, spara och avsluta.

Det Easy-RSA-paketet som du installerade tidigare innehåller många skript som hjälper till att konfigurera allt du behöver. Du behöver bara köra dem. Börja med att lägga till “vars” -filen som en källa. Det kommer att ladda alla variabler som du just har ställt in.

$ sudo-källa ./vars

Rensa sedan nycklarna. Du har inga, så oroa dig inte för att meddelandet säger att dina nycklar kommer att raderas.

$ sudo ./clean-install

Bygg slutligen din certifikatutfärdare. Du har redan ställt in standardvärdena, så att du bara kan acceptera standardvärdena som den presenterar. Kom ihåg att ställa in ett starkt lösenord och svara "ja" på de två senaste frågorna efter lösenordet.

$ sudo ./build-ca

Gör några nycklar

Du har genomgått alla dessa problem att ställa in en certifikatutfärdare så att du kan skriva under nycklar Nu är det dags att göra några. Börja med att bygga nyckeln för 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 som du behöver från nu kallas en HMAC-nyckel. OpenVPN använder denna nyckel 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 stycke när du installerar OpenVPN är själva serverkonfigurationen. Tack och lov är det inte så mycket som 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 är ca, cert och nyckelfiler. Du måste ställa in dem så att de matchar de verkliga platserna för filerna som du skapade, som alla är i / etc / openvpn / certs / nycklar.

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt nyckel /etc/openvpn/certs/keys/server.key # Den här filen ska hållas hemlig

Hitta dh-inställningen och ändra den så att den matchar Diffie-Hellman .pem som du skapade.

dh dh4096.pem

Ställ in sökvägen för din HMAC-nyckel också.

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

Hitta chifferet och se till att det matchar exemplet nedan.

chiffer AES-256-CBC

Nästa par alternativ finns där, men de kommenteras med; Ta bort semikolon framför varje alternativ för att aktivera dem.

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

Leta efter användar- och gruppalternativ. Avmarkera dem och ändra användaren till “openvpn.”

användare openvpn-gruppgrupp

Slutligen finns de två sista raderna inte i standardkonfigurationen. Du måste lägga till dem i slutet av filen.

Ställ in autentiseringsspridningen för att ange starkare kryptering för användarautentisering.

# Autentisering Digest authent SHA512

Begränsa sedan ciprarna som OpenVPN kan använda till endast starkare. Detta hjälper till att begränsa möjliga attacker på svaga chiffer.

# Limitchiffrar tls-chiffer TLS-DHE-RSA-MED-AES-256-GCM-SHA384: TLS-DHE-RSA-MED-AES-128-GCM-SHA256: TLS-DHE-RSA-With-AES-256- CBC-SHA: TLS-DHE-RSA-med-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-med-AES-128-CBC-SHA: TLS-DHE-RSA-med-CAMELLIA-128-CBC- SHA

Det är allt för konfiguration. Spara filen och avsluta.

Starta servern

Innan du kan starta servern måste du göra den openvpn-användaren som du angav.

$ sudo adduser - system - skal / usr / sbin / nologin - ingen-skapa-hem openvpn

Det är en speciell användare bara för att köra OpenVPN, och den kommer inte att göra något annat.

Starta nu servern.

$ sudo systemctl start openvpn $ sudo systemctl start

Kontrollera att de båda kör

$ sudo systemctl status openvpn * .service

Om allt ser bra ut ska du aktivera dem vid start.

$ sudo systemctl enable openvpn $ sudo systemctl enable

Klientinställning

Din server är nu konfigurerad och igång. Därefter måste du konfigurera din klientkonfiguration. Det här är den konfiguration som du kommer att använda för att ansluta dina enheter till din server. Gå tillbaka till mappen Certs och förbered dig på att bygga klientnyckeln. Du kan välja att bygga 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, följ därför samma procedur.

Klientkonfiguration

Konfigurationen för klienter är mycket lik den för servern. Återigen har du en förlagd mall att basera din konfiguration på. Du behöver bara ändra den så att den matchar servern.

Byt till klientkatalogen. 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

Öppna filen client.ovpn med din textredigerare. Sedan hittar du fjärralternativet. Förutsatt att du inte redan använder ett VPN söker Google "Vad är min IP." Ta adressen som den visar och ställ den fjärr-IP-adressen till den. Lämna portnumret.

fjärr 107.150.28.83 1194 #Det IP ironiskt nog är en VPN

Ändra certifikat för att återspegla de du skapade, precis som du gjorde med servern.

ca ca. crt cert client.crt key client.key

Hitta användaralternativ och dela bort dem. Det är bra att driva klienterna som ingen.

användare ingen grupp grupp

Avmarkera alternativet tls-authent för HMAC.

tls-autor ta.key 1

Därefter letar du efter chifferalternativet och ser till att det matchar servern.

chiffer AES-256-CBC

Lägg sedan till begränsningarna för autentisering av digering och kryptering längst ner i filen.

# Autentisering Digest authent SHA512 # Chifferbegränsningar tls-chiffer TLS-DHE-RSA-MED-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-128-GCM-SHA256: TLS-DHE-RSA-WITH -AES-256-CBC-SHA: TLS-DHE-RSA-MED-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-MED-AES-128-CBC-SHA: TLS-DHE-RSA-MED-CAMELLIA -128-CBC-SHA

När allt ser bra ut, spara filen och avsluta. Använd tjära fö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 / nycklar ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

Överför det paketet till klienten hur du än väljer. SFTP, FTP och en USB-enhet är alla fantastiska alternativ.

Vidarebefordran av hamnar

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 till samma port. Om du är det, ändra porten på din klient- och serverkonfigurationer.

Anslut till routerns webbgränssnitt genom att skriva in sin IP-adress i din webbläsare.

Varje router är annorlunda. Ändå borde de alla ha någon form av denna funktionalitet. Hitta det på din router.

Installationen är i princip densamma på varje router. Ange start- och slutportarna. De bör vara samma som varandra och den som du ställer in i dina konfigurationer. För IP-adressen anger du den sedan till din Raspberry Pis IP-adress. Spara dina ändringar.

Anslut till klienten

Varje klient är annorlunda, så det finns ingen universell lösning. Om du är på Windows behöver du Windows OpenVPN-klienten .

På Android kan du öppna upp 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 tangenter.

På Linux måste du installera OpenVPN mycket som du gjorde för servern.

$ sudo apt install openvpn

Byt sedan till / etc / openvpn och 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 aktivera port vidarebefordran på din router först.

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.

Förvandla en hallonpi till en vpn för att få åtkomst till ditt nätverk var som helst