Hoved Mac Gjør en Raspberry Pi til en VPN for å få tilgang til nettverket ditt hvor som helst

Gjør en Raspberry Pi til en VPN for å få tilgang til nettverket ditt hvor som helst



Hvorfor bruke en VPN for å få tilgang til hjemmet ditt

Det er mange grunner til at du vil få tilgang til hjemmenettverket eksternt, og den beste måten å gjøre det på er en VPN-server. Noen rutere lar deg faktisk sette opp en VPN-server direkte i ruteren, men i mange tilfeller vil du trenge å sette opp en selv.

En Raspberry Pi er en fin måte å oppnå dette på. De krever ikke mye energi for å kjøre, og de har nok kraft til å kjøre en VPN-server. Du kan sette opp en ved siden av ruteren og i utgangspunktet glemme det.

Når du har tilgang til hjemmenettverket eksternt, kan du komme til filene dine hvor som helst. Du kan kjøre hjemmemaskinene dine eksternt. Du kan til og med bruke hjemmets VPN-tilkobling fra veien. Et oppsett som dette lar telefonen, nettbrettet eller den bærbare datamaskinen handle akkurat som den var hjemme hvor som helst.

Sett opp Pi

Før du kan begynne å konfigurere VPN, må du konfigurere Raspberry Pi. Det er best å sette opp Pi med etui og anstendig minnekort, 16 GB bør være mer enn nok. Hvis det er mulig, kobler du Pi til ruteren din med en Ethernet-kabel. Det vil minimere eventuelle forsinkelser i nettverket.

Installer Raspbian

Det beste operativsystemet du kan bruke på din Pi er Raspbian. Det er standardvalget som ble lagt ut av Raspberry Pi-stiftelsen, og det er basert på Debian, en av de mest sikre og stabile Linux-versjonene som er tilgjengelige.

Gå til Rasbian nedlastingsside , og ta den nyeste versjonen. Du kan bruke Lite-versjonen her, fordi du faktisk ikke trenger et grafisk skrivebord.

Mens du laster ned, får du den nyeste versjonen av Etser for operativsystemet ditt. Når nedlastingen er fullført, trekker du ut Raspbian-bildet. Åpne deretter Etcher. Velg Raspbian-bildet der du hentet det ut. Velg SD-kortet ditt (sett det inn først). Til slutt skriver du bildet til kortet.

synkroniser Outlook-kalenderen til Google-kalenderen

La SD-kortet ligge på datamaskinen når det er ferdig. Åpne en filbehandling og bla til kortet. Du bør se et par forskjellige partisjoner. Se etter oppstartspartisjonen. Det er den med en kernel.img-fil. Opprett en tom tekstfil på oppstartspartisjonen, og kall den ssh uten filtypen.

Du kan endelig koble til din Pi. Forsikre deg om at du setter den i. Du trenger ikke skjerm, tastatur eller mus. Du kommer til å få tilgang til Raspberry Pi eksternt via nettverket ditt.

Gi Pi noen minutter til å sette seg opp. Åpne en nettleser og naviger til ruteren din. Finn Raspberry Pi og noter IP-adressen.

Enten du bruker Windows, Linux eller Mac, kan du åpne OpenSSH. Koble til Raspberry Pi med SSH.

$ ssh [email protected] 

Bruk åpenbart den faktiske IP-adressen til Pi. Brukernavnet eralltid pi, og passordet erbringebær.

Sett opp OpenVPN

OpenVPN er ikke akkurat enkelt å konfigurere som server. Den gode nyheten er at du bare trenger å gjøre det en gang. Så før du graver inn, må du sørge for at Raspbian er helt oppdatert.

$ sudo apt update $ sudo apt upgrade

Etter at oppdateringen er ferdig, kan du installere OpenVPN og sertifikatverktøyet du trenger.

$ sudo apt install openvpn easy-rsa

Sertifikatmyndighet

For å autentisere enhetene dine når de prøver å koble til serveren, må du sette opp en sertifikatmyndighet for å opprette signeringsnøkler. Disse tastene vil sikre at bare enhetene dine kan koble til hjemmenettverket ditt.

Først oppretter du en katalog for sertifikatene dine. Gå inn i den katalogen.

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

