Indholdsfortegnelse:

Raspberry Pi VPN Gateway: 6 trin
Raspberry Pi VPN Gateway: 6 trin

Video: Raspberry Pi VPN Gateway: 6 trin

Video: Raspberry Pi VPN Gateway: 6 trin
Video: Полная настройка PiVPN + WireGuard — создайте свой собственный VPN-сервер! 2024, November
Anonim
Raspberry Pi VPN Gateway
Raspberry Pi VPN Gateway

Opdatering 2018-01-07:

  • Opdaterede ting mangler og ændringer er nødvendige for den aktuelle version af Raspian.
  • Oprettede også en specifik vejledning til NordVPN.

Der er et par forskellige anvendelser til VPN. Enten vil du beskytte dit privatliv og private data mod nysgerrige øjne, eller også skal du kilde fra et andet land. At købe fra et andet land kan være meget nyttigt for at få adgang til tjenester, der ikke leveres i dit land. Der er en række VPN -tjenester derude i dag, og de fleste af dem tilbyder brugervenlig software til din computer og apps til din tablet eller telefon. Men hvis du har andre enheder, der ikke understøttes af softwaren, som du vil gå over VPN? Byg derefter en gateway, der giver dig internetadgang via VPN.

Hvis du ser på din grundlæggende netværksopsætning, har du en "standardgateway", der bruges til enhver ip-adresse, der ikke er placeret i dit nuværende undernet (meget forenklet). Så hvis du opsætter en gateway, der kan dirigere internettrafik over en etableret VPN -forbindelse, kan enhver netværksaktiveret enhed drage fordel af VPN -tunnelen.

Min største anvendelse i min San Francisco -lejlighed er en VPN -tunnel til mit hjemland Sverige, så jeg kan streame svenske afspilningskanaler på mine medieafspillere og smart -tv. Dette er en temmelig almindelig anvendelse for de fleste mennesker, der har brug for en VPN -tunnel. Da mine medieafspillere og smart -tv'er ikke understøttes af VPN -softwaren, byggede jeg en ud af en Raspberry Pi.

Du kan hente en for under $ 40 på Amazon. Jeg anbefaler dog, at du også køber et etui og en anstændig strømadapter. Til denne instruerbare har du brug for:

  • Raspberry Pi 2 eller 3
  • Et tilfælde efter din smag
  • En anstændig strømadapter
  • Et netværkskabel

Trin 1: Valg af din VPN -service

Valg af din VPN -service
Valg af din VPN -service

Det vigtige, når du vælger en VPN -service, er, at den opfylder dine krav. Til denne use case havde jeg brug for en VPN -service med et svensk udgangspunkt, det er det vigtigste, da jeg har brug for de svenske tjenester for at være overbevist om, at jeg er i Sverige. I årenes løb har jeg brugt flere forskellige leverandører, og nedenfor er de ting, jeg tager i betragtning, når jeg vælger VPN -leverandøren til den specifikke use case:

Gratis test

Jeg vil have en gratis testperiode eller en lille mængde testdata for at få en fornemmelse af softwaren eller appen. Jeg vil også teste ydelsen og den samlede oplevelse, før jeg betaler for det. Det er også rart at kontrollere, at min idé vil fungere, før jeg begynder at betale.

Privatliv

Hvis implementeringen er af hensyn til privatlivets fred, er det virkelig vigtigt, hvad privatlivspolitikken angiver. Det er også vigtigt, hvilket land virksomheden opererer fra, og hvilke love der beskytter dit privatliv. De virkelig fortrolige brugere bør se på en service, der siger, at ingen trafiklogfiler gemmes og tillader anonyme betalinger via Bitcoin for eksempel.

Tilladt trafik

Der kan være begrænsninger for, hvilken type trafik du får lov til at køre. De mere seriøse leverandører blokerer normalt peer-to-peer-trafik. Dette er ikke kun for at undgå juridiske problemer, men for at kunne opretholde ydeevnen for alle brugere. Der er altid mange gode leverandører derude, der tillader peer-to-peer og stadig leverer en service af høj kvalitet. Men hvis det ikke er din vigtigste rekruttering, anbefaler jeg at vælge en service, der ikke tillader peer-to-peer.

Dataloft

Brug aldrig en tjeneste, der beholder et dataloft over deres betalende brugere. Dette løber bare ud på det værst tænkelige tidspunkt præcis som dataene på din telefon lige før den sjove del i et videoklip!

Afslut lande

Afhængigt af brugstilfældet har dette forskellig betydning. For en use case som min, hvor jeg skal ende i et specifikt land, skal det selvfølgelig på listen. Jeg skal også have lov til at vælge, hvilket land jeg forlader. Der er tjenester, hvor du ikke kan vælge udrejseland, hold dig væk fra dem. Du kan ende i et land med dårlige præstationer eller love om beskyttelse af personlige oplysninger. Selvom du ikke har brug for et specifikt land, skal du stadig vælge en tjeneste med et par forskellige lande at vise fra for at kunne finde et med god ydeevne.

