Ymportearje in profyl yn in desktopklant en de earste flater is faak in regel dy't de klant wegert te neien: in skrifthook dy't er net draaie sil, of in script-security-wearde dy't er te tastean fynt. It getal ferheegje lit de dialooch ferdwine. It ferbreedt ek wat dat profyl op jo masine útfiere mei, wat in nuver ding is om te jaan allinnich om in warskôging fuort te krijen. Folgje de ymport oant de rjochtline en de beslissing wurdt konkreet.

Fan 'e ymportdialooch nei de rjochtline

It profyl is in tekstbestân mei rjochtladen, en de klant lêst se foardat der in tunnel is. In rjochtline lykas up, down of tls-verify neamt in ekstern programma dat OpenVPN op in beskaat momint draaie moat. Oft OpenVPN ree is om it te draaien is in aparte ynstelling mei de namme script-security, en it profyl set dy meastentiids ek.

De warskôging giet dus net oer kryptografy of sertifikaten. It giet oer in konfiguraasjebestân dat de klant freget om eat op 'e host út te fieren, en oer de klant dy't neigiet oft syn hjoeddeistige tastimmingsnivo dat fersyk tastean mei.

Twa ferskillende flaters lykje yn dit stadium itselde. In profyl dat in nivo freget dat de klant net jaan sil, produsearret in wegering. In profyl dat in nivo freget dat de klant jaan sil, mar it skript ûntbrekt, produsearret ynstee in flater by it draaien, en de beide wurde yn stipe-rieden trochinoar helle. De iene is in tastimmingsfraach en de oare in ferpakkingsfraach.

Wat elk nivo eins iepenet

Nivo 0 ferbiedt eksterne programmopropen hielendal, wat gearhingjend is foar in klant dy't syn eigen ynterface sûnder help konfigurearret en net gearhingjend foar ien dy't it bestjoeringssysteem oanropt. Nivo 1, de standert, lit de ynboude útfierbere bestannen ta dy't konfiguraasje fan ynterface en rûte nedich hat. Gjin fan beide nivo's draait eat dat de brûker levere hat.

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

Nivo 2 is de nijsgjirrige grins, want it lit brûkersdefinearre skripts ta. Fan dat punt ôf jilde de privileezjes fan 'e klant foar koade dy't jo miskien nea lêzen hawwe, oanroppen op mominten dy't jo net keazen hawwe, mei in omjouwing dy't ferbiningsdetails befettet. Nivo 3 giet fierder en lit wachtwurden troch omjouwingsfariabelen trochjaan, wêrom't de hânlieding it as mooglik ûnfeilich beskriuwt.

Gjin fan dizze getallen is in krêftynstelling. In profyl op nivo 3 hat gjin bettere fersifering as ien op nivo 1; it hat gewoan in grutter útfieringsoerflak, en de tunnel is identyk.

Beslis wat it profyl fertsjinnet

Freegje wêr't it skript foar is foardat jo freegje hokker nivo it nedich hat. In hook dy't DNS-ynstellingen trochset of nei ferbinen in rûte reparearret is in legitime reden om eat te draaien. In hook dy't in ûnbekend binêr bestân yn in tydlike map oanropt, is in reden om te stopjen.

It paad fan it skript makket likefolle út as it skript. In relatyf paad wurdt oplost tsjin 'e map dy't de klant brûkt, en in map dêr't yn skreaun wurde kin makket fan in ienmalige ymport in bliuwende útfieringsplak. Absolute paden yn in map dy't de brûker net feroarje kin, binne de foarm dy't foarkar hat.

Skripts ervje ek de omjouwing fan 'e klant, dêr't bewiisstikken en ferbiningsmetadata wenje. Krekt dy erfenis makket nivo 3 gefaarlik yn kombinaasje mei in skript dat syn omjouwing logt, en dat is de reden wêrom't in diagnostyske dump fan in klant mei skripts in twadde each fertsjinnet foardat it yn in ticket plakt wurdt. Strip de omjouwing foardat jo it diele.

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

Feroarje ien ding, en let dan ek op it ôfbrekken

As it profyl wier in skript nedich hat, feroarje dan allinnich it nivo en allinnich foar dat profyl. Draai de klant op 'e foargrûn mei wiidweidige útfier, sadat de eigen flaters fan it skript sichtber binne ynstee fan troch in tsjinstbehearder trochslokt te wurden.

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

Test de hiele libbenssyklus, net allinnich it ferbinen. In hook foar ôfbrekken dy't mislearret lit rûtes nei in deade tunnel wize, wat in masine jout dy't ferbûn liket en nearne komme kin. Ferbyn ien kear opnij en ferbrek ien kear foardat jo de feroaring klear neame, en kontrolearje nei elk de rûtetabel.

Hâld in kopy fan it orizjinele profyl. As in platformklant net itselde skriptmodel ymplementearret, kin it wiskjen fan rjochtladen oant de ymport slagget de DNS- of rûte-yntegraasje fuorthelje dy't de tunnel nedich hie, en de resultearjende ferbining sil perfekt autentisearje wylst it neat oplost.

De beslissing om fêst te lizzen is smel: hokker skript, op hokker paad, op hokker nivo tastien, foar hokker profyl. Al it oare yn it profyl bliuwt ûnferoare, en dat is in sin dy't in beoardieler neigiene kin.

Relatearre artikelen