Se etter OpenSSL-konfigurasjonsfiler. Koble deretter den siste medopenssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

I den samme certs-mappen er det en fil som heter vars. Åpne filen med teksteditoren din. Nano er standard, men installer gjerne Vim hvis du er mer komfortabel med det.

Rediger Vars-filen

FinnKEY_SIZEvariabel først. Det er satt til2048som standard. Endre den til4096.

export KEY_SIZE=4096

Hovedblokken du trenger å håndtere, etablerer informasjon om sertifikatmyndigheten din. Det hjelper hvis denne informasjonen er nøyaktig, men alt du kan huske er 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 alt, lagre og avslutte.

Den Easy-RSA-pakken som du installerte før, inneholder mange skript som hjelper deg med å sette opp alt du trenger. Du trenger bare å kjøre dem. Start med å legge til vars-filen som kilde. Det vil laste inn alle variablene du nettopp har angitt.

$ sudo source ./vars

Rydd deretter opp tastene. Du har ingen, så ikke bekymre deg for at meldingen forteller deg at nøklene dine blir slettet.

$ sudo ./clean-install

Opprett sertifikatmyndighet

Til slutt, bygg sertifikatmyndigheten din. Du har allerede angitt standardinnstillingene, slik at du bare kan godta standardinnstillingene. Husk å angi et sterkt passord og svar ja på de to siste spørsmålene, etter passordet.

$ sudo ./build-ca

Lag noen nøkler

Bygg servernøkkelen

Du gikk gjennom alt det trøbbel for å sette opp en sertifikatmyndighet slik at du kan signere nøkler. Nå er det på tide å lage noen. Start med å bygge nøkkelen til serveren din.

$ sudo ./build-key-server server

Bygg Diffie-Hellman

Deretter bygger du Diffie-Hellman PEM. Det er det OpenVPN bruker for å sikre klientforbindelsene dine til serveren.

$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem

Den siste nøkkelen du trenger fra nå, kalles en HMAC-nøkkel. OpenVPN bruker denne nøkkelen til å signere hver enkelt pakke med informasjon som utveksles mellom klienten og serveren. Det hjelper til å forhindre visse typer angrep på forbindelsen.

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

Serverkonfigurasjon

Du har nøklene. Det neste stykket i å konfigurere OpenVPN er selve serverkonfigurasjonen. Heldigvis er det ikke så mye du trenger å gjøre her. Debian gir en basiskonfigurasjon som du kan bruke til å komme i gang. Så begynn med å få den konfigurasjonsfilen.

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

Bruk tekstredigeringsprogrammet igjen for å åpne/etc/openvpn/server.conf. De første tingene du trenger å finne erat,cert, ognøkkelfiler. Du må stille dem til å matche de faktiske plasseringene til filene du opprettet, som alle er i/ etc / openvpn / certs / keys.

OpenVPN Server Config 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

Finndvsinnstillingen, og endre den for å matche Diffie-Hellman.pemsom du opprettet.

dh dh4096.pem

Angi banen for HMAC-nøkkelen din også.

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

Finnkrypteringog sørg for at den samsvarer med eksemplet nedenfor.

cipher AES-256-CBC

De neste par alternativene er der, men de blir kommentert med en;. Fjern semikolonene foran hvert alternativ for å aktivere dem.

push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'

Se etterbrukeroggruppealternativer. Fjern kommentar til dem, og endrebrukerå åpne vpn.

user openvpn group nogroup

Til slutt er disse to siste linjene ikke i standardkonfigurasjonen. Du må legge dem til på slutten av filen.

OpenVPN Server Config Auth

Angi godkjenningsfordøyelsen for å spesifisere sterkere kryptering for brukerautentisering.

# Authentication Digest auth SHA512

Begrens deretter klippene som OpenVPN kan bruke til bare sterkere. Dette bidrar til å begrense mulige angrep på svake koder.

# 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

Alt for konfigurasjon. Lagre filen og avslutt.

Start serveren

Før du kan starte serveren, må du lage detopenvpnbrukeren du spesifiserte.

$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn

Det er en spesiell bruker bare for å kjøre OpenVPN, og den vil ikke gjøre noe annet.

Nå starter du opp serveren.

$ sudo systemctl start openvpn $ sudo systemctl start [email protected] 