Software og support

Dette er en af hovedårsagerne til, at jeg foretrækker tjenester med en gratis test. Der er så mange udbydere med dårlig software, der er buggy, usikre eller bare ikke virker. Til en Raspberry Pi -implementering har jeg brug for en udbyder, der understøtter OpenVPN.

Mit valg

Til dette byggeri gik jeg med Tunnel Bear. Der tilbydes en gratis test på op til 500 GB, så jeg kunne teste, at jeg faktisk kunne streame, før jeg betalte noget. De er baseret i Canada, som ved siden af Sverige har nogle af de stærkeste love om beskyttelse af personlige oplysninger i verden. Intet dataloft på betalt service, og jeg har også lov til at have flere enheder tilsluttet på en gang. Så beskyttelse af min telefon, tablet og computer, mens jeg rejser på usikker wifi, sorteres også. Udgangsknudepunkt i Sverige understøttes, den leveres faktisk via Bahnhof, som er kendt for stærkt privatliv i Sverige. Til de betalte planer tilbyder de OpenVPN -support. Det gør de ikke til den gratis test, men det var nok at køre det fra min bærbare computer for at sikre, at streamingtjenesterne fungerede.

Trin 2: Installer Raspberry Pi

Til implementeringer som denne bruger jeg Raspbian Lite -operativsystemet. Da jeg slet ikke har brug for GUI. Du kan få den seneste udgivelse her.

Jeg bruger Win32DiskImager til at indlæse.img-filen på SD-kortet til Raspberry Pi.

Når Raspberry Pi er startet, kigger jeg i min routers DHCP-liste for at få IP-adressen og derefter oprette forbindelse over SSH med Putty. Standard brugernavn og adgangskode er pi/hindbær

Når jeg var tilsluttet, kører jeg raspi-config-værktøjet til at ændre de grundlæggende indstillinger.

sudo raspi-config

De mest vigtige ting at tage sig af i denne konfiguration er:

  • Udvid filsystemet
  • Skift kodeord

Du kan også ændre værtsnavnet på din Raspberry Pi, hvis du vil. Mit DHCP har meget lange lejemål, og jeg kan også reservere en bestemt adresse. Hvis du ikke har denne mulighed, skal du konfigurere Raspberry Pi til at bruge en statisk IP-adresse. Da andre enheder vil bruge dette som standard gateway, er det vigtigt, at det bliver ved med at bruge den samme IP-adresse. Her er et indlæg, jeg skrev om opsætning af en statisk IP i Raspbian Jessie.

Derefter skal vi opgradere alt til den nyeste version:

sudo apt-get opdateringer sudo apt-get upgrade sudo apt-get dist-upgrade

Trin 3: Installer OpenVPN

Installer OpenVPN
Installer OpenVPN

Nu skal vi installere OpenVPN på Raspberry Pi.

sudo apt-get install openvpn

Derefter skal vi sikre os, at tjenesten starter korrekt.

sudo systemctl aktiver openvpn

Når installationen er færdig, skal vi kopiere OpenVPN -konfigurationsfilerne og certifikaterne til boksen. Dette vil blive leveret til dig af din VPN -udbyder. I mit tilfælde fandt jeg der et blogindlæg om Linux Support ved hjælp af TunnelBear. På den side er der et link til zip -fil, der indeholder alt, hvad vi har brug for.

Filen indeholder certifikatfilerne og en.opvn -konfigurationsfil for hvert land, du kan tunnelere til. Du skal bruge alle certifikatfilerne og.opvn -konfigurationsfilen til det land, du ønsker, i mit tilfælde Sverige. Pak de nødvendige filer ud, og brug winscp til at uploade filerne til din Raspberry Pi. Det samme brugernavn/kodeord som bruges til SSH bringer dig til/home/pi, bare slip filer der.

Derefter går vi tilbage til SSH -terminalen og flytter filerne til OpenVPN -mappen. Første kommando er bare at sikre, at vi er i mappen /home /pi.

cd /home /pi

sudo mv */etc/openvpn/

Nu skal vi lave nogle ændringer af filerne. Først skal vi omdøbe konfigurationsfilen fra.ovpn til.conf. Enhver fil, der ender med.conf i mappen /etc /openvpn, starter automatisk, når OpenVPN -dæmonen startes. Først skal vi ind i den mappe.

cd /etc /openvpn

Derefter ændrer vi navnet på konfigurationsfilen. Du kan navngive det, hvad du vil, så længe det ender på.conf. Jeg foretrækker at bruge filnavne uden tomme mellemrum, i dette tilfælde går jeg med swe.conf.

sudo mv *.ovpn swe.conf

Så har vi brug for en godkendelsesfil, der indeholder brugernavnet og adgangskoden, der bruges til VPN -tunnelen. Åbn en teksteditor, og skriv brugernavnet og adgangskoden på separate linjer. Vi kalder denne fil auth.txt.

sudo nano auth.txt

Indholdet skal være som dette eksempel:

