Uzdevums ir skaidrs: kad klēpjdators pieslēdzas, kaut kam tajā būtu jāmainās. Konfigurācija, ko rediģē, pieder serverim, un tieši tur pieņēmums sabrūk. Ceļš servera failā norāda failu šajā serverī, un neviens push daudzums nemaina to, kura process to izpilda. Izvēle starp diviem āķiem galvenokārt ir lēmums par to, kura mašīna pieder darbu, un no tā izrietošo ierobežojumu pieņemšana.

Divas mašīnas, divi jautājumi, uz kuriem vispirms jāatbild

Pajautājiet, kur jānotiek stāvokļa maiņai, pēc tam pajautājiet, kurš notikums tam atbilst. Ja izmaiņa ir atļauja katram lietotājam vai konfigurācijas lēmums katram klientam, tā pieder tur, kur lietotāju direktorijs ir zināms: serverim. Ja izmaiņa ir maršruts, resolver iestatījums vai lokāls palīgs galapunktā, tā pieder galapunktam, un tikai galapunkts to var izdarīt.

Atbildēt uz šiem diviem jautājumiem apgrieztā secībā ir tas, kā cilvēki nonāk pie mēģinājuma iespiest batch failu Windows klēpjdatorā. Serveris zina, kas pieslēdzās; klēpjdators zina, kā izskatās tā paša tīkla steks. Nevienam nav otra informācijas, un mēģinājums parasti neizdodas klusi, nevis ar skaidru kļūdu.

Pirms abiem ir vērts uzdot trešo jautājumu: vai platforma vispār piedāvā vēlamo āķi? Ierīce, kas pati ģenerē savu konfigurāciju, var nepiedāvāt tos pašus notikumu nosaukumus, un darbvirsmas klients, kas importē .ovpn failu, ne vienmēr ir tas pats klients, kuram fails tika rakstīts. Platformas apstiprināšana vispirms pasargā no projektēšanas ap āķi, kas tur neeksistē. Tas arī pasaka, kura dokumentācija patiešām attiecas uz mašīnu jūsu priekšā.

Servera puses opcija: notikums katram savienojumam

client-connect skripts darbojas servera procesa kontekstā, kad pieslēdzas autentificēts klients, un saņem dokumentētas savienojuma detaļas, piemēram, common name un piešķirto adresi. Tā ir pareizā vieta, kur rakstīt katra klienta konfigurācijas fragmentu, ieviest politikas lēmumu vai ierakstīt stāvokli, kas pieder serverim.

Atšķirība, ko cilvēki palaiž garām, ir starpība starp šo āķi un servera up āķi. up āķis iedarbojas, kad serveris atver savu tuneļa ierīci, kas serverī ar vairākiem klientiem notiek vienreiz pie dēmona palaišanas. Tas nav notikums katram pieslēgumam, un tur ievietotais kods darbojas servisa palaišanas laikā, nevis tad, kad lietotāji pieslēdzas.

Ierīcē ar tīmekļa saskarni izmantojiet atbalstīto paplašinājuma mehānismu, nevis rediģējiet ģenerētos dēmona failus. Ģenerētie faili tiek pārrakstīti nākamajā saglabāšanā, un pārrakstīšana klusi noņem jūsu izmaiņas vissliktākajā brīdī. Glabājiet paplašinājuma teksta kopiju ārpus ierīces, lai programmaparatūras atjauninājums nezaudētu arī nodomu.

Klienta puses opcija: darbs, kas jāveic lokāli

Kopienas klients var palaist lokālu skriptu, kad tuneļa ierīce paceļas, un vēlreiz, kad tiek instalēti maršruti. Tie ir divi dažādi brīži, un nepareizā izvēle rada klasiskās sacīkstes, kurās palīgs startē pirms tam, kad pastāv maršruts, no kura tas ir atkarīgs.

Palīgam jābūt šajā klientā, jābūt lasāmam un izpildāmam kontam, kas palaiž klientu, un jābūt atļautam ar skaidru script-security iestatījumu. Skripts, kas darbojas, kad palaižat klientu kā administrators, neko nepasaka par servisu pirms pieteikšanās vai cita lietotāja sesiju.

Arī nosaukumi ir svarīgi. up āķis atbilst ierīces izveidei, bet route-up maršrutu instalēšanai, tomēr uzdevumam, kuram nepieciešams sasniedzams privātais tīkls, jāpārbauda sasniedzamība, nevis jāpieņem, ka ierīces izveide nozīmē, ka katrs maršruts, resolver ieraksts un lietojumprogramma ir gatava.

Kāpēc izpildāma koda push nav opcijās

Push sūtītās opcijas ir apzināti ierobežotas, un opcijas, kas izpilda skriptus, ir starp kategorijām, ko serverim nav atļauts nodot. Šis ierobežojums pastāv tāpēc, ka alternatīva ļautu kompromitētam vai nepareizi konfigurētam serverim izpildīt patvaļīgas komandas katrā klientā, kas jebkad pieslēdzas.

Skriptu izpildes iespējošana lokāli to nemaina. Jūsu script-security iestatījums atļauj lokālos skriptus, kurus izvēlējāties; tas nepiešķir serverim tiesības piegādāt jaunus.

Ja mērķis ir vienkārši instalēt VPN maršrutus, izmantojiet atbalstīto maršrutu konfigurāciju, nevis izdomājiet attālinātas izpildes shēmu. Ja mērķim patiešām nepieciešams lokāls kods, izplatiet to ar organizācijas galapunktu pārvaldības rīkiem un pārskatiet to kā jebkuru citu programmatūru, kas darbojas ar lietotāja privilēģijām.

Kas jāpārbauda, pirms uzticaties kādam no āķiem

Pierakstiet četras lietas katram āķim: mašīnu, notikuma nosaukumu, kontu, ar kuru tas darbojas, un stāvokļa maiņu, kas tam jārada. Pēc tam pārbaudiet savienojumu, atkārtotu savienojumu un tīrīšanas ceļu, jo āķis, kas atkārtota savienojuma laikā noplūdina stāvokli, ir sliktāks par to, kas nekad nav darbojies.

Pārbaudiet ar kontu, kas to patiešām izpildīs, brīdī, kad tas patiešām tiks izpildīts. Openvpn(8) rokasgrāmata dokumentē abas āķu saimes un push ierobežojumus; platforma, kurā izvietojat, dokumentē, vai tā tos vispār piedāvā. Skripts, kas izdodas interaktīvā administratora terminālī, ir hipotēze, nevis pārbaude.

Saistītie raksti