Sjekk at de begge kjører

$ sudo systemctl status openvpn*.service

Hvis alt ser bra ut, aktiver dem ved oppstart.

$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected] 

Klientoppsett

Serveren din er nå satt opp og kjører. Deretter må du konfigurere klientkonfigurasjonen. Dette er konfigurasjonen du vil bruke til å koble enhetene dine til serveren din. Gå tilbake tilsikkermappen og forbered deg på å bygge klientnøkkelen (e). Du kan velge å bygge separate nøkler for hver klient eller en nøkkel for alle klienter. For hjemmebruk skal en nøkkel være bra.

$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client

Prosessen er nesten identisk med serveren, så følg samme prosedyre.

Klientkonfigurasjon

Konfigurasjonen for klienter er veldig lik den for serveren. Igjen har du en forhåndsmalt mal å basere konfigurasjonen på. Du trenger bare å endre den for å matche serveren.

Bytt tilklientkatalog. Pakk deretter ut eksempelkonfigurasjonen.

$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

Åpne oppclient.ovpnfil med teksteditoren din. Finn deretterfjernkontrollalternativ. Forutsatt at du ikke allerede bruker VPN, Google-søk Hva er IP-en min? Ta adressen den viser, og sett innfjernkontrollIP-adresse til den. Legg igjen portnummeret.

remote 107.150.28.83 1194 #That IP ironically is a VPN

OpenVPN Client Config Keys

Endre seriene for å gjenspeile de du opprettet, akkurat som du gjorde med serveren.

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

Finn brukeralternativene, og fjern merking av dem. Det er greit å kjøre klientene somingen.

user nobody group nogroup

Kommentarer tiltls-authalternativ for HMAC.

tls-auth ta.key 1

OpenVPN-klientkoder

Neste, se etterkrypteringalternativet og sørg for at det samsvarer med serveren.

cipher AES-256-CBC

Så er det bare å legge til godkjenningsfordøyelses- og krypteringsbegrensninger nederst 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 alt ser riktig ut, lagrer du filen og avslutter. Bruktjærefor å pakke opp konfigurasjonen og seriene, slik at du kan sende dem til 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

Overfør pakken til klienten uansett hvordan du velger. SFTP, FTP og en USB-stasjon er alle gode alternativer.

Port Forwarding

Port Forwarding

For at noe av dette skal fungere, må du konfigurere ruteren din til å videresende innkommende VPN-trafikk til Pi. Hvis du allerede bruker et VPN, må du sørge for at du ikke kobler til i samme port. Hvis du er det, kan du endre porten på klient- og serverkonfigurasjonen.

Koble til ruterenes nettgrensesnitt ved å skrive inn IP-adressen i nettleseren din.

Hver ruter er forskjellig. Selv om de alle har en form for funksjonalitet. Finn det på ruteren din.

Oppsettet er i utgangspunktet det samme på alle rutere. Angi start- og sluttportene. De skal være de samme som hverandre og den du har angitt i konfigurasjonene dine. Sett deretter IP-adressen til Raspberry Pi's IP for IP-adressen. Lagre endringene.

Koble til klienten

Hver klient er forskjellig, så det er ikke en universell løsning. Hvis du bruker Windows, trenger du Windows OpenVPN-klient .

På Android kan du åpne tarballen din og overføre nøklene til telefonen. Installer deretter OpenVPN-appen. Åpne appen, og koble til informasjonen fra konfigurasjonsfilen din. Velg deretter nøklene dine.

På Linux må du installere OpenVPN mye som du gjorde for serveren.

$ sudo apt install openvpn

Bytt deretter til/ etc / openvpn, og pakk ut tarballen du sendte over.

$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz

Gi klientfilen nytt navn.

$ sudo mv client.ovpn client.conf

Ikke start klienten ennå. Det vil mislykkes. Du må først aktivere portoverføring på ruteren.

Avsluttende tanker

Du bør nå ha et arbeidsoppsett. Din klient vil koble direkte via ruteren din til Pi. Derfra kan du dele og koble over det virtuelle nettverket, så lenge alle enhetene er koblet til VPN. Det er ingen grense, så du kan alltid koble alle datamaskinene dine til Pi VPN.

Interessante Artikler