brugernavn

adgangskode

Brug derefter CTRL + O til at skrive til filen og CTRL + X for at afslutte nano -teksteditoren. Vi skal også beskytte filen auth.txt, der indeholder vores legitimationsoplysninger.

sudo chmod 600 /etc/openvpn/auth.txt

Derefter skal vi redigere konfigurationsfilen for at sikre, at alle stier er korrekte og tilføje en reference til den nyoprettede auth.txt -fil.

sudo nano swe.conf

De linjer, der skal ændres, er dem, der refererer til andre filer, de skal være absolutte stier. I dette eksempel er det det, vi leder efter:

ca CACertificate.crt

cert UserCertificate.crt -nøgle PrivateKey.key

Vi ændrer dem til absolut stier som denne:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt -nøgle /etc/openvpn/PrivateKey.key

Derefter tilføjer vi i slutningen af filen en reference til filen auth.txt, sådan her:

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

Igen bruger vi CTRL + O til at gemme filen og derefter CTRL + X for at afslutte nano. Nu kan vi genstarte OpenVPN -dæmonen og se, at tunnelen fungerer.

sudo service openvpn genstart

Hvis du kører kommandoen ifconfig, skal du se en tun0 -adapter ud over din eth0 og lo -adaptere, hvis tunnelen er oppe. Du kan også køre kommandoen denne kommando for at kontrollere din offentlige IP:

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

Hvis du har problemer med at få tunnelen op, skal du først prøve at genstarte din Raspberry Pi og derefter tjekke konfigurationen for fejl.

Trin 4: Opsætning af routing

Nu skal vi aktivere IP -videresendelse. Det gør det muligt for netværkstrafikken at strømme ind fra en af netværksgrænsefladerne og ud af den anden. Grundlæggende oprettelse af en router.

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

Hvis du kører sudo sysctl -p, skal du se dette trykt på skærmen:

net.ipv4.ip_forward = 1

Nu er routing aktiveret, og trafik kan gå gennem Raspberry Pi, over tunnelen og ud på internettet.

Trin 5: Konfigurer firewall og NAT

Da vi vil have flere klienter på indersiden adgang til internettet via en offentlig IP -adresse, skal vi bruge NAT. Det står for oversættelse af netværksadresser og vil holde styr på, hvilken klient der anmodede om hvilken trafik, når oplysningerne vender tilbage over tunnelen. Vi er også nødt til at opsætte noget sikkerhed omkring Raspberry Pi selv og tunnelen.

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

Aktivering af NAT.

sudo iptables -A FREMTIL -i eth0 -o tun0 -j ACCEPT

Tillader enhver trafik fra eth0 (intern) at gå over tun0 (tunnel).

sudo iptables -A FREM -i tun0 -o eth0 -m tilstand -stat RELATERET, ESTABLERET -j ACCEPT

Tillader trafik fra tun0 (tunnel) at gå tilbage over eth0 (intern). Da vi angiver staten RELATERET, ESTABLISHED, vil den være begrænset til forbindelse, der startes fra det interne netværk. Blokering af ekstern trafik forsøger at starte en ny forbindelse.

sudo iptables -A INPUT -i lo -j ACCEPT

Tillader Raspberry Pi's egen loopback -trafik.

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

Tillad computere på det lokale netværk at pinge Raspberry Pi.

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

Tillader SSH fra det interne netværk.

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

Tillader al trafik initieret af Raspberry Pi at vende tilbage. Dette er den samme statsforstander som tidligere.

sudo iptables -P FREMSEND DROP

sudo iptables -P INPUT DROP sudo iptables -L

Hvis trafikken ikke matcher nogen af de angivne regler, vil den blive droppet.

sudo apt-get install iptables-persistent

sudo systemctl aktiver netfilter-persistent

Første linje installerer en kodefrid, der gør de iptable regler, vi lige har oprettet, vedvarende mellem genstarter. Den anden gemmer reglerne, efter at du har ændret dem. Denne gang er det nok at køre den første. Hvis du ændrer reglerne, skal du køre den anden for at gemme. Iptable -regler er gældende, så snart du tilføjer dem, hvis du ødelægger og mister adgangen, bare genstart, og dem, der ikke allerede er gemt, vender tilbage.

Trin 6: Konklusion

Nu kan du bruge denne tunnel fra enhver enhed eller computer på det samme netværk. Skift bare standardgateway til den IP-adresse, din Raspberry Pi har. I mit tilfælde bruger begge mine Kodi -mediecentre (et soveværelse og en stue) denne forbindelse, så jeg kan streame mine svenske afspilningskanaler. Selvfølgelig er der andre ting, du også kan bruge dette til.

Bare husk på, at afhængigt af den VPN -leverandør, du valgte, og hastigheden på din internetforbindelse, kan der være langsom ydelse.

Hvis du har spørgsmål eller vil have mig til at præcisere noget, lad mig vide det i kommentarerne! For mere teknisk indlæg besøg min blog Hackviking!

Anbefalede: