Vaša .ovpn datoteka može izvršavati kod, ne samo usmjeravati promet
Profil koji imenuje up ili down pomoćnik izvršava kod s vašim ovlastima. Provjerite putanju, vlasništvo, čišćenje i postavku script-security.
Većina ljudi čita .ovpn datoteku kao što čita stranicu postavki usmjerivača: adrese, rute, popis šifri. Dio koji izvršava kod nalazi se pri dnu, uz direktive koje izgledaju kao vodoinstalaterski posao, i radi s kojim god ovlastima 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 tjedna kasnije pretvara u problem za podršku. Direktiva događaja, razina sigurnosti i vlasništvo datoteke odlučuju što se može dogoditi; sadržaj skripte odlučuje što se doista događa. Pročitajte sva četiri prije povezivanja.
Profil koji pokreće pomoćnik je program, a ne datoteka postavki
Direktive poput route i dhcp-option opisuju stanje koje klijent treba uspostaviti, a klijent ih tretira kao podatke. up skripta je drukč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čunalu gdje je korisnik administrator, to su široka vrata za datoteku koja je stigla kao privitak 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 promet. 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.
Što zapravo odlučuje izvršavanje i kako izgledaju retci koji ga omogućuju
Tri stvari upravljaju pomoćnikom: direktiva događaja koja ga imenuje, razina script-security koja 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 podrijetlu. Razina dopuštenja je sposobnost, a ne odobrenje. Retci koji ga 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.shRazina 0 odbija vanjske programe, a razina 1, zadana, dopušta samo ugrađene izvršne datoteke klijenta, pa kuka treba 2 ili više; razina 3 postoji uglavnom za prijenos starih zaporki i najbolje ju je izbjegavati. Profil isporučen s kukom treba i direktivu i tu razinu, zato jedan redak pri dnu datoteke zaslužuje istu pažnju kao blok certifikata. OpenVPN priručnik navodi razine 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čer 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 vjerodajnice u tiket podrške. Preferirajte dokumentiranu integraciju operatera ili platforme umjesto DNS skripte kopirane s nepovezane objave, jer dva upravitelja razlučivača 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 razlučivača, 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. Promet tada ide putem koji nitko nije planirao, a imena se razrješavaju preko razlučivača 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 razlučivač, 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 razlučivač 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 ovlasti, tvrdo kodirane putanje koje možda ne postoje na vašem sustavu 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 misterij. Ako ne možete jednom rečenicom reći što skripta radi i tko ju može promijeniti, niste spremni da ju omogućite. Profil koji traži više ovlasti 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 spremiš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 ovlasti dok greške ne prestanu. To je izlaz: manje pokretnih dijelova, ne više dopuštenja.