VPN fuq Mac fil-boot: launchd jissorvelja l-job, mhux il-mina
Plist li jgħaddi mil-lint ma jipprova xejn dwar il-kredenzjali jew it-tħejjija. Qabbel il-job mas-sessjoni tiegħu, żomm il-klijent quddiem, u ttestja f'dak il-kuntest.
Il-job jiġri fil-login, il-log juri l-klijent jibda, imma l-mina qatt ma titla'. Jew titla' u tisparixxi ftit sekondi wara. Fiż-żewġ każi l-lista tal-proprjetajiet x'aktarx kienet sew. launchd għamel żewġ wegħdiet meta aċċetta l-job: se jissorvelja proċess, u dak il-proċess se jibqa' għaddej. Il-VPN jeħtieġ it-tnejn, u fajl XML korrett ma jipprovdi l-ebda waħda.
Lista tal-proprjetajiet valida mhijiex servizz li jaħdem
plutil -lint jiċċekkja l-istruttura. Ma jistax jgħidlek jekk il-binarju jeżistix, jekk l-argumenti humiex appoġġjati minn din il-verżjoni tal-klijent, jew jekk il-job jibdiex f'kuntest fejn il-kredenzjali huma disponibbli. Dawn huma mistoqsijiet semantiċi, u dawn jispjegaw ħafna mill-fallimenti li jidhru bħala problemi ta' launchd.
plutil -lint /Library/LaunchDaemons/com.example.vpn.plist
launchctl print system/com.example.vpn
Aqra l-output tat-tieni kmand minflok tassumi li l-job ġie mgħobbi. Dan jirrapporta l-aħħar status tal-ħruġ u jekk is-servizz huwiex għaddej, li jiddistingwi "qatt ma beda" minn "beda u miet" qabel ma tmiss il-profil.
L-aġenti jirtu sessjoni tal-utent, id-daemons le
Id-dokumentazzjoni ta' Apple dwar launchd tifred l-aġenti ta' kull utent mid-daemons tas-sistema. Aġent jiġri fil-kuntest tal-utent illoggjat, mal-keychain u l-ambjent ta' dak l-utent. Daemon jiġri mingħajr dik is-sessjoni, u li tmexxi job f'direttorju tas-sistema ma toħloqx mill-ġdid il-kredenzjali interattivi tal-utent.
Din id-differenza tiddetermina d-disinn. Jekk il-konnessjoni teħtieġ li persuna tidħol jew tapprova prompt MFA, l-arranġament appoġġjat huwa job fis-sessjoni tal-utent li jiġri wara l-login. Jekk irid jaħdem mingħajr ħadd illoggjat, il-klijent jeħtieġ identità mhux sorveljata approvata bil-proċess tiegħu ta' tiġdid u revoka. L-għażla tal-linja żbaljata tipproduċi job li jibda nadif u jfalli fl-ewwel pass tal-awtentikazzjoni.
Tgħattix id-differenza b'password fl-array tal-argumenti jew billi tiddiżattiva l-verifiki taċ-ċertifikati. It-tnejn ibiddlu rekwiżit ta' awtentikazzjoni f'sigriet permanenti f'fajl li jinqara, u t-tieni jfisser li l-mina tawtentika kull ma jwieġeb.
Is-sorveljanza taħdem biss jekk il-proċess jibqa' quddiem
Klijent li jagħmel lilu nnifsu daemon jirritorna l-kontroll lil launchd minnufih, u mbagħad is-sorveljant jara proċess li diġà spiċċa. Il-mina tista' tkun 'il fuq, imma launchd jaħseb li l-job falla, u l-politika tiegħu ta' restart tagħmel xi ħaġa li ma ridtx.
Uża l-mod quddiem jew tas-servizz dokumentat mill-klijent. Jekk il-prodott għandu karatteristika tal-bidu appoġġjata tiegħu stess, dik il-karatteristika diġà taf kif tibqa' quddiem u kif tgħaddi lin-netwerk stack; job personalizzat huwa disinn separat, mhux titjib tiegħu.
Agħti lill-job tikketta unika, l-eżekuttabbli maħsub u array ta' argumenti maħsub. Array mhuwiex linja tal-kmand tal-shell, allura pipes u redirezzjonijiet ma jaħdmux hemm, u l-imġieba tal-kwotazzjoni hija differenti. Kmand li jirnexxi fit-terminal ta' amministratur huwa l-iktar verifika preliminari.
Il-kredenzjali iridu jaħdmu mingħajr prompt
L-operat mingħajr sorveljanza jċaqlaq il-problema tal-kredenzjali minflok ma jneħħiha. Xi ħadd irid ikollu l-identità, jiddeċiedi kemm iddum ħajja, u jiddokumenta kif tiġi sostitwita. Ċertifikat mingħajr monitoraġġ tal-iskadenza jsir waqfa b'data fil-kalendarju.
Żomm is-sigrieti 'l barra mill-argumenti u 'l barra mill-output standard tal-job. Jekk il-klijent jappoġġja l-qari ta' kredenzjal minn maħżen protett, uża dak il-passaġġ, u ċċekkja li l-kuntest tal-eżekuzzjoni tal-job jista' jasal għall-maħżen. Daemon li jiġri bħala root normalment ma jistax jaqra oġġett fil-keychain tal-login, u dan huwa tip ta' dettall li jidher biss fil-kuntest tas-sistema.
Iddefinixxi xi jfisser lesta, imbagħad ittestja hemm
Tnedija b'suċċess tipprova li l-proċess beda. Ma tipprovax li n-netwerk huwa 'l fuq, li l-gateway aċċetta l-identità, jew li l-applikazzjoni privata hija aċċessibbli. Jekk xi ħaġa oħra tiddependi mill-mina, għandha bżonn sinjal ta' tħejjija li jirrifletti l-konnessjoni, mhux il-ħin tal-bidu tal-job.
It-tentattivi mill-ġdid għandhom ikunu limitati u għandhom jiddistingwu netwerk nieqes minn kredenzjal miċħud. It-tnedija mill-ġdid f'kull falliment ma tistax issewwi ċertifikat skadut u tipproduċi log mimli tentattivi identiċi li jaħbi dak veru.
Aċċetta l-job fil-kuntest li fih tassew se jiġri: l-ebda netwerk fil-boot, login normali, qawmien mill-irqad, u waqfa kkontrollata. Imbagħad irreġistra t-tikketta tal-job, il-verżjoni tal-klijent u r-reviżjoni tal-profil flimkien, sabiex il-persuna li jmiss tirtira servizz attribwibbli minflok fajl li darba ħadem.