VPN vor der Anmeldung unter macOS: Entsperren, Anmeldefenster, Sitzung
FileVault-Entsperrung, Anmeldefenster und Benutzersitzung sind getrennte Phasen. Ein Desktop-Client, der bei der Anmeldung startet, löst nur die letzte davon.
Hier ist ein Glaube, der Leute eine Woche kostet: dass ein Mac einen einzigen Moment namens vor der Anmeldung hat und dass ein VPN-Client dann entweder startet oder nicht. Tatsächlich hat die Maschine mindestens drei Momente, in denen Netzwerkzugriff zählt, getrennt danach, wer an diesem Punkt Anmeldedaten halten darf. Ein Client, der aus einem Anmeldeobjekt gestartet wird, deckt genau einen davon ab, und es ist der letzte.
Der Mythos, dass eine Einstellung den ganzen Start abdeckt
Lesen Sie die Produktseite noch einmal und suchen Sie, welche Phase die Funktion nennt. Ein Kästchen mit der Bezeichnung bei der Anmeldung starten bedeutet ein Anmeldeobjekt, das läuft, nachdem eine Benutzersitzung existiert. Ein Kästchen mit der Bezeichnung bei Bedarf verbinden bedeutet, dass der Client eine Verbindung öffnet, wenn Datenverkehr einer Regel entspricht, was weiterhin erfordert, dass der Client und seine Anmeldedaten verfügbar sind.
Keines von beiden erreicht den Startvorgang. Das ist keine Einschränkung, die der Hersteller zu entfernen vergessen hat; es ist das, was das Betriebssystem zulässt. Bevor das Volume entsperrt ist, gibt es kein laufendes System, aus dem ein Client gestartet werden könnte, und nach dem Abmelden verlassen die Geheimnisse des Benutzers die Sitzung. Zwei getrennte Mauern, und keine weicht einem anderen Kästchen.
Sobald Sie die Phasen trennen, ändert die ursprüngliche Frage ihre Form. Statt zu fragen, ob das VPN vor der Anmeldung startet, fragen Sie, welcher der drei konkreten Momente funktionieren muss, und dann entdecken Sie, dass jeder einen anderen Eigentümer hat: der Verschlüsselungsstapel, die Netzerweiterung oder die Benutzersitzung.
Was in jeder Phase tatsächlich passiert
Der Start beginnt mit einem verschlüsselten Volume, das entsperrt werden muss, bevor ein nutzbares System für irgendetwas Allgemeines existiert. Diese Entsperrung geschieht in einem eingeschränkten Kontext mit einem eingeschränkten Satz von Anmeldedaten, und Apple dokumentiert klar, dass verschlüsselte Daten ohne gültige Entsperrung unzugänglich bleiben.
Als Nächstes kommt das Anmeldefenster, in dem das System läuft, aber noch keine Benutzersitzung existiert. Eine Erweiterung im Benutzerkontext ist bereits beendet, wenn der Benutzer sich abgemeldet hat, und eine globale Systemerweiterung läuft möglicherweise noch, aber laufen ist nicht dasselbe wie die Anmeldedaten zu halten, die Ihr VPN braucht.
Dann kommt die Sitzung, in der ein normaler Client den Anmeldeschlüsselbund lesen, einen zweiten Faktor anfordern und verteilte Routen anwenden kann. Die meisten Funktionen, die Leute als vor der Anmeldung beschreiben, sind tatsächlich diese Phase, früh in der Sitzung ausgelöst und nicht davor.
| 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 |
Warum ein Launch Daemon sich nicht für einen abwesenden Benutzer anmelden kann
Erhöhte Rechte fühlen sich an, als sollten sie das Problem lösen, und sie tun es nicht. Ein Launch Daemon läuft als Systemprozess ohne Benutzersitzung dahinter, also gibt es keinen Schlüsselbund zu entsperren und keinen Menschen, der eine Eingabeaufforderung beantwortet. Er kann einen Socket öffnen und eine Datei lesen; was er nicht kann, ist der Benutzer zu werden, dem die Anmeldedaten gehören. Privileg ist keine Identität, und genau an diesem Punkt werden die beiden verwechselt.
Was Leute in diese Lücke bauen, ist ein Skript mit einem Passwort darin, was ein schlimmeres Problem ist als das, mit dem sie angefangen haben.
Die ehrliche Version der Anforderung ist enger. Wenn die Maschine eine geschützte Ressource erreichen muss, während niemand anwesend ist, muss die Identität, die diese Ressource akzeptiert, eine sein, die die Maschine ohne einen Menschen halten kann: ein Gerätezertifikat, ein Anmeldedatum im Systemschlüsselbund oder ein Konto, dessen zweiter Faktor kein Push auf ein Telefon in jemandes Tasche ist. Entwerfen Sie diese Identität bewusst, und die Phasenfrage beantwortet sich meist selbst.
Die Windows-Funktion vor der Anmeldung lässt sich nicht übertragen
Windows hat einen dokumentierten Zugriffsmechanismus vor der Anmeldung für einige Fernzugriffsprodukte, und der Name reist besser als die Fähigkeit. Eine in einem Windows-Bereitstellungshandbuch beschriebene Funktion sagt Ihnen nichts darüber, ob derselbe Hersteller ein Äquivalent unter macOS implementiert.
Verlangen Sie eine Erklärung, die die Mac-Hardware, die macOS-Version, die Client-Version und die tatsächlich verwendete Authentifizierungsmethode abdeckt. Eine allgemeine Unterstützungsaussage reicht nicht, weil der Unterschied zwischen funktionierend und nicht funktionierend oft in einem dieser vier liegt.
Wenn der Hersteller nicht antworten kann, ist das die Antwort. Planen Sie die Sitzungsphase und entwerfen Sie eine Alternative für den unbeaufsichtigten Fall, statt die Lücke während eines Rollouts zu entdecken.
Wonach stattdessen fragen
Schreiben Sie die Anforderung in der Sprache der Phasen. Welche Ressource, von wem benötigt, in welchem Kontext und mit welcher akzeptablen Verzögerung, wenn die Verbindung noch nicht steht?
Wenn die Antwort ein Benutzer ist, der sich anmeldet und dann den Tunnel braucht, sind bei Bedarf verbinden und ein Startobjekt ausreichend und günstig. Wenn die Antwort eine Maschine ist, die über Nacht neu startet und Bericht erstatten muss, braucht das Design einen unterstützten Weg zum Entsperren des Datenträgers, eine Geräteidentität und einen Wiederherstellungsprozess, der funktioniert, wenn das Netzwerk nie hochkommt. Wenn die Antwort eine Organisationsanmeldung ist, die vom Tunnel abhängt, müssen Anmelde-, Identitäts- und VPN-Design zusammen gebaut und nicht getrennt eingekauft werden.
Apples FileVault-Dokumentation ist der richtige Ausgangspunkt für die Entsperrphase. Alles danach ist eine Client- und Identitätsfrage, die eine Herstellererklärung klären sollte, bevor Sie kaufen.