Zadatak je jasan: kada se laptop poveže, nešto na laptopu treba da se promijeni. Konfiguracija koja se uređuje pripada serveru i upravo tu pretpostavka pada. Putanja u serverskoj datoteci imenuje datoteku na tom serveru i nikakva količina push-a ne mijenja čiji je proces izvršava. Izbor između dvije kuke uglavnom je pitanje odluke koja mašina posjeduje posao i prihvatanja ograničenja koja iz toga slijede.

Dvije mašine, dva pitanja na koja treba prvo odgovoriti

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

Odgovaranje na ta dva pitanja obrnutim redom je način na koji ljudi završe pokušavajući progurati batch datoteku na Windows laptop. Server zna ko se povezao; laptop zna kako izgleda njegov vlastiti mrežni stek. Nijedan nema podatke onog drugog, a pokušaj obično tiho propadne umjesto uz jasnu grešku.

Prije oba vrijedi postaviti treće pitanje: nudi li platforma uopšte kuku koju želite? Uređaj koji sam generiše 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 projektovanja oko kuke koja tamo ne postoji. Takođe vam kaže koja se dokumentacija zaista odnosi na mašinu pred vama.

Serverska opcija: događaj po vezi

client-connect skripta se izvodi u kontekstu serverskog procesa kada se autentificirani klijent poveže i prima dokumentovane pojedinosti veze kao što su common name i dodijeljena adresa. To je pravo mjesto za pisanje konfiguracijskog fragmenta za pojedinačnog klijenta, sprovođenje odluke politike ili bilježenje stanja koje server posjeduje.

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

Na uređaju s web sučeljem koristite podržani mehanizam ekstenzija umjesto uređivanja generisanih daemon datoteka. Generisane datoteke se prepisuju pri sljedećem čuvanju, a prepisivanje tiho uklanja vašu promjenu u najgorem mogućem trenutku. Držite kopiju teksta ekstenzije 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 tunel uređaj podigne i ponovo kada se instaliraju rute. To su dva različita trenutka, a odabir pogrešnog stvara klasičnu trku 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 dozvoljen 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đe važno. up kuka odgovara stvaranju uređaja, a route-up instalaciji ruta, ali zadatak koji zahtijeva da privatna mreža bude dostupna 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 meniju

Opcije koje se guraju push-om namjerno su ograničene, a opcije koje izvršavaju skripte spadaju u kategorije koje server ne smije prenositi. To ograničenje postoji jer bi alternativa omogućila kompromitovanom ili pogrešno konfigurisanom serveru da izvrši proizvoljne naredbe na svakom klijentu koji se ikada poveže.

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

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

Šta provjeriti prije nego povjerujete bilo kojoj kuki

Zapišite četiri stvari za svaku kuku: mašinu, 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 zaista izvršavati, u trenutku kada će se zaista izvršiti. Priručnik openvpn(8) dokumentuje obje porodice kuka i push ograničenja; platforma na koju postavljate dokumentuje da li ih uopšte izlaže. Skripta koja uspije u interaktivnom administratorskom terminalu je hipoteza, a ne provjera.

Povezani članci