Zadatak je jasan: kada se prijenosno računalo poveže, nešto na njemu treba se promijeniti. Konfiguracija koja se uređuje pripada poslužitelju i upravo tu pretpostavka pada. Putanja u datoteci poslužitelja imenuje datoteku na tom poslužitelju i nikakva količina pusha ne mijenja čiji je proces izvodi. Odabir između dviju kuka uglavnom je pitanje odluke koje računalo posjeduje posao i prihvaćanja ograničenja koja iz toga slijede.

Dva računala, dva pitanja na koja treba prvo odgovoriti

Pitajte gdje se promjena stanja mora dogoditi, pa pitajte koji joj događaj odgovara. Ako je promjena autorizacija za pojedinog korisnika ili odluka o konfiguraciji za pojedinog klijenta, pripada onamo gdje je poznat korisnički direktorij: na poslužitelj. Ako je promjena ruta, postavka resolvera ili lokalni pomoćnik na krajnjoj točki, pripada krajnjoj točki i samo je krajnja točka može izvesti.

Odgovaranje na ta dva pitanja obrnutim redoslijedom način je na koji ljudi završe pokušavajući progurati batch datoteku na Windows prijenosno računalo. Poslužitelj zna tko se povezao; prijenosno računalo zna kako izgleda njegov vlastiti mrežni stog. Nijedno nema podatke onoga drugoga, a pokušaj obično tiho propadne umjesto uz jasnu grešku.

Prije obaju vrijedi postaviti treće pitanje: nudi li platforma uopće kuku koju želite? Uređaj koji sam generira svoju konfiguraciju možda ne nudi iste nazive događaja, a desktop klijent koji uvozi .ovpn datoteku nije nužno isti klijent za koji je datoteka napisana. Provjera platforme unaprijed spašava vas od osmišljavanja oko kuke koja tamo ne postoji. Također vam govori koja se dokumentacija doista odnosi na računalo pred vama.

Serverska opcija: događaj po vezi

client-connect skripta izvodi se u kontekstu procesa poslužitelja kada se autentificirani klijent poveže i prima dokumentirane pojedinosti veze kao što su common name i dodijeljena adresa. To je pravo mjesto za pisanje konfiguracijskog fragmenta za pojedinog klijenta, provedbu odluke politike ili bilježenje stanja koje poslužitelj posjeduje.

Razlika koju ljudi propuštaju razlika je između te kuke i serverske up kuke. up kuka aktivira se kada poslužitelj otvori svoj tunelski uređaj, što se na poslužitelju s više klijenata dogodi jednom pri pokretanju daemona. To nije događaj po prijavi i kod se ondje izvodi pri pokretanju servisa, a ne kada se korisnici povezuju.

Na uređaju sa web sučeljem rabite podržani mehanizam proširenja umjesto uređivanja generiranih datoteka daemona. Generirane datoteke prepisuju se pri sljedećem spremanju, a prepisivanje tiho uklanja vašu promjenu u najgorem mogućem trenutku. Držite kopiju teksta proširenja izvan uređaja kako ažuriranje firmwarea ne bi izgubilo i namjeru.

Klijentska opcija: posao koji mora raditi lokalno

Klijent iz zajednice može pokrenuti lokalnu skriptu kada se tunelski uređaj podigne i ponovno kada se instaliraju rute. To su dva različita trenutka, a odabir pogrešnoga stvara klasičnu utrku u kojoj se pomoćnik pokreće prije nego što ruta o kojoj ovisi postoji.

Pomoćnik mora postojati na tom klijentu, biti čitljiv i izvršiv za račun koji pokreće klijent i biti dopušten eksplicitnom postavkom script-security. Skripta koja radi kada klijent pokrenete kao administrator ne govori ništa o servisu prije prijave ili sjednici drugog korisnika.

Imenovanje je također važno. up kuka odgovara stvaranju uređaja, a route-up instalaciji ruta, ali zadatak koji zahtijeva dostupnost privatne mreže treba provjeriti dostupnost umjesto pretpostavke da stvaranje uređaja znači da su svaka ruta, unos resolvera i aplikacija spremni.

Zašto guranje izvršnog koda nije na jelovniku

Opcije koje se guraju pushom namjerno su ograničene, a opcije koje izvršavaju skripte spadaju u kategorije koje poslužitelj ne smije prenositi. To ograničenje postoji jer bi alternativa omogućila kompromitiranom ili pogrešno konfiguriranom poslužitelju izvršavanje proizvoljnih naredbi na svakom klijentu koji se ikada poveže.

Omogućavanje izvršavanja skripti lokalno to ne mijenja. Vaša postavka script-security dopušta lokalne skripte koje ste sami odabrali; ona ne ovlašćuje poslužitelj da isporuči nove.

Ako je cilj samo instalirati VPN rute, rabite podržanu konfiguraciju ruta umjesto izmišljanja sheme daljinskog izvršavanja. Ako cilj doista zahtijeva lokalni kod, distribuirajte ga kroz alate organizacije za upravljanje krajnjim točkama i pregledajte ga kao svaki drugi softver koji radi s korisničkim ovlastima.

Što provjeriti prije nego povjerujete bilo kojoj kuki

Zapišite četiri stvari za svaku kuku: računalo, naziv događaja, račun pod kojim se izvodi i promjenu stanja koju treba proizvesti. Zatim testirajte vezu, ponovnu vezu i putanju čišćenja, jer kuka koja procuri stanje pri ponovnoj vezi gora je od one koja nikada nije radila.

Testirajte pod računom koji će je doista izvršavati, u trenutku kada će se doista izvršiti. Priručnik openvpn(8) dokumentira obje porodice kuka i push ograničenja; platforma na koju postavljate dokumentira izlaže li ih uopće. Skripta koja uspije u interaktivnom administratorskom terminalu hipoteza je, a ne provjera.

Povezani članci