Importoni një profil në një klient desktop dhe dështimi i parë shpesh është një rresht që klienti refuzon ta respektojë: një grep skripti që nuk do ta ekzekutojë, ose një vlerë script-security që e konsideron shumë lejuese. Rritja e numrit e bën dialogun të zhduket. Por zgjeron edhe atë që ky profil lejohet të ekzekutojë në makinën tuaj, gjë që është e çuditshme të jepet vetëm për të mbyllur një paralajmërim. Ndiqni importin deri te direktiva dhe vendimi bëhet konkret.

Nga dialogu i importit te direktiva

Profili është një skedar teksti me direktiva, dhe klienti i lexon ato përpara se të ekzistojë ndonjë tunel. Një direktivë si up, down ose tls-verify emërton një program të jashtëm që OpenVPN duhet ta ekzekutojë në një moment të caktuar. Nëse OpenVPN është i gatshëm ta ekzekutojë është një rregullim i veçantë i quajtur script-security, dhe profili zakonisht e vendos edhe atë.

Prandaj paralajmërimi nuk ka të bëjë me kriptografinë ose certifikatat. Ka të bëjë me një skedar konfigurimi që i kërkon klientit të ekzekutojë diçka në host, dhe me klientin që kontrollon nëse niveli i tij aktual i lejeve e lejon atë kërkesë.

Në këtë fazë dy dështime të ndryshme duken njësoj. Një profil që kërkon një nivel që klienti nuk do ta japë prodhon një refuzim. Një profil që kërkon një nivel që klienti e jep por skripti mungon prodhon në vend të tij një dështim gjatë ekzekutimit, dhe të dyja ngatërrohen në temat e mbështetjes. Njëra është çështje lejeve dhe tjetra çështje paketimi.

Çfarë hap vërtet secili nivel

Niveli 0 ndalon plotësisht thirrjet e programeve të jashtme, gjë që është koherente për një klient që konfiguron vetë ndërfaqen e tij pa ndihmë dhe jokoherente për një që i drejtohet sistemit operativ. Niveli 1, ai i parazgjedhur, lejon skedarët ekzekutues të integruar që nevojiten për konfigurimin e ndërfaqes dhe rrugëve. Asnjëri nivel nuk ekzekuton diçka që e ka siguruar përdoruesi.

LevelWhat OpenVPN may executeWhat it exposes
0No external programs at allInterface and route setup must not depend on helpers
1 (default)Built-in helpers such as ip, ifconfig, route or netshPrivileged commands the platform already ships
2Built-in helpers plus user-defined scriptsWhatever the named script does with the client's privileges
3Everything above, plus passwords in environment variablesCredentials visible to child processes and their logs

Niveli 2 është kufiri interesant, sepse pranon skripte të përcaktuara nga përdoruesi. Nga ai pikë privilegjet e klientit zbatohen për kod që ndoshta nuk e keni lexuar kurrë, i thirrur në momente që nuk i keni zgjedhur, në një mjedis që përmban detaje të lidhjes. Niveli 3 shkon më tej dhe lejon kalimin e fjalëkalimeve përmes variablave të mjedisit, prandaj manuali e përshkruan si potencialisht të pasigurt.

Asnjëri nga këta numra nuk është rregullim force. Një profil në nivelin 3 nuk ka kriptim më të mirë se një në nivelin 1; thjesht ka një sipërfaqe ekzekutimi më të madhe, dhe tuneli është identik.

Vendosni çfarë meriton profili

Pyetni për çfarë është skripti përpara se të pyesni çfarë niveli i duhet. Një grep që shtyn rregullimet e DNS ose riparon një rrugë pas lidhjes është arsye legjitime për të ekzekutuar diçka. Një grep që thirr një binar të panjohur në një direktori të përkohshme është arsye për të ndaluar.

Rruga e skriptit ka po aq rëndësi sa skripti. Një rrugë relative zgjidhet ndaj direktorisë që përdor klienti, dhe një direktori e shkruajtshme e kthen një import të vetëm në një vend ekzekutimi të përhershëm. Rrugët absolute në një direktori që përdoruesi nuk mund ta ndryshojë janë forma që duhet preferuar.

Skriptet trashëgojnë edhe mjedisin e klientit, ku jetojnë kredencialet dhe metadata e lidhjes. Pikërisht ky trashëgim e bën nivelin 3 të rrezikshëm në kombinim me një skript që regjistron mjedisin e tij, dhe kjo është arsyeja pse një nxjerrje diagnostike nga një klient me skripte aktive meriton një shikim të dytë përpara se të ngjitet në një biletë. Hiqni mjedisin përpara se ta ndani.

grep -nE 'script-security|^up |^down |tls-verify' client.ovpn

Ndryshoni një gjë, pastaj vëzhgoni edhe çmontimin

Nëse profili ka vërtet nevojë për një skript, ndryshoni vetëm nivelin dhe vetëm për atë profil. Ekzekutoni klientin në plan të parë me dalje të hollësishme, që gabimet e vetë skriptit të jenë të dukshme dhe jo të gëlltitura nga një menaxher shërbimesh.

openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default

Testoni të gjithë ciklin e jetës, jo vetëm lidhjen. Një grep i shkëputjes që dështon lë rrugë që tregojnë drejt një tuneli të vdekur, gjë që prodhon një makinë që duket e lidhur dhe nuk arrin askund. Rilidhuni një herë dhe shkëputuni një herë përpara se ta shpallni ndryshimin të përfunduar, dhe kontrolloni tabelën e rrugëtimit pas secilit.

Ruani një kopje të profilit origjinal. Nëse një klient platforme nuk zbaton të njëjtin model skriptesh, fshirja e direktivave derisa importi të ketë sukses mund të heqë integrimin e DNS ose të rrugëve që i duhej tunelit, dhe lidhja që rezulton do të vërtetojë në mënyrë të përsosur pa zgjidhur asgjë.

Vendimi që duhet regjistruar është i ngushtë: cili skript, në cilën rrugë, i dhënë në cilin nivel, për cilin profil. Çdo gjë tjetër në profil mbetet e pandryshuar, dhe kjo është një fjali që një rishikues mund ta verifikojë.

Artikuj të ngjashëm