VPN sebelum login di macOS: buka kunci, jendela login, sesi
Membuka kunci FileVault, jendela login, dan sesi pengguna adalah tahap yang terpisah. Klien desktop yang mulai saat login hanya menyelesaikan tahap terakhir.
Berikut keyakinan yang membuat orang kehilangan sepekan: bahwa Mac punya satu momen bernama sebelum login, dan klien VPN entah mulai saat itu atau tidak. Mesin sebenarnya punya setidaknya tiga momen ketika akses jaringan penting, dipisahkan oleh siapa yang diizinkan memegang kredensial pada titik itu. Klien yang diluncurkan dari item login hanya mencakup tepat satu di antaranya, dan itu yang terakhir.
Mitos bahwa satu pengaturan mencakup seluruh proses boot
Baca ulang halaman produk dan cari tahap mana yang disebut fitur itu. Kotak centang berlabel mulai saat login berarti item login, yang berjalan setelah sesi pengguna ada. Kotak centang berlabel hubungkan sesuai permintaan berarti klien membuka koneksi ketika lalu lintas cocok dengan aturan, yang tetap menuntut klien dan kredensialnya tersedia.
Keduanya tidak mencapai proses boot. Itu bukan batasan yang lupa dihapus vendor; itu yang diizinkan sistem operasi. Sebelum volume dibuka kuncinya tidak ada sistem berjalan untuk meluncurkan klien, dan setelah logout rahasia pengguna pergi bersama sesi. Dua dinding terpisah, dan tak satu pun tunduk pada kotak centang lain.
Begitu tahapnya dipisahkan, pertanyaan aslinya berubah bentuk. Alih-alih bertanya apakah VPN mulai sebelum login, Anda bertanya momen mana dari tiga momen tertentu yang harus bekerja, lalu menemukan bahwa masing-masing punya pemilik berbeda: tumpukan enkripsi, ekstensi jaringan, atau sesi pengguna.
Apa yang sebenarnya terjadi di setiap tahap
Boot dimulai dengan volume terenkripsi yang harus dibuka kuncinya sebelum ada sistem yang bisa dipakai untuk pekerjaan umum apa pun. Pembukaan itu terjadi dalam konteks terbatas dengan kumpulan kredensial terbatas, dan Apple mendokumentasikan dengan jelas bahwa data terenkripsi tetap tak terjangkau tanpa pembukaan kunci yang sah.
Berikutnya jendela login, tempat sistem berjalan tetapi belum ada sesi pengguna. Ekstensi dalam konteks pengguna sudah berakhir jika pengguna logout, dan ekstensi sistem global mungkin masih berjalan, tetapi berjalan tidak sama dengan memegang kredensial yang dibutuhkan VPN Anda.
Lalu datang sesi, tempat klien normal dapat membaca keychain login, meminta faktor kedua dan menerapkan rute yang didorong. Sebagian besar fitur yang orang sebut sebelum login sebenarnya tahap ini, dipicu di awal sesi dan bukan sebelumnya.
| 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 |
Mengapa launch daemon tidak bisa masuk untuk pengguna yang tidak hadir
Tingkat hak istimewa yang tinggi terasa seharusnya menyelesaikan masalah, dan ternyata tidak. Launch daemon berjalan sebagai proses sistem tanpa sesi pengguna di belakangnya, jadi tidak ada keychain untuk dibuka dan tidak ada manusia untuk menjawab permintaan. Ia bisa membuka soket dan membaca berkas; yang tidak bisa adalah menjadi pengguna yang memiliki kredensial itu. Hak istimewa bukan identitas, dan di sinilah keduanya tertukar.
Yang orang bangun di celah itu adalah skrip berisi kata sandi, yang merupakan masalah lebih buruk daripada masalah awalnya.
Versi jujur dari persyaratan itu lebih sempit. Jika mesin harus mencapai sumber daya terlindungi saat tak ada orang, identitas yang diterima sumber daya itu harus identitas yang bisa dipegang mesin tanpa manusia: sertifikat perangkat, kredensial di keychain sistem, atau akun yang faktor keduanya bukan notifikasi push ke telepon di kantong seseorang. Rancang identitas itu dengan sengaja, dan pertanyaan tahap biasanya terjawab sendiri.
Fitur pra-login Windows tidak ikut berpindah
Windows punya mekanisme akses pra-login yang terdokumentasi untuk beberapa produk akses jarak jauh, dan namanya lebih mudah berpindah daripada kemampuannya. Fitur yang dijelaskan dalam panduan penerapan Windows tidak memberi tahu apa pun tentang apakah vendor yang sama menerapkan padanannya di macOS.
Mintalah pernyataan yang mencakup perangkat keras Mac, rilis macOS, versi klien, dan metode autentikasi yang benar-benar Anda pakai. Klaim dukungan umum tidak cukup, karena perbedaan antara berfungsi dan tidak sering terletak pada salah satu dari empat itu.
Jika vendor tidak bisa menjawab, itulah jawabannya. Rencanakan tahap sesi dan rancang alternatif untuk kasus tanpa kehadiran, bukan menemukan celahnya saat penerapan.
Apa yang sebaiknya diminta
Tulis persyaratan dalam bahasa tahapan. Sumber daya apa, dibutuhkan oleh siapa, dalam konteks apa, dan dengan penundaan yang dapat diterima berapa ketika koneksi belum ada?
Jika jawabannya pengguna yang login lalu membutuhkan terowongan, hubungkan sesuai permintaan dan item startup sudah cukup dan murah. Jika jawabannya mesin yang reboot semalaman dan harus melapor, rancangan membutuhkan jalur buka kunci disk yang didukung, identitas perangkat, dan proses pemulihan yang bekerja ketika jaringan tak pernah muncul. Jika jawabannya login organisasi yang bergantung pada terowongan, rancangan login, identitas, dan VPN harus dibangun bersama, bukan dibeli terpisah.
Dokumentasi FileVault Apple adalah titik awal yang tepat untuk tahap buka kunci. Semua setelahnya adalah pertanyaan klien dan identitas yang seharusnya diselesaikan pernyataan vendor sebelum membeli.