VPN پیش از ورود در macOS: باز کردن قفل، پنجره ورود، نشست
باز کردن قفل FileVault، پنجره ورود و نشست کاربر مراحل جداگانهای هستند. کلاینتی که هنگام ورود اجرا میشود فقط آخرین آنها را حل میکند.
این باوری است که برای مردم یک هفته هزینه دارد: که مک تنها یک لحظه به نام پیش از ورود دارد و کلاینت VPN یا آن لحظه اجرا میشود یا نه. در واقع دستگاه دستکم سه لحظه دارد که دسترسی به شبکه در آنها اهمیت دارد و آنها را این جدا میکند که در آن نقطه چه کسی اجازه دارد اعتبارنامه نگه دارد. کلاینتی که از یک آیتم ورود اجرا میشود دقیقاً یکی از آنها را پوشش میدهد و آن یکی آخرین است.
افسانهای که یک تنظیم کل بوت را پوشش میدهد
صفحه محصول را دوباره بخوانید و ببینید این ویژگی کدام مرحله را نام میبرد. کادر تیکای با برچسب اجرا هنگام ورود یعنی آیتم ورود، که پس از وجود نشست کاربر اجرا میشود. کادر تیکای با برچسب اتصال در صورت نیاز یعنی کلاینت وقتی ترافیک با قاعدهای مطابقت دارد اتصال باز میکند، که هنوز مستلزم در دسترس بودن کلاینت و اعتبارنامههایش است.
هیچکدام از این دو به فرایند بوت نمیرسد. این محدودیتی نیست که فروشنده فراموش کرده حذف کند؛ این چیزی است که سیستمعامل اجازه میدهد. پیش از باز شدن قفل حجم، هیچ سیستم در حال اجرایی نیست که کلاینت از آن اجرا شود، و پس از خروج، رازهای کاربر با نشست میروند. دو دیوار جداگانه، و هیچکدام به کادر تیک دیگری تسلیم نمیشود.
وقتی مراحل را جدا کنید، پرسش اصلی شکل عوض میکند. به جای پرسیدن اینکه آیا VPN پیش از ورود اجرا میشود، میپرسید کدام یک از سه لحظه مشخص باید کار کند، و سپس میفهمید که هر کدام صاحب دیگری دارد: پشته رمزنگاری، افزونه شبکه یا نشست کاربر.
در هر مرحله واقعاً چه اتفاقی میافتد
بوت با یک حجم رمزنگاریشده آغاز میشود که باید پیش از وجود سیستمی قابل استفاده برای هر کار عمومی، قفلش باز شود. این باز کردن در زمینهای محدود و با مجموعهای محدود از اعتبارنامهها رخ میدهد و اپل به روشنی مستند میکند که دادههای رمزنگاریشده بدون باز کردن معتبر غیرقابل دسترس میمانند.
سپس پنجره ورود میآید، جایی که سیستم در حال اجراست اما هنوز نشست کاربر وجود ندارد. اگر کاربر خارج شده باشد، افزونهای که در زمینه کاربر اجرا میشد پایان یافته است و افزونه سیستمی سراسری ممکن است هنوز در حال اجرا باشد، اما اجرا بودن با نگه داشتن اعتبارنامههایی که VPN شما لازم دارد یکی نیست.
سپس نشست میآید، جایی که یک کلاینت معمولی میتواند زنجیره کلید ورود را بخواند، عامل دوم را درخواست کند و مسیرهای هل دادهشده را اعمال کند. بیشتر ویژگیهایی که مردم آنها را پیش از ورود توصیف میکنند در واقع همین مرحله است که در ابتدای نشست فعال میشود نه پیش از آن.
| Stage | What it can use | What it cannot do |
|---|---|---|
| FileVault unlock | Credentials supplied at the console to unlock the volume | Run an ordinary VPN app or read a user keychain |
| Login window | System context, possibly a joined network | Use a user secret that only exists after login |
| User session | Login keychain, interactive MFA, full client features | Exist before the volume unlocks |
چرا یک launch daemon نمیتواند برای کاربر غایب وارد شود
دسترسی بالا به نظر میرسد باید مشکل را حل کند، و حل نمیکند. یک launch daemon به عنوان فرایند سیستمی بدون نشست کاربر در پشتش اجرا میشود، پس زنجیره کلیدی برای باز کردن نیست و انسانی برای پاسخ به درخواست نیست. میتواند سوکت باز کند و فایل بخواند؛ آنچه نمیتواند این است که کاربر صاحب اعتبارنامهها شود. دسترسی هویت نیست و دقیقاً همینجا این دو اشتباه گرفته میشوند.
آنچه مردم در این شکاف میسازند اسکریپتی است که گذرواژهای در آن است، که مشکلی بدتر از مشکل آغازین است.
نسخه صادقانه نیاز باریکتر است. اگر دستگاه باید در غیاب همه به منبعی محافظتشده برسد، هویتی که آن منبع میپذیرد باید هویتی باشد که دستگاه بدون انسان میتواند نگه دارد: گواهی دستگاه، اعتبارنامهای در زنجیره کلید سیستم یا حسابی که عامل دومش اعلان به تلفن در جیب کسی نیست. آن هویت را آگاهانه طراحی کنید و پرسش مرحله معمولاً خودش را پاسخ میدهد.
ویژگی پیش از ورود ویندوز منتقل نمیشود
ویندوز برای برخی محصولات دسترسی از راه دور سازوکاری مستند برای دسترسی پیش از ورود دارد و نامش بهتر از توانش سفر میکند. ویژگیای که در راهنمای استقرار ویندوز توصیف میشود چیزی درباره اینکه همان فروشنده معادلی در macOS پیاده میکند یا نه به شما نمیگوید.
بیانیهای بخواهید که سختافزار مک، نسخه macOS، نسخه کلاینت و روش احراز هویتی را که واقعاً استفاده میکنید پوشش دهد. ادعای کلی پشتیبانی کافی نیست، چون تفاوت میان کار کردن و کار نکردن غالباً در یکی از آن چهار است.
اگر فروشنده نمیتواند پاسخ دهد، همان پاسخ است. مرحله نشست را برنامهریزی کنید و برای حالت بدون حضور جایگزینی طراحی کنید، نه اینکه شکاف را هنگام استقرار کشف کنید.
در عوض چه بخواهیم
نیاز را به زبان مراحل بنویسید. کدام منبع، برای چه کسی لازم است، در چه زمینهای و با چه تأخیر قابل قبولی وقتی اتصال هنوز نیست؟
اگر پاسخ کاربری است که وارد میشود و سپس تونل را لازم دارد، اتصال در صورت نیاز و یک آیتم اجرا کافی و ارزان است. اگر پاسخ دستگاهی است که شبانه دوباره راهاندازی میشود و باید گزارش بدهد، طراحی به مسیر پشتیبانیشده باز کردن قفل دیسک، هویت دستگاه و فرایند بازیابی نیاز دارد که وقتی شبکه هرگز بالا نمیآید کار کند. اگر پاسخ ورود سازمانی وابسته به تونل است، طرحهای ورود، هویت و VPN باید با هم ساخته شوند نه جداگانه خریداری.
مستندات FileVault اپل نقطه شروع درست برای مرحله باز کردن قفل است. هر چیزی پس از آن پرسشی درباره کلاینت و هویت است که بیانیه فروشنده باید پیش از خرید روشن کند.