Configurare server OpenVPN Raspberry Pi

Configurare server OpenVPN Raspberry Pi

Azi vreau să vă arăt cum vă puteți proteja pe internet cu ajutorul unui server OpenVPN Raspberry Pi.

Va fi un articol mai lung, dar vă asigur că nu este deloc complicat, chiar dacă va include mai multă informație și ceva mai multe aplicații.

În ziua de azi internetul este un domeniu public unde oricine poate face orice. Toți folosim internetul și sunt sigur că uneori nu ne gândim că putem fi în pericol. Ați folosit vreodată o conexiune Free WiFi? Mai exact, v-ați conectat la vreun HotSpot în vreo cafenea, aeroport, hotel sau, mai nou, în vreun mijloc de transport? Ei bine, niciuna dintre aceste conexiuni nu este sigură, iar tot ceea ce faceți când sunteți conectat poate fi văzut și de alții.

Aici nu mă refer la cei ce dețin HotSpot-ul, ci la alte persoane care sunt conectate la acel HotSpot în același timp cu voi. O rețea WiFi publică este vulnerabilă unui atac de tip MITM (Man In The Middle Attack). Adică traficul dintre dispozitivul vostru și HotSpot poate fi redirecționat către o altă persoană (Hacker) și, astfel, tot ce ați făcut poate fi aflat de acea persoană.

Cu ajutorul unui server VPN (Virtual Private Network) puteți avea o conexiune sigură oriunde v-ați afla. Ce face mai exact acest VPN? Simplu! Vă aduce rețeaua de acasă, care este sigură, acolo unde vă aflați.

Am să vă arăt cum putem face un server VPN pentru a ne securiza conexiunea la internet cu ajutorul unui Raspberry Pi și OpenVPN.

Creare server OpenVPN Raspberry Pi

Raspberry Pi

În primul rând, avem nevoie de un Raspberry Pi, instalat și configurat. Dacă nu știți cum să faceți asta, veți găsi mai jos linkuri către articolele care vă pot ajuta. Pentru acest articol am folosit un Raspberry Pi 2. Puteți folosi orice Raspberry Pi, dar, pentru a beneficia de o viteză mai bună pentru conexiune, recomand minimum Raspberry Pi 3.

 

Instalare Raspbian – https://7hub.ro/index.php/2020/05/25/instalare-raspbian/

Configurare Raspbian – https://7hub.ro/index.php/2020/07/14/raspi-config/

În cazul în care nu aveți o tastatură, un mouse și un monitor, puteți face o configurație headlesshttps://7hub.ro/index.php/2020/06/02/headless-raspberry-pi/

Nu uitați să faceți update-urile înainte de a începe.

sudo apt update 
sudo apt upgrade -y 

Aplicații utilizate pentru OpenVPN Raspberry Pi

Pentru a crea serverul de VPN am folosit OpenVPN. Mai jos veți vedea cum am instalat serverul rulând o singură linie de comandă.

Pentru a descărca cheia pentru conexiunea VPN pe laptop (calculator) am folosit WinSCP, pe care îl puteți descărca de aici – https://winscp.net/eng/download.php . Pentru a descărca pe un dispozitiv mobil am folosit Astro File Manager, pe care îl puteți descărca din Play Store sau de aici – https://play.google.com/store/apps/details?id=com.metago.astro&hl=ro&gl=US . Mai puteți folosi și File Manager Plus, pe care îl găsiți tot în Play Store sau aici – https://play.google.com/store/apps/details?id=com.alphainventor.filemanager&hl=ro&gl=US .

Pe telefon sau pe laptop mai trebuie instalată aplicația OpenVPN client, pe care o vom folosi pentru a ne conecta la server. Aceasta poate fi descărcată din Play Store https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=en pentru dispozitivele mobile cu Android și pentru Windows de aici – https://openvpn.net/client-connect-vpn-for-windows/.

Instalare OpenVPN pe Raspberry Pi

Cei de la https://www.pivpn.io/ au simplificat atât de mult instalarea și configurarea unui server OpenVPN pe un Raspberry Pi încât chiar și un copil ce știe să citească poate face o astfel de instalare. Este suuuuuper simplu!!!

curl -L https://install.pivpn.io | bash 
OpenVPN Raspberry Pi
pivpn install command
OpenVPN Raspberry Pi
Installing pivpn
OpenVPN Raspberry Pi
pivpn install progress

Aceasta a fost instalarea. Acum voi configura serviciul în câțiva pași foarte simpli. Cei de la PiVPN au simplificat și automatizat tot procesul încât nu trebuie decât să dai click-uri. Am să apăs butonul Ok pentru a începe.

OpenVPN Raspberry Pi
PiVPN OpenVPN WireGuard

Serverul nostru de OpenVPN va avea nevoie de o adresă IP statică, adică fixă, pentru a funcționa. Dacă nu ai configurat una pentru RPI, nu este nicio problemă. Apăsăm OK.

OpenVPN Raspberry Pi
IP static address

Daca vrei să păstrezi adresa afișată, apeși Yes pentru a merge mai departe. Dacă vrei să o modifici, poți să apeși No. Eu am să păstrez adresa pentru că nu mă deranjează. Adresele folosite în acest articol sunt doar pentru testare.

OpenVPN Raspberry Pi
IP address

Va trebui să alegem un cont de utilizator pentru a rula serverul. Am să apăs Ok, după care am să las selectat contul de utilizator pi și voi apasă Ok pentru a merge mai departe. Dacă vreți să folosiți alt cont de utilizator, va trebui ca înainte de instalarea serverului OpenVPN pe Raspberry Pi să creați un alt cont de utilizator.

OpenVPN Raspberry Pi
PiVPN user
OpenVPN Raspberry Pi
PiVPN user select

Acum va trebui să selectăm tipul serviciului de VPN. OpenVPN sau WireGuard. Așa cum am spus la început, am să instalez OpenVPN. Deci voi alege OpenVPN din listă și am să apăs Ok.

OpenVPN Raspberry Pi
OpenVPN

Implicit aplicația ne sugerează care ar fi cea mai utilă configurație pentru noi. O puteți lăsa așa apăsând No sau puteți modifica apăsând Yes. Pentru că vreau să fie o configurație cât mai simplă și să nu intrăm în detalii, am să apăs No pentru a merge mai departe.

OpenVPN Raspberry Pi
Installation settings

Puteți folosi orice port pe care să se facă conexiunea sau puteți lăsa portul 1194 care este cel implicit pentru servicii VPN. Aici este indicat să modificați portul, dar nu alegeți un port cunoscut cum ar fi 21, 22, 80, 8080, 443, 3389 etc. Am să las 1194 în cazul meu, fiind vorba de o testare. Apăs Ok, iar în următoarea fereastră am să aleg Yes pentru confirmare.

OpenVPN Raspberry Pi
OpenVPN port
OpenVPN Raspberry Pi
OpenVPN port 1194

Avem nevoie și de un furnizor de DNS. Eu am ales Google fiind foarte cunoscut și… Google cam știe tot.

OpenVPN Raspberry Pi
DNS Provider

Acum se complică puțin lucrurile.

În România, cel puțin, adresele IP pe care le avem alocate de la furnizorul de internet nu sunt statice decât dacă contractul de internet este unul business. Pentru VPN avem nevoie de o adresă IP statică sau un nume de domeniu. Util este să avem un nume de domeniu, de forma frunzaverde.ro. Astfel va fi mult mai ușor să ținem minte un nume decât o adresă IP de forma 172.217.19.99 (google.ro). Pentru aceasta vom folosi înregistrări DDNS.

Dacă sunteți client Digi (RCS-RDS), alegeți un nume care automat este legat la contul vostru, iar atunci când adresa voastră IP se modifică veți putea folosi numele pentru a avea acces.

În cazul UPC, din câte știu, adresa IP nu prea se modifică. Pentru alți furnizori, va trebui să întrebi furnizorul tău de internet.

Mai puteți face cont pe https://freedns.afraid.org/ și să utilizați unul din subdomeniile libere de acolo căruia să îi asociați adresa voastră IP. Eu am un domeniu și am să îl folosesc. Am să selectez DNS entry și voi apăsa Ok.

OpenVPN Raspberry Pi
DNS Entry

Voi introduce numele de domeniu și apăs Ok. După care Yes pentru confirmare.

OpenVPN Raspberry Pi
DNS Name
OpenVPN Raspberry Pi
Confirm DNS name

Așa cum spune și mesajul, vom lăsa update-urile să se instaleze automat atunci când acestea sunt disponibile. Apăsăm Ok, după care Yes.

OpenVPN Raspberry Pi
Upgrade

Aceasta a fost instalarea și configurarea. Acum, pentru a crea un cont de acces la VPN va trebui să rulăm comanda pivpn add. Vom apăsa Ok și încă o data Ok pentru generarea cheilor de acces.

OpenVPN Raspberry Pi
Installation complete
OpenVPN Raspberry Pi
Key server

Mai trebuie să facem un restart pentru ca toată configurație să devină activă.

OpenVPN Raspberry Pi
Reboot

Gata. S-a instalat.

Acum să creăm primul utilizator.

Creare utilizatori pe OpenVPN Raspberry Pi

Pentru a crea un utilizator pe serverul nostru de OpenVPN Raspberry Pi vom rula comanda:

pivpn add 
OpenVPN Raspberry Pi
PiVPN add

Voi da un nume pentru contul de VPN. Puteți crea cât de multe conturi vreți. Eu am ales numele 7hub, am lăsat implicit perioada de expirare a certificatului la 1080 de zile și am ales și o parola. Parola trebuie introdusă de 2 ori la fel, pentru a fi siguri că nu este introdusă greșit. Parola va fi folosită pentru criptarea cheii când aceasta este creată și decriptarea ei atunci când vrem să ne conectăm la server din aplicație.

OpenVPN Raspberry Pi
PiVPN user

Cheia de acces a fost creată și poate fi descărcată din calea /home/pi/ovpns/7hub.ovpn.

OpenVPN Raspberry Pi
Generated key

Configurare router pentru OpenVPN Raspberry Pi

Având în vedere că trebuie să ne putem conecta din internet la serverul OpenVPN de pe Raspberry Pi care se află în rețeaua locala, va trebui să creăm o “poartă”. Știu că poate suna înfricoșător, dar nu este. Pentru asta trebuie să ne conectăm la routerul nostru. Conectarea la el se face printr-un browser, introducând adresa IP a routerului. Dacă nu o știți, o puteți afla tastănd în CMD (Command Prompt).

ipconfig /all 

Căutați linia care începe cu Default Gateway. Aceea este adresa routerului vostru. Sau poate fi trecut pe spatele routerlui vostru împreună cu datele de logare, dacă nu le-ați schimbat.

Eu am folosit un router TP-Link pentru acest proiect. În cazul vostru poate să difere un pic interfața/structura. Trebuie să căutați secțiunea de NAT Forwarding sau Port Forwarding.

TpLink

La mine se află în Advanced, apoi am deschis secțiunea NAT Forwarding și am ales Virtual Servers. Am dat click pe Add și am completat câmpurile solicitate. Pentru Service Type, am pus numele VPN, ca să pot identifica mai ușor în listă. Am lăsat la Protocol selectat All și portul external și internal 1194. La Internal IP am pus adresa IP a serverului VPN, 192.168.0.120.

Configurare dispozitiv mobil - Android

Am să vă arăt cum veți putea descărca cheia de acces la VPN pe care am creat-o mai devreme pe serverul nostru. Pentru aceasta vă recomand să instalați aplicația Astro File Manager, pe care o puteți descărca din Play Store – https://play.google.com/store/apps/details?id=com.metago.astro&hl=ro&gl=US sau File Manager Plushttps://play.google.com/store/apps/details?id=com.alphainventor.filemanager&hl=ro&gl=US . Ambele merg la fel de bine. Eu am folosit Astro File Manager.

Pentru început vom crea o conexiune la serverul VPN pentru a descărca cheia cu ajutorul aplicației Astro. În aplicație voi alege să adaug o nouă conexiune din secțiunea Storage Locations. Această conexiune este de tipul SFTP. Se va deschide o fereastră unde va trebui să introducem datele de conectare.

SFTP Server

La user se va trece pi (dacă nu ați schimbat numele utilizatorului), server 192.168.0.120, în cazul meu; voi trebuie să treceți adresa IP a serverului vostru VPN și portul este 22. După ce ați introdus aceste date, apăsați Save. Acum, în secțiunea Storage Locations, va apărea noua conxiune. Vom da click pe această conexiune și vom introduce parola. Dacă nu ați schimbat parola la configurarea RPI-ului, atunci aceasta va fi raspberry. Dacă vreți ca parola sa fie ținută minte, puteți să bifați căsuța Save Password. Eu recomand să nu salvați niciodată parolele.

Connection info

Acum, că ne-am conectat la server, va trebui să mergem în home, apoi în pi și să intrăm în ovpns. Aici vom găsi cheia: 7hub.ovpn, în cazul meu, la voi va avea numele pe care l-ați dat cand ați creat utilizatorul de VPN. Țineți apăsat pe ea încât să o puteți selecta și apoi dați click pe copy. În colțul din stânga sus apăsați pe iconița, căsuță, și din secțiunea Storage Locations alegeți Internal shared storage. Acum veți avea acces la structura de foldere de pe telefonul sau tableta voastră. Căutați folder-ul Documents și apăsați Paste la fișierul cu cheia în el.

Am ales folder-ul Documents pentru a fi mai ușor. Puteți pune cheia aproape oriunde, dar va trebui să vă fie ușor să o găsiți cu aplicația OpenVPN.

OVPN key
OVPN copy
key location

Când veți deschide aplicația prima oară, veți avea o fereastră goală, nu ca în cazul meu, și un buton cu semnul plus in colțul din dreapta jos.

Instalați aplicația OpenVPN din PlayStore, o puteți găsi la adresa – https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=en .

Când veți deschide aplicația OpenVPN prima oară, veți avea o fereastră goală, nu ca în cazul meu, și un buton cu semnul plus in colțul din dreapta jos.

OpenVPN Raspberry Pi
OpenVPN Profiles

Apăsați pe el, iar din partea de sus apăsați pe butonul File. Acum mergeți către folder-ul Documents de pe telefonul vostru și selectați fișierul ovpn. Pentru finalizare, apăsați pe butonul Import.

OpenVPN Raspberry Pi
Import ovpn
OpenVPN Raspberry Pi
Imported ovpn

Puteți lăsa bifată căsuța Connect after import. Dacă lăsați bifată căsuța, aplicația vă va cere parola pe care ați configurat-o atunci când ați creat cheia pe server, după care se va conecta automat la serverul VPN.

OpenVPN Raspberry Pi
Profile password

Conectare și verificare OpenVPN Raspberry Pi

Să testăm conexiune. Eu pe serverul meu VPN am instalat și un server de web pentru a vă arăta conexiunea la rețeaua locală din internet.

Din aplicație alegem numele conexiunii, la mine se va numi 7hub, iar în momentul în care activez conexiunea îmi va cere parola configurată la crearea utilizatorului.

După ce am introdus parola în aplicație, va apărea în partea de sus mesajul Connected și un grafic ce reprezintă traficul efectuat de voi, în partea de jos.

OpenVPN Raspberry Pi
OpenVPN connected

Am să deschid un browser și voi introduce o adresa IP din rețeaua locala. Așa cum am spus mai devreme, am să accesez un server web la adresa 192.168.0.120. Se poate observa în partea de sus a imaginii că sunt conectat la datele mobile cu telefonul (4G+) și, de asemenea, mai apar două simboluri. O cheiță lângă iconițele de semnal și o căsuța lângă iconița cu bateria. Acestea semnifică că sunt conectat la rețeaua locală prin OpenVPN și am o conexiune sigură.

În browser se poate vedea pagina de la Apache care a fost accesată pe o adresă IP locală, nu din internet.

VPN connection over 4G

Acum puteți să vă conectați la internetul de acasă de oriunde v-ați afla și să fții în siguranța de pe telefon. Hai să vedem cum putem să ne conectăm și cu un laptop cu Windows.

Configurare dispozitiv mobil - Windows

Pentru desărcarea cheii ovpn de pe Raspberry vom folosi WinSCP.

Deschidem aplicația și introducem datele de conectare. Adresa IP a RPI-ului la Host name, numele de cont pi la User name și selectăm protocolul SFTP, vom lăsa portul 22 selectat. Apăsăm butonul Login și ne-am conectat.

WinSCP Logon

Introducem parola, iar la prima autentificare pe RPI vom primi si o cheie SSH care va fi folosită în background la autentificare. Pentru că în cazul meu am mai folosit adresa IP și la alt RPI în trecut, aplicația îmi va cere să reînnoiesc cheia SSH, am să apăs deci butonul Update.

WinSCP Password
SSH Key

Se va deschide o fereastră împărțită în două părți. În partea stângă este structura de fișiere de pe laptopul meu. În această parte voi naviga unde vreau să salvez cheia. Am ales să salvez pe Desktop într-un folder cu numele OVPN. În partea din dreapta am să navighez pe RPI până la fișierul ovpn în locația /home/pi/ovpns . Acum foarte simplu am să trag din dreapta fișierul meu 7hub.ovpn în partea stângă. Astfel am salvat cheia de pe RPI pe laptopul meu.

WinSCP download

Pentru a vă conecta la serverul vostru OpenVPN cu un laptop, va trebui doar să descărcați și să instalați aplicația pentru Windows de aici – https://openvpn.net/client-connect-vpn-for-windows/ .

Pentru Windows vom deschide aplicația din meniul Start, așa cum se poate vedea în imaginea de mai jos.

Windows OpenVPN

La fel ca la aplicația de pe telefon alegem File și vom selecta fișierul ovpn salvat de pe server. Utilizarea aplicației OpenVPN de pe Windows este similară cu cea de pe telefonul mobil.

OpenVPN Raspberry Pi

Odată ce ați introdus profilul, cheia, nu mai trebuie decât să apăsați pe butonul slider din stânga sau să apăsați pe nume și vi se va cere parola pentru a vă conecta.

Este un articol destul de lung pe care am încercat să îl fac să fie cât mai ușor de urmărit. Am încercat pe cât posibil să pun imagini pentru fiecare pas. Toată această instalare este destul de intuitivă, dar dacă întâmpinați dificultăți nu ezitați să îmi scrieți.

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!