Via skripto startigas la VPN; ĝi ne provizas ĝin
Starta komando bezonas konekton jam ekzistantan kaj aprobitan. Apartigu provizadon disde sesia regado, alie la skripto funkcias nur en via Mac.
Vi skribas skripton, kiu rulas scutil --nc start kun la nomo de la konekto, ĝi funkcias sur via Mac, kaj ĝi malsukcesas sur ĉiu ĵus instalita maŝino en la oficejo. La skripto ne estas difektita. Oni petas de ĝi ion, kion ĝi neniam povis fari: startigi ekzistantan konekton ne estas la sama operacio kiel krei novan.
Provizado kaj sesia regado estas du taskoj kun du posedantoj, kaj laborfluo, kiu supozas la malon, trapasos ĉiun teston sur la maŝino, kie ĝi estis skribita.
Kun kio la starta komando efektive parolas
Sesia rega komando alparolas agordon, kiu jam ekzistas kaj jam estas aprobita. Ĝi petas la sistemon levi tiun nomitan konekton, uzante la servilajn agordojn, identecajn referencojn kaj la politikon konservitajn antaŭe. Se tiuj neniam estis instalitaj, estas nenio por startigi.
Tial la malsukceso aperas sur nova aparataro kaj ne sur la tekkomputilo de la administranto. La tekkomputilo estis provizita antaŭ monatoj de persono, kiu de tiam forgesis pri tio. Pripensu la startan komandon kiel pordosonorilon, kiun iu kabligis en la pasinta kvaronjaro. Premi ĝin ne samas kiel instali la kabladon.
Tri posedantoj de VPN-agordo
Profilo administrata de la organizo venas el aparata administrado. La profilo portas la servilajn adresojn, la aŭtentigan aranĝon kaj la politikon, kiun la organizo postulas, kaj la VPN-administranto estas la persono, kiu liveras ilin. Skripto ne devus rekonstrui tiujn agordojn el montrata nomo, kiun ĝi trovis en listo.
Denaska persona VPN-agordo estas kreata per la Network Extension API de Apple, kiu kovras la enkonstruitajn protokolojn IPsec kaj IKEv2. Tio estas aplika interfaco kun konserva paŝo kaj uzanta aprobo, ne ŝela komando, kiu silente kreas iun ajn tunelotipon, kiun vendisto liveras.
Tria-partia kliento estas tria kazo kun sia propra importa formato, sia propra administrila ilo kaj ofte sia propra privilegia helpanto. Ĝian sesion posedas la procezo de tiu vendisto. Trovi sisteman servon kun simila nomo ne estas pruvo, ke sistema komando regas la tunelon, kaj supozi tion produktas skriptojn, kiuj ŝajnas funkcii ĝis la vendisto ĝisdatigas la klienton.
Denaska provizado havas konservon kaj aprobon
La modelo de Apple estas ŝargi, ŝanĝi, konservi. Aplikaĵo ŝargas la ekzistantajn preferojn antaŭ sia unua konservo post lanĉo, ŝanĝas la agordon kaj poste konservas ĝin. La konservo raportas eraron, kiam ĝi ne povas persisti, kaj ignori tiun rezulton igas provizan malsukceson konekta malsukceso tri paŝojn poste.
La unua konservo ankaŭ postulas, ke la uzanto aprobu la aplikaĵon. Tio estas intenca sekureca limo, kaj ĝi signifas, ke la unua rulo sur nova Mac estas interaga eĉ kiam ĉiu posta konekto kaj malkonekto povas esti aŭtomatigita. Planu la unuan rulon kiel homan taskon kun ĉeestanta homo. Aŭtomatigu la duan rulon kaj plu, kaj diru tion en la runlibro, por ke neniu promesu la neeblon. Efektiviga plano, kiu promesas tute senhoman unuan rulon, promesas ion, kion la platformo ne ofertas.
Apple ankaŭ rekomendas validigi servilan kongruecon per agorda profilo antaŭ ol fidi la API-on. Fari tiun kontrolon unue apartigas «la servilo ne akceptos ĉi tiun klienton» de «la kliento neniam konservis la agordojn», kiuj estas malsamaj biletoj por malsamaj teamoj.
Kion povas supozi ripetebla starta komando
Post provizado, skripto povas sekure celi la ekzistantan konekton tra la interfaco de ĝia posedanto. Donu al ĝi la stabilan identecon de la konekto plus la agon, kiun vi volas, kaj nenion alian. Ĝi ne devus legi divenitan preferan vojon, kaj ĝi ne devus supozi, ke la nomo montrata en la menuo estas unika en la tuta sistemo.
Por denaskaj konektoj, nomita sesia peto kiel scutil --nc start estas rega operacio. Ĝi ne instalas servilajn agordojn, ne importas akreditaĵojn kaj ne plenumas unuan konservan rajtigon. Traktu ĝin kiel la lastan paŝon de ĉeno, neniam kiel la tutan ĉenon.
Tenu sekretojn ekster komandliniaj argumentoj kaj ekster ordinara diagnoza eligado. Kiun ajn identecan mekanismon la efektivigo elektis, ĝi estas tiu, sur kiu la starta komando devas fidi, kaj pasvorto engluita en ŝelan historion estas trovo en iu ajn revizio.
Du akceptaj kontroloj
La unua kontrolo estas provizado: prenu ĵus instalitan Mac kaj pruvu, ke la agordo ĉeestas, apartenas al la ĝusta administranto kaj estas plene aprobita. Faru tion antaŭ ol testi konekteblecon, ĉar konekta testo sur neprovizita maŝino pruvas nenion pri la skripto.
La dua kontrolo estas la sesio: konektiĝu, atingi la rajtigitan rimedon kaj malkonektiĝu pure. Ĉiu malsukceso nun havas posedanton, kaj tio estas la praktika avantaĝo de la divido de la du taskoj. Mankanta profilo estas livera problemo, konserva eraro estas aproba problemo, rifuzita ensaluto estas aŭtentiga problemo, kaj tempolimo post sukcesa starto estas la sesia tavolo. Neniu el ili estas «la skripto estas difektita».