Cuprins:

Raspberry Pi VPN Gateway: 6 pași
Raspberry Pi VPN Gateway: 6 pași

Video: Raspberry Pi VPN Gateway: 6 pași

Video: Raspberry Pi VPN Gateway: 6 pași
Video: How to setup a Raspberry Pi OpenVPN gateway 2024, Iulie
Anonim
Raspberry Pi VPN Gateway
Raspberry Pi VPN Gateway

Actualizare 07-01-2018:

  • Lucrurile actualizate lipsesc și modificările necesare pentru versiunea curentă a Raspian.
  • De asemenea, a creat un ghid specific pentru NordVPN.

Există câteva utilizări diferite pentru VPN. Fie doriți să vă protejați confidențialitatea și datele private de ochii curioși, fie trebuie să obțineți surse dintr-o altă țară. Aprovizionarea dintr-o altă țară poate fi foarte utilă pentru a obține acces la servicii care nu sunt furnizate în țara dvs. Există o serie de servicii VPN disponibile astăzi și cele mai multe dintre ele oferă software ușor de utilizat pentru computer și aplicații pentru tabletă sau telefon. Dar dacă aveți alte dispozitive neacceptate de software pe care doriți să le treceți prin VPN? Apoi, construiți un gateway care vă oferă acces la internet prin VPN.

Dacă vă uitați la configurarea de bază a rețelei, aveți un „gateway implicit” care este utilizat pentru orice adresă ip care nu se află în subrețeaua dvs. curentă (foarte simplificată). Deci, dacă configurați un gateway care poate direcționa traficul de internet printr-o conexiune VPN stabilită, orice dispozitiv activat în rețea poate profita de tunelul VPN.

Cazul meu principal de utilizare în apartamentul meu din San Francisco este un tunel VPN către Suedia nativă, astfel încât să pot transmite canale de redare suedeze pe playerele media și pe televizorul meu inteligent. Acesta este un caz de utilizare destul de comun pentru majoritatea persoanelor care au nevoie de un tunel VPN. Deoarece playerele media și televizoarele inteligente nu sunt acceptate de software-ul VPN, am construit unul dintr-un Raspberry Pi.

Puteți ridica unul pentru mai puțin de 40 USD pe Amazon. Cu toate acestea, vă recomand să cumpărați și o carcasă și un adaptor de alimentare decent. Pentru acest instructiv aveți nevoie de:

  • Raspberry Pi 2 sau 3
  • Un caz pe placul tău
  • Un adaptor de alimentare decent
  • Un cablu de rețea

Pasul 1: Alegerea serviciului VPN

Alegerea serviciului VPN
Alegerea serviciului VPN

Lucrul important atunci când selectați un serviciu VPN este că acesta îndeplinește cerințele dvs. Pentru acest caz de utilizare, aveam nevoie de un serviciu VPN cu un punct de ieșire suedez, acesta este cel mai important lucru, deoarece am nevoie de serviciile suedeze pentru a fi convins că sunt în Suedia. De-a lungul anilor am folosit mai mulți furnizori diferiți și mai jos sunt lucrurile pe care le iau în considerare la selectarea furnizorului VPN pentru cazul de utilizare specific:

Test gratuit

Vreau o perioadă de testare gratuită sau o cantitate mică de date de testare pentru a avea o impresie despre software sau aplicație. De asemenea, vreau să testez performanța și experiența generală înainte de a plăti pentru aceasta. De asemenea, este plăcut să verific dacă ideea mea va funcționa înainte de a începe să plătesc.

Confidențialitate

Dacă implementarea este pentru probleme de confidențialitate, atunci este foarte important ceea ce prevede politica de confidențialitate. De asemenea, este important din ce țară operează compania și din ce legi vă protejează confidențialitatea. Utilizatorii cu adevărat preocupați de confidențialitate ar trebui să se uite la un serviciu care afirmă că nu sunt stocate jurnale de trafic și să permită plăți anonime prin Bitcoin, de exemplu.

Trafic permis

S-ar putea să existe limitări cu privire la tipul de trafic pe care vi se va permite să îl rulați. Furnizorii mai serioși blochează de obicei traficul peer-to-peer. Acest lucru nu este doar pentru a evita problemele legale, ci pentru a putea menține performanța tuturor utilizatorilor. Există totuși o mulțime de furnizori buni care permit peer-to-peer și oferă în continuare un serviciu de înaltă calitate. Dar dacă acesta nu este principalul dvs. recu, vă recomand să selectați un serviciu care nu permite peer-to-peer.

Limita de date

Nu utilizați niciodată un serviciu care păstrează o limită de date peste utilizatorii plătitori. Acest lucru se va epuiza în cel mai rău moment posibil, exact ca datele de pe telefonul dvs. chiar înainte de partea amuzantă dintr-un videoclip!

Ieșiți din țări

În funcție de caz de utilizare, aceasta are o importanță diferită. Pentru un caz de utilizare ca al meu, în care trebuie să ajung într-o anumită țară, desigur că trebuie să fie pe listă. De asemenea, trebuie să mi se permită să selectez în ce țară părăsesc. Există servicii în care nu puteți selecta țara de ieșire, stați departe de acestea. Puteți ajunge într-o țară cu performanțe slabe sau legi privind confidențialitatea. Chiar dacă nu aveți nevoie de o anumită țară, ar trebui totuși să selectați un serviciu cu câteva țări diferite din care să arătați pentru a putea găsi unul cu performanțe bune.

Tipul de software și suport

Acesta este unul dintre principalele motive pentru care prefer serviciile cu un test gratuit. Există atât de mulți furnizori cu software rău care sunt buggy, nesiguri sau pur și simplu nu funcționează. Pentru o implementare Raspberry Pi, am nevoie de un furnizor care să accepte OpenVPN.

Selecția mea

Pentru această construcție am mers cu Tunnel Bear. Este oferit un test gratuit de până la 500 GB, astfel încât să pot testa că aș putea transmite în realitate înainte de a plăti ceva. Acestea au sediul în Canada, care, alături de Suedia, au unele dintre cele mai puternice legi privind confidențialitatea din lume. Nu există limită de date pentru serviciul cu plată și, de asemenea, mi se permite să am mai multe dispozitive conectate simultan. Deci, protecția pentru telefonul meu, tableta și computerul meu în timp ce călătoresc pe un wifi nesigur este sortată, de asemenea. Nodul de ieșire din Suedia este acceptat, este de fapt furnizat prin Bahnhof, care este cunoscut pentru confidențialitate puternică în Suedia. Pentru planurile plătite, acestea oferă suport OpenVPN. Nu fac testul gratuit, dar a fost suficient să rulez acest lucru de pe laptopul meu pentru a mă asigura că serviciile de streaming funcționează.

Pasul 2: Instalați Raspberry Pi

Pentru implementări de genul acesta folosesc sistemul de operare Raspbian Lite. Din moment ce nu am deloc nevoie de GUI. Puteți obține cea mai recentă versiune aici.

Folosesc Win32DiskImager pentru a încărca fișierul.img pe cardul SD pentru Raspberry Pi.

Odată ce Raspberry Pi a pornit, mă uit în lista DHCP a routerelor mele pentru a obține adresa IP și apoi să mă conectez prin SSH cu Putty. Numele de utilizator și parola standard sunt pi / raspberry

Odată conectat, rulez instrumentul raspi-config pentru a modifica setările de bază.

sudo raspi-config

Cele mai importante lucruri de care trebuie să aveți grijă în această configurație sunt:

  • Extindeți sistemul de fișiere
  • Schimbați parola

De asemenea, puteți schimba numele de gazdă al Raspberry Pi dacă doriți. DHCP-ul meu are contracte de închiriere foarte lungi și pot rezerva, de asemenea, o adresă specifică. Dacă nu aveți această capacitate, trebuie să configurați Raspberry Pi pentru a utiliza o adresă IP statică. Deoarece alte dispozitive vor folosi acest lucru ca gateway implicit, este important ca acesta să continue să utilizeze aceeași adresă IP. Iată o postare pe care am scris-o despre setarea unui IP static în Raspbian Jessie.

Apoi, trebuie să actualizăm totul la cea mai recentă versiune:

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

Pasul 3: Instalați OpenVPN

Instalați OpenVPN
Instalați OpenVPN

Acum trebuie să instalăm OpenVPN pe Raspberry Pi.

sudo apt-get install openvpn

Apoi, trebuie să ne asigurăm că serviciul pornește corect.

sudo systemctl activează openvpn

Când instalarea este terminată, trebuie să copiem fișierele și certificatele de configurare OpenVPN în casetă. Acest lucru vă va fi furnizat de furnizorul dvs. VPN. În cazul meu, folosind TunnelBear, am găsit o postare pe blog despre asistența Linux. Pe pagina respectivă există un link către fișierul zip care conține tot ce avem nevoie.

Fișierul conține fișierele de certificate și un fișier de configurare.opvn pentru fiecare țară în care puteți face tunel. Aveți nevoie de toate fișierele de certificate și fișierul de configurare.opvn pentru țara aleasă de dvs., în cazul meu Suedia. Dezarhivați fișierele necesare și utilizați winscp pentru a încărca fișierele pe Raspberry Pi. Același nume de utilizator / parolă ca cele utilizate pentru SSH vă va aduce în / home / pi, aruncați fișierele acolo.

Apoi ne întoarcem la terminalul SSH și mutăm fișierele în folderul OpenVPN. Prima comandă este doar pentru a ne asigura că suntem în folderul / home / pi.

cd / home / pi

sudo mv * / etc / openvpn /

Acum trebuie să facem unele modificări la fișiere. Mai întâi trebuie să redenumim fișierul de configurare din.ovpn în.conf. Orice fișier care se termină cu.conf în folderul / etc / openvpn va porni automat la pornirea daemonului OpenVPN. Mai întâi trebuie să intrăm în acel director.

cd / etc / openvpn

Apoi schimbăm numele fișierului de configurare. Puteți să-l numiți orice doriți atâta timp cât se termină în.conf. Prefer să folosesc nume de fișiere fără spații goale, în acest caz merg cu swe.conf.

sudo mv *.ovpn swe.conf

Apoi, avem nevoie de un fișier de autentificare care să conțină numele de utilizator și parola utilizate pentru tunelul VPN. Deschideți un editor de text și scrieți numele de utilizator și parola pe linii separate. Vom numi acest fișier auth.txt.

sudo nano auth.txt

Conținutul ar trebui să fie ca acest exemplu:

nume de utilizator

parola

Apoi utilizați CTRL + O pentru a scrie în fișier și CTRL + X pentru a ieși din editorul de text nano. De asemenea, trebuie să protejăm fișierul auth.txt care conține acreditările noastre.

sudo chmod 600 /etc/openvpn/auth.txt

Apoi, trebuie să edităm fișierul de configurare pentru a ne asigura că toate căile sunt corecte și să adăugăm o referință la noul fișier auth.txt creat.

sudo nano swe.conf

Liniile care trebuie modificate sunt cele care se referă la alte fișiere, trebuie să fie căi absolute. În acest exemplu, asta căutăm:

ca CACertificate.crt

cert UserCertificate.crt cheie PrivateKey.key

Le schimbăm pe căi absolute așa:

ca /etc/openvpn/CACertificate.crt

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

Apoi, la sfârșitul fișierului adăugăm o referință la fișierul auth.txt, astfel:

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

Din nou folosim CTRL + O pentru a salva fișierul și apoi CTRL + X pentru a ieși din nano. Acum putem reporni demonul OpenVPN și putem vedea că tunelul funcționează.

sudo service openvpn reporniți

Dacă executați comanda ifconfig, ar trebui să vedeți un adaptor tun0 în plus față de adaptoarele eth0 și lo dacă tunelul este activ. De asemenea, puteți rula comanda cu această comandă pentru a vă verifica adresa IP publică:

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

Dacă întâmpinați probleme la ridicarea tunelului, încercați mai întâi să reporniți Raspberry Pi și apoi verificați din nou configurația pentru erori.

Pasul 4: Configurați rutare

Acum trebuie să activăm redirecționarea IP. Permite traficului de rețea să circule de la una dintre interfețele de rețea și de la cealaltă. Crearea în esență a unui router.

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

Dacă rulați sudo sysctl -p ar trebui să vedeți acest lucru imprimat pe ecran:

net.ipv4.ip_forward = 1

Acum rutare este activată și traficul poate trece prin Raspberry Pi, prin tunel și pe internet.

Pasul 5: Configurare firewall și NAT

Deoarece vom avea mai mulți clienți din interior care accesează internetul printr-o adresă IP publică, trebuie să folosim NAT. Acesta reprezintă traducerea adresei de rețea și va urmări care client a solicitat ce trafic atunci când informațiile se întorc peste tunel. De asemenea, trebuie să configurăm o anumită securitate în jurul Raspberry Pi it auto și al tunelului.

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

Activarea NAT.

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

Permițând traficului de la eth0 (intern) să treacă peste tun0 (tunel).

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

Permițând traficului din tun0 (tunel) să revină peste eth0 (intern). Deoarece specificăm starea RELATED, STABILITĂ, aceasta se va limita la conexiunea inițiată din rețeaua internă. Blocarea traficului extern încercând să inițieze o nouă conexiune.

sudo iptables -A INPUT -i lo -j ACCEPT

Permițând propriul trafic loopback al Raspberry Pi.

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

Permițând computerelor din rețeaua locală să facă ping la Raspberry Pi.

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

Permite SSH din rețeaua internă.

sudo iptables -A INPUT -m state --state STABILIT, RELATAT -j ACCEPT

Permite revenirea întregului trafic inițiat de Raspberry Pi. Acesta este același principiu de stat ca mai devreme.

sudo iptables -P FORWARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

Dacă traficul nu corespunde niciunei reguli specificate, acesta va fi abandonat.

sudo apt-get install iptables-persistent

sudo systemctl permite netfilter-persistent

Prima linie instalează o pace a codului care face ca regulile iptabile pe care tocmai le-am creat să fie persistente între reporniri. Al doilea salvează regulile după ce le-ați modificat. De data aceasta este suficient să rulați primul. Dacă modificați regulile, rulați a doua pentru a salva. Regulile Iptable sunt în vigoare imediat ce le adăugați, dacă vă deranjați și pierdeți accesul, reporniți și cele care nu au fost deja salvate vor reveni.

Pasul 6: Concluzie

Acum puteți utiliza acest tunel de pe orice dispozitiv sau computer din aceeași rețea. Pur și simplu schimbați gateway-ul implicit cu orice adresă IP are Raspberry Pi. În cazul meu, ambele centre media Kodi (un dormitor și un living) folosesc această conexiune, astfel încât să pot transmite canalele mele de redare suedeze. Desigur, există și alte lucruri pentru care puteți folosi acest lucru.

Rețineți că, în funcție de furnizorul VPN pe care l-ați ales și de viteza conexiunii la internet, ar putea exista performanțe lente.

Dacă aveți întrebări sau doriți să clarific ceva, anunțați-mă în comentarii! Pentru mai multe postări tehnologice, vă rugăm să vizitați blogul meu Hackviking!

Recomandat: