Većina ljudi čita .ovpn datoteku kao što čita stranicu s postavkama rutera: adrese, rute, lista šifri. Dio koji izvršava kod stoji blizu dna, uz direktive koje izgledaju kao vodoinstalaterski posao, i radi s kojim god privilegijama klijent već raspolaže. To je praznina koju iskorištava nemaran ili zlonamjeran profil, a to je i praznina koja korisnu DNS pomoćnu skriptu tri sedmice kasnije pretvara u problem za podršku. Direktiva događaja, nivo sigurnosti i vlasništvo datoteke odlučuju šta se može dogoditi; sadržaj skripte odlučuje šta se zaista događa. Pročitajte sva četiri prije povezivanja.

Profil koji pokreće pomoćnik je program, a ne datoteka s postavkama

Direktive poput route i dhcp-option opisuju stanje koje klijent treba uspostaviti, a klijent ih tretira kao podatke. up skripta je drugačija: klijent je pokreće kao proces i predaje joj okruženje puno pojedinosti o vezi, pa sve što je autor napisao radi s pravima vašeg računa. Na prijenosnom računaru gdje je korisnik administrator, to su široka vrata za datoteku koja je stigla kao prilog ili kao zalijepljeni tekst s foruma. Razlika nije stilska, to je razlika između konfiguracije i koda.

Mit koji valja napustiti jest da profil može samo preusmjeravati saobraćaj. Pomoćnik koji izvršava ip route add i onaj koji izvršava curl prema udaljenom hostu isti su mehanizam, a profil izvana izgleda jednako. Ništa u izgledu datoteke ne kaže koji imate, zato pregled mora doći do same skripte.

Šta zapravo odlučuje izvršavanje i kako izgledaju linije koje ga omogućuju

Tri stvari upravljaju pomoćnikom: direktiva događaja koja ga imenuje, nivo script-security koji ga dopušta i vlastita implementacija klijentske platforme. Profil može zatražiti kuku i ipak ne vidjeti ništa da se događa, jer mobilni klijent ili svedena desktop gradnja možda uopće ne implementira taj događaj. Jednako tako, profil koji traži više dopuštenja nego što njegova funkcija zahtijeva govori vam nešto o svom porijeklu. Nivo dopuštenja je sposobnost, a ne odobrenje. Linije koje omogućuju izgledaju ovako, s putanjom koja zamjenjuje vašu.

script-security 2
up /etc/openvpn/update-resolv-conf.sh
down /etc/openvpn/update-resolv-conf.sh

Nivo 0 odbija vanjske programe, a nivo 1, zadani, dopušta samo ugrađene izvršne datoteke klijenta, pa kuka treba 2 ili više; nivo 3 postoji uglavnom za prenošenje starih lozinki i najbolje ga je izbjegavati. Profil isporučen s kukom treba i direktivu i taj nivo, zato jedna linija pri dnu datoteke zaslužuje istu pažnju kao blok certifikata. OpenVPN priručnik navodi nivoe dopuštenja, a njegov tekst vrijedi pročitati uz ono što profil zapravo traži.

Vlasništvo, putanja i čime se pomoćnik hrani

Profil kojem vjerujete, a koji pokazuje na skriptu koju drugi račun može prepisati, nije pouzdan dogovor, jer pregled od juče više ne opisuje ono što danas radi. Provjerite vlasnika i način rada pomoćnika i provjerite da konfigurirana putanja vodi do datoteke koju ste pregledali, a ne do imena koje nešto drugo može zasjeniti. Argumenti i okruženje zaslužuju isti pogled: klijent predaje pojedinosti o vezi kuki, a pomoćnik koji bilježi cijelo svoje okruženje može upisivati akreditive u tiket podrške. Preferirajte dokumentiranu integraciju operatera ili platforme umjesto DNS skripte kopirane s nepovezane objave, jer dva upravitelja rezolvera koji se svađaju oko iste datoteke stvaraju kvar koji izgleda kao pokvaren VPN.

Kada prijavljujete kuku koja ne radi, redigirajte okruženje prije nego što ga zalijepite bilo gdje. Ispis koji vam pomaže u otklanjanju grešaka može nositi i token koji vas autentificira.

Kvarovi čišćenja pojavljuju se nakon što tunel nestane

up pomoćnik dodaje rute i postavke rezolvera, a down pomoćnik bi ih trebao opet ukloniti. Kada down kuka nedostaje, tiho zakaže ili se nikada ne pokrene jer je klijent ubijen, ostaci nadžive sesiju. Saobraćaj tada ide putem koji niko nije planirao, a imena se razrješavaju preko rezolvera koji je trebao biti uklonjen, dok sam tunel izgleda zdrav. Ti simptomi dolaze nakon prekida veze, zato se krivi mreža, a ne profil.

Testirajte demontažu kao zaseban korak: podignite tunel, zabilježite rute i rezolver, spustite ga, pa potvrdite da su oboje nestali. Profil koji se čisto povezuje ipak može ostaviti stanje za sobom, a nulti izlazni kod pomoćnika ne dokazuje da je rezolver završio tamo gdje mislite.

Pregled pomoćnika i čuvanje izlaza

Pročitajte skriptu od početka do kraja tražeći tri stvari: naredbe koje traže privilegije, tvrdo kodirane putanje koje možda ne postoje na vašem sistemu i svaki mrežni poziv koji pravi. Zatim pogledajte kako zakaže, jer pomoćnik koji guta greške pretvara grešku u konfiguraciji u misteriju. Ako ne možete jednom rečenicom reći šta skripta radi i ko je može promijeniti, niste spremni da je omogućite. Profil koji traži više privilegija nego što ta rečenica zahtijeva znak je da stanete.

Čuvajte posljednji ispravni profil i pomoćnik na koji se pozivao u zaštićenom skladištu, s zabilježene obje verzije, da povratak bude kopija, a ne ponovna gradnja u najgorem mogućem trenutku. Ako pomoćnik postoji samo za distribuciju ili verziju klijenta kojoj više nije potreban, umirovite ga u konfiguraciji koja posjeduje postavku, umjesto da podižete privilegije dok greške ne prestanu. To je izlaz: manje pokretnih dijelova, ne više dopuštenja.

Povezani članci