Вось перакананне, якое каштуе людзям тыдзень: што ў Mac ёсьць адзін момант, які называецца «перад уваходам», і што кліент VPN альбо запускаецца тады, альбо не. Насамрэч у машыне ёсьць мінімум тры моманты, калі сеткавы доступ мае значэнне, і іх раздзяляе тое, каму на гэтым этапе дазволена трымаць ўліковыя даныя. Кліент, запушчаны з элемента ўваходу, пакрывае роўна адзін з іх, і гэта апошні.

Міф пра тое, што адна налада пакрывае ўсю загрузку

Перачытайце старонку прадукту і паглядзіце, які этап называе функцыя. Сцяжок з подпісам «запускаць пры ўваходзе» азначае элемент уваходу, які працуе пасля з'яўлення сесії карыстальніка. Сцяжок з подпісам «злучаць па патрабаванні» азначае, што кліент адкрывае злучэнне, калі трафік адпавядае правілу, а гэта ўсё яшчэ патрабуе, каб кліент і яго ўліковыя даныя былі даступныя.

Ніводнае з іх не дасягае працэсу загрузкі. Гэта не абмежаванне, якое пастаўшчык забыўся прыбраць; гэта тое, што дазваляе аперацыйная сістэма. Пакуль том не разблакаваны, няма працуючай сістэмы, з якой можна запусціць кліент, а пасля выхаду сакрэты карыстальніка сыходзяць разам з сесіяй. Дзве асобныя сцяны, і ні адна не саступае іншаму сцяжку.

Калі вы раздзялілі этапы, зыходнае пытанне змяняе форму. Замест таго каб пытацца, ці запускаецца VPN перад уваходам, вы пытаецеся, які з трох канкрэтных момантаў павінен працаваць, і потым выяўляеце, што ў кожнага свой уласнік: слой шыфравання, сеткавае пашырэнне або сесія карыстальніка.

Што насамрэч адбываецца на кожным этапе

Загрузка пачынаецца за шыфраванага тома, які трэба разблакаваць, перш чым з'явіцца прыдатная сістэма для любой агульнай працы. Гэтае разблакаванне адбываецца ў абмежаваным кантэксце з абмежаваным наборам уліковых даных, і Apple ясна дакументуе, што зашыфраваныя даныя застаюцца недаступнымі без сапраўднага разблакавання.

Далей ідзе акно ўваходу, дзе сістэма працуе, але сесії карыстальніка яшчэ няма. Пашырэнне ў кантэксце карыстальніка ўжо скончылася, калі карыстальнік выйшаў, а глабальнае сістэмнае пашырэнне можа яшчэ працаваць, але працаваць не тое самае, што трымаць ўліковыя даныя, патрэбныя вашаму VPN.

Затым ідзе сесія, дзе звычайны кліент можа прачытаць звязку ключоў уваходу, запытаць другі фактар і ўжыць прасунутыя маршруты. Большасць функцый, якія людзі называюць «перад уваходам», насамрэч гэты этап, які запускаецца ў пачатку сесії, а не да яе.

StageWhat it can useWhat it cannot do
FileVault unlockCredentials supplied at the console to unlock the volumeRun an ordinary VPN app or read a user keychain
Login windowSystem context, possibly a joined networkUse a user secret that only exists after login
User sessionLogin keychain, interactive MFA, full client featuresExist before the volume unlocks

Чаму launch daemon не можа ўвайсці за адсутнага карыстальніка

Павышаныя прывілеі здаюцца рашэннем праблемы, але не ёсьць ім. Launch daemon працуе як сістэмны працэс без сесії карыстальніка за ім, таму няма звязкі ключоў, якую трэба разблакаваць, і няма чалавека, які адкажа на запыт. Ён можа адкрыць сокет і прачытаць файл; чаго ён не можа — стаць карыстальнікам, якому належаць уліковыя даныя. Прывілей не ёсьць ідэнтычнасць, і гэта менавіта той пункт, дзе два паняцці блытаюць.

Што людзі будуюць у гэтай прагаліне — гэта скрыпт з паролем унутры, а гэта горшая праблема, чым тая, з якой яны пачалі.

Сумленная версія патрабавання вузейшая. Калі машына павінна дасягнуць абароненага рэсурсу, пакуль нікога няма, то ідэнтычнасць, якую гэты рэсурс прымае, павінна быць той, якую машына можа трымаць без чалавека: сертыфікат прылады, ўліковыя даныя ў сістэмнай звязцы ключоў або ўліковы запіс, другі фактар якога не з'яўляецца push-паведамленнем на тэлефон у чыёйсьці кішэні. Праектуйце гэтую ідэнтычнасць свядома, і пытанне этапу звычайна адказвае само сабой.

Функцыя Windows «перад уваходам» не пераносіцца

У Windows ёсьць дакументаваны механізм доступу перад уваходам для некаторых прадуктаў аддаленага доступу, і назва падарожнічае лепш за магчымасць. Функцыя, апісаная ў кіраўніцтве па разгортванні Windows, нічога не кажа пра тое, ці рэалізуе той жа пастаўшчык эквівалент на macOS.

Патрабуйце заключэнне, якое ахоплівае абсталяванне Mac, версію macOS, версію кліента і метад аўтэнтыфікацыі, які вы фактычна выкарыстоўваеце. Агульная заява пра падтрымку недастатковая, бо розніца паміж працай і няпрацай часта сядзіць у адным з гэтых чатырох.

Калі пастаўшчык не можа адказаць, гэта і ёсьць адказ. Плануйце этап сесії і праектуйце альтэрнатыву для выпадку без нагляду, а не выяўляйце прагаліну падчас разгортвання.

Што патрабаваць замест гэтага

Напішыце патрабаванне на мове этапаў. Які рэсурс, каму патрэбны, у якім кантэксце і з якой дапушчальнай затрымкай, калі злучэння яшчэ няма?

Калі адказ — карыстальнік, які ўваходзіць і потым патрабуе тунэль, злучэння па патрабаванні і элемента запуску дастаткова і нядорага. Калі адказ — машына, якая перазагружаецца начамі і павінна здаваць справаздачы, праект патрабуе падтрымоўванага шляху разблакавання дыска, ідэнтычнасці прылады і працэсу аднаўлення, які працуе, калі сетка не ўзнімаецца ніколі. Калі адказ — уваход у арганізацыю, які залежыць ад тунэлю, то праекты ўваходу, ідэнтычнасці і VPN трэба будаваць разам, а не купляць асобна.

Дакументацыя Apple па FileVault — правільная адпраўная кропка для этапу разблакавання. Усё пасля гэтага — пытанне кліента і ідэнтычнасці, якое павінен вырашыць заява пастаўшчыка да куплі.

Падобныя артыкулы