Tegin proovi, kui keeruline on Google’i tasuta pilveserveri ja vabavaraga enda jaoks tööle panna VPNi.

Lühidalt

  • Milleks? See ei ole ideaalne ja turvaline VPN server. See on väike käeharjutus, mille lõpptulemus ei pruugi olla täiesti kasutu.
  • Kellele? Mina võtsin allkirjeldatud protsessi ette iseõppimiseks ja uudishimu rahuldamiseks. Tehniliste oskuste tase skaalal 0–10 ilmselt kuskil kahe või kolme peal. Lõpptulemusest võib olla praktilist kasu näiteks väike-ettevõtjal, kellel pole seljataga suure asutuse IT-osakonda ja VPNi, aga keda elu viib võõrastesse võrkudesse.

0.1. Sissejuhatus: mis on VPN?

Väga hea, et küsisid. VPN on “tunnel” läbi interneti, mis algab näiteks sinu arvutist ja jõuab välja mõne teise arvutini. Mis tunneli sees toimub, seda väljaspoolt näha pole – tunneli sees toimuv on ainult sinu ja selle teise arvuti vaheline asi. VPN aitab sinu privaatsust kaitsta olukorras, kus sa pole päris kindel, kas keegi võiks näha, märgata ja salvestada, mida sa siin oma arvuti juures teed. Oluline kompromiss VPNi puhul on see, et sa pead usaldama tunneli teist otsa – et see sinu andmetega midagi jama ei tee.

Miks seda vaja on? Kujuta ette interneti-eelset restorani, kust sa teed lauatelefonil privaatse kõne lähedasele, tööle või kasvõi panka. Sa räägid vaikselt torusse, keegi pole sinu kõrval justkui sind kuulamas… aga mine tea, mis sorti restoran see on. Äkki on liinil paralleel-telefon, kus kõlbeliselt laostunud portjee sinu juttu pealt kuulab ja üles kirjutab. Ja teeb sellega teab mida. Kui see portjee tundub kauge, siis kasutajataandmete äri tänapäeva internetis on vägagi reaalne.

VPN aitab kaitsta infot selle võrgu (haldaja) eest, milles su arvuti või telefon parasjagu on. Nii aitab see unustada ühe mure, kui reisid tihti või teed lihtsalt tööd “kohvik-kontoris”.

Igaks juhuks olgu öeldud, et VPN pole võluvits

  • See ei anna täielikku privaatsust. Sinu tegudest jääb kuhugi jälg maha. Kui VPNi tunneli teises otsas on arvuti/server, kus sul on mingi kasutajakonto või seos sinuga, siis on ka sinu teod internetis sinuga seostatavad. Ära arva, et VPN lubab sul rumalusi teha.
  • VPN ei pruugi sind kaitsta tsensuuri, jälitajate või tagakiusamise eest.

Ent kui sa oled mõistlik inimene, teed mõistlikke tegusid ja sul on vedanud, et elad mõistlikus kohas nagu Eesti/Euroopa, võtab VPN ühe riski maha.

0.2. Kuidas VPNi saab?

VPN on tarkvara, mis töötab tunneli lõpppunktis olevas arvutis.

See lõpppunkt võib olla sinu kodu, kus sul on püsiühendusega arvuti. Kui kodust väljas oled, saad ühenduda VPNiga sinna arvutisse ja oled koduvõrgus. See eeldab, et sul kodus on alati töötav arvuti ja piisavalt kiire üleslaadimisega internetiühendus (kõik, mida internetist “tõmbad”, peab su kodune VPN sinu seadmesse üles laadima).

VPN võib olla ka su töökohas, nagu suuremates ettevõtetes ja riigiasutustes. See annab võimaluse töötajatel turvaliselt töövõrku ligi pääseda.

VPNi võib osta ka kommertsteenusena: maksad iga kuu mingi summa ja sulle pakutakse kuskil serveripargis asuvat arvutit, kuhu ühenduda. Kommerts-VPNidel on üldiselt väga halb maine: neid peetakse andmekogumisteenusteks, mis peale klientide andmete neilt ka raha küsivad.

Olen kasutanud ise mitut kommerts-VPNi peamiselt geograafilistest piirangutest üle saamiseks (nt Hiinas on ilma VPNita raske hakkama saada, kuigi ka sellest ei ole alati kasu). Lõpuks olen ostnud ainult selliste teenusepakkujate käest VPNi, kelle suhtes mul usaldus tekkinud on. Kuidas usaldust mõõta, on juba iseasi.

1. Tasuta Google’i VPN, kas tõesti?

Hiljuti komistasin tähelepanekule, et

  • Iga Gmaili konto omanik saab teatud mahu tasuta Google’i pilvekompuutri ressurssi
  • Seal Google’i virtuaalmasinas saaks tööle panna igati kiidetud VPNi tarkvara Algo

Proovime ära, kui raske see saab olla? Tehniliste kasutajate jaoks on järgnev pigem kirjeldus selle kohta, kuidas ma midagi ei oska. Tavaliste kasutajate jaoks võiks siin olla äkki midagi õppimisväärset.

2. Algo. Mida selleks vaja on?

Algo on avatud lähtekoodiga VPNi tarkvara, mille saab panna omaenda (kontrolli all olevasse) serverisse. Turvaspetsialistide poolt kiidetud Algo kasutab moodsaid protokolle ja peaks olema üsna lihtne üles seada. Pluss peaks olema ka see, et kui oma Algo VPNi ühenduda, siis ei ole üldjuhul vaja eraldi tarkvara või äppi oma arvutisse või telefoni (erandiks Android).

Kus Algo töötab? Algo arendajad soovitavad mõnda järgmistest pilveserveritest:

  • DigitalOcean (kõige kasutajasõbralikum)
  • Amazon Lightsail
  • Amazon EC2
  • Vultr
  • Microsoft Azure
  • Google Compute Engine
  • Scaleway
  • DreamCompute

DigitalOceani valik tundub oma kasutajasõbralikkuse poolest eelistus, selle jaoks on ka selge juhis olemas. Aga DigitalOcean maksab raha.

Google aga pakub ka tasuta konto omanikule ligipääsu oma pilvearvutile. Iga Gmaili/Google’i konto omanik saab tasuta Google Cloud Platformis (GCP) virtuaalmasina, aga jälgida tuleb selle võrguliikluse mahtu. Näiteks on Google’i tasuta konto puhul väljuva võrguliikluse (näiteks minu VPN serverist minu telefoni) tasuta maht 1 GB kuus. Seda ületatades on hinnakiri 0,105 dollarit/GB. Samas annab Google prooviks 300 dollari ulatuses krediiti oma pilvearvuti jaoks, nii et karta pole midagi.

Niisiis, proovime Google’iga. Hakkame pihta.

3. Esmalt on meil vaja Google’i virtuaalmasinat

Selleks tuleb end kirja panna GCP lehel. Registreerimiseks küsitakse krediitkaarti, aga ma eeldan, et sellelt raha maha võtma ei hakata. Õnneks lubatakse, et kui ma isegi oma 300 dollarit krediiti läbi põletan, ei võeta automaatselt midagi maha.

Kui ma nüüd sees olen, mis edasi? Toode, mida ma Google’i pilveplatvormilt tahan, on Compute Engine. Aga ma ei hakka veebiliidesest midagi tegema.

Nimelt on Google’i virtuaalmasinasse Algo tegemise jaoks loodud väike algjuhis. See võib tunduda keeruline, aga tegelikult öeldakse samm-sammult ette kõik, mida pead tegema.

Niisiis alustan sellest, et paigaldan oma arvutisse GCP käsurea liidese. Sellega saan ma oma arvuti käsurealt kasutada gcloud käsku ehk juhtida oma Google’i pilves olevaid teenuseid. gcloud CLI ehk käsurea liidese paigaldamiseks valin oma arvuti jaoks – minul on macOSiga masin – õige versiooni, selle jaoks on siin üsna selged juhised.

Tõmban SDK alla, käivitan install.sh ja seejärel käsurealt gcloud init. Muuhulgas tuleb mul käsurealt oma Google’i kontoga sisse logida, aga see on tehtud nutikalt: sisselogimine toimub brauseris ja sealt hüppan tagasi käsureale.

Jätkan GCP+Algo juhise järgi ja teen omale GCP-sse uue projekti – seda kõike loomulikult käsurealt. Paar korda mu gcloud init seadistamine katkeb, sest panen oma uue projekti nimeks “HANS-algo-vpn” ja muid toredaid asju, mida ei tohi panna. Projektinimi peab olema ilma erimärkideta ja algama väikse tähega, umbes nii nagu domeeninimi.

Lõpuks: Your Google Cloud SDK is configured and ready to use!, mis tähendab, et ma saan oma arvuti käsurealt gcloud käskudega oma Google’i pilveserverit seadistada.

Algo jaoks GCP loomise juhise edasiseks järgimiseks on mul vaja kahte muutujat, BILLING_ID ja PROJECT_ID. See viimane on seesama, mille suurtähtedega jändasin. Et saada oma BILLING_ID, pidin esmalt paigaldama gcloud beta tööriistad (käib üsna automaatselt) ja käivitama veebist Service Management API. Link selle tegemiseks ilmub, kui püüda oma BILLING_ID leida käsuga gcloud beta billing accounts list.

Nüüd, kui mul on olemas projekti nimi ja maksekonto ID, saan juhise järgi edasi minna. Põhimõtteliselt on edasine copy-paste, tuleb ainult õigesse kohta projektinimi ja ID panna.

4. Kuidas see Algo nüüd serverisse saada

Järgmiseks tuleb seal Google’i pilves Algo tööle saada. Jätkan Algo juhises punktidega nr 2, 3 ja 4, mis ei nõua erilist seletust.

Punktis 5 teen config.cfg failis kasutajate nimekirja, mis võiks vastata siis näiteks minu erinevatele seadmetele, kust ma VPNi kasutan.

Viimakse lähen käsureal oma Algo kausta ja löön sisse ./algo. Põhimõtteliselt tuleb mul siin nüüd vastata installeri küsimustele, mis on üsna iseennast seletavad. Korraks tekitab hämmingut see, et pean andma JSON formaadis oma Google’i pilveserveri API kasutajakonto. Siin API kontode lehel on mul juba üks olemas, aga seda nagu alla tõmmata ei saa. Teen siis nupust “Create credentials” uue konto ja see peaks olema “Service account key”, mida saab järgmisel lehel alla laadida JSON failina. Viskan selle Algo kataloogi ja annan installerile faili nime (seal on mu API konto privaatvõti, nii et seda vedelema jätta pole mõistlik).

Edasi tuleb veel vastata mõnele küsimusele, näiteks valida omale GCP regioon. Mina valin europe-north1, mis peaks vastama Hamina andmekeskusele. Peale selle, et see on Eestile lähim, on siin ka rahaline mõõde: ühest tsoonist teise (EU<->Põhja-Ameerika) on internetiliiklus kallim kui tsooni sees ja ma eeldan, et kasutan ennekõike Euroopa servereid.

Algo installib end mõnda aega: isegi siis, kui vahel tundub, et protsess on hangunud, jätkub see mõne aja tagant.

Aga nüüd jookseb mu install kokku, koos veateatega Failed to fetch http://security.ubuntu.com/.... Milles asi? Nii palju, kui veateatest välja loen, ei saa mu virtuaalmasin ühendust Ubuntu serveriga, et sealt tõmmata opsüsteemi installer. Miks? Ei tea, juhistest ja Algo tüüpprobleemide kirjeldustest ei leia lahenduseks ideid.

Parim sellisel juhul on üks päevake probleemiga magada ja hommikul edasi proovida. Järgmisel päeval alustan Algo installi uuesti, aga teen selle käigus ühe asja teisiti. GCP regiooniks valin europe-north1 asemel hoops us-east1. Miks? Kahtlustan, et asi selles, et kasutan GCP-s Always Free paketti, mille kirjelduses on võrguliikluse tingimuseks “Traffic must be sent from a GCP region in North America.”. Ja tõepoolest, seekord tiksub Algo install vigadeta ja suudab virtuaalmasinasse Ubuntu tõmmata küll.

Ja natukese aja pärast lööb ette kiri: Congratulations! Your Algo server is running.

5. Arvuti VPNiga ühendamine

Algo installimise käigus loodi mulle hulk privaatvõtmetega konfifaile. Nendega saan oma seadmed panna VPNiga ühenduma.

Alustan arvutist, mis jookseb macOS peal. Klienditarkvarana kasutab Algo WireGuard’i. Järgides Algo lehel olevat juhendit läheb siin kõik kiiremini kui paari klikiga. Ja nagu olekski valmis? Mida ütleb Whoer.net? ISP: Google Cloud! Tehtud!

Tegelikult igapäevaseks kasutamises WireGuardi vaja ei ole ja peale esmast käivitamist saab selle ka lihtsalt kinni panna, arvuti võrguseadistus ühendub ikka VPNi. Esialgu panen liigsest agarusest seadistuse, et VPN ühendus tekiks on-demand ehk mil iganes mõni programm üritab internetti pääseda.

Sellega tekib mul korraks hämming, sest ma ei saagi VPNist lahti: kui näiteks Settings alt VPN välja lülitada, ühendub Algo jälle võrku. Aga WireGuard tuleb siin appi, WireGuardis saab VPNi profiili seadistada ja see on-demand ära võtta, nii et saan jälle ise oma tahte järgi tunnelit tööle panna.

6. Telefoni VPNiga ühendamine

Telefon jookseb mul Android 9.0-i peal. Siin tuleb samuti WireGuardi äppi kasutada ja paigaldamine on veel kiirem (Algo konfifailide kaustas on telefonide jaoks QR kood, millega saan konfi kiiresti telefoni). Ja ongi kõik? Ja ongi kõik!

Nüüd tuleb mul ainult hakata jälgima oma internetikasutust ja Google’i pilveserveri võrguliikluse limiite, sest kui päris aus olla, siis ma pole lõpuni ikkagi kindel, kui palju mul ühendusmahtu on. Kui ma ka tasuta paketi piirid oma ühendusega ületan, siis tiksub raha esialgu maha 300 dollarist (ca 267 eurot) krediidist, mida Google pakub.