Sophos Endpoint macOS CLI und Berechtigungen
Ein automatischer macOS-Rollout besteht aus zwei getrennten Ebenen: Der Sophos-Installer registriert und installiert die gewählten Komponenten. Die MDM-Profile genehmigen anschliessend die von Apple geschützten System- und Datenschutzfunktionen. Ein erfolgreicher Installer allein bedeutet deshalb noch keinen vollständigen Schutz.
Für einen Jamf-Pro-Rollout dient Sophos Endpoint auf macOS per MDM ausrollen. Dieser Artikel konzentriert sich auf CLI-Parameter und die technische Berechtigungsprüfung.
Wenn eine Installation, Registrierung oder Aktualisierung bereits fehlgeschlagen ist, verwenden Sie zuerst das macOS-Troubleshooting-Runbook zur symptomorientierten Eingrenzung. Dieser Artikel vertieft anschliessend CLI-Parameter sowie die TCC-/MDM-Prüfung.
Installer vorbereiten
Auf macOS Monterey 12.4 und neuer darf das Archiv nicht in Documents, Downloads oder auf dem Desktop entpackt werden. Sophos empfiehlt ein Verzeichnis im Benutzer-Home.
Das Terminal muss aus dem Verzeichnis gestartet werden, das Sophos Installer.app enthält; sudo setzt ein lokales Administratorkonto voraus. Sophos dokumentiert exakt diesen Befehl für die unbeaufsichtigte Installation von Sophos Anti-Virus und Intercept X:
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer --products antivirus intercept --quiet
Der Installer ist tenantgebunden und wird wie ein vertrauliches Deployment-Artefakt behandelt. Der Befehl installiert und registriert die lizenzierten Komponenten. Er wird zuerst auf einem Pilotgerät ausgeführt; danach werden Gerät, Produkte, Health und effektive Policy in Central geprüft. Für ein Rollback wird der von Sophos dokumentierte Uninstaller verwendet, statt einzelne Dateien zu löschen. Schlägt die Installation weiterhin fehl, werden Installer-Logs und ein SDU-Archiv für Sophos Support gesichert.
Gruppe und Tags setzen
Mit --devicegroup wird ein Computer einer Central-Gruppe oder Untergruppe zugewiesen:
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer \
--install --quiet \
--devicegroup "Workstations\Switzerland\Mac"
Leerzeichen im Gruppenpfad müssen für die Shell korrekt escaped werden. Existiert die Gruppe noch nicht, kann der Installer sie anlegen. Nach dem Rollout wird trotzdem geprüft, ob die vorgesehene Policy tatsächlich greift.
Tags lassen sich mehrfach angeben:
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer \
--install --quiet \
--tag=Country:CH \
--tag=Department:Design \
--tag=VIP
Tags helfen bei Suche und Betrieb. Sie ersetzen keine Policy-Gruppe, solange Richtlinien nicht tagbasiert zugewiesen werden.
Produkte und Agent Mode
--products akzeptiert eine durch Leerzeichen getrennte Produktauswahl. Dokumentierte Werte sind unter anderem antivirus, intercept, mdr, xdr, deviceEncryption und all.
Ein vollständiger Schutz mit Anti-Virus und Intercept X sieht beispielsweise so aus:
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer \
--install --quiet --products antivirus intercept
Wird nur xdr installiert, entsteht kein vollständiger Malware-Schutz. In diesem Fall muss ein kompatibler Drittanbieter-Schutz vorhanden sein. XDR-only setzt auf Macs mindestens macOS 13 Ventura voraus.
Nicht lizenzierte Produkte werden nicht installiert. Nach dem Rollout wird der Agent Mode zusätzlich in Central geprüft.
Proxy und Message Relay
Für einen expliziten Proxy stehen folgende Optionen bereit:
--proxyaddress <URL>
--proxyport <port>
--proxyusername <user>
--proxypassword <password>
Ein Message Relay wird mit IP und Port 8190 angegeben:
--messagerelays 192.0.2.10:8190 192.0.2.11:8190
Der beim Download erzeugte Installer kennt die zu diesem Zeitpunkt vorhandenen Update Caches und Message Relays. Nach Änderungen an dieser Infrastruktur sollte ein aktueller Installer verwendet oder das Relay ausdrücklich per CLI gesetzt werden.
Proxy-Kennwörter dürfen nicht dauerhaft in lesbaren Skripten, MDM-Profilen oder Ausgaben stehen. Eine Secret-Funktion der Deployment-Plattform ist vorzuziehen.
Computer- und Domainnamen überschreiben
--computernameoverride und --domainnameoverride beeinflussen die Anzeige in Sophos Fusion (ehemals Sophos Central). Beide Optionen sind für eine neue Installation vorgesehen.
--computernameoverride CH-ZRH-MAC-042
--domainnameoverride corp.example
Der Computername wird ohne zusätzliche Anführungszeichen an den Installer übergeben. Eine nachträgliche Änderung kann ein zweites Geräteobjekt erzeugen. Overrides werden deshalb nur mit einer dokumentierten Namensquelle verwendet.
--mcsPreferHostname meldet Benutzernamen als domain\username statt machine\username. Das kann lokale Benutzerduplikate reduzieren, muss aber zur Identitätsstrategie passen.
Tenant und Registration Server
--customertoken <UUID> weist die Installation einem Central-Kunden zu. --mgmtserver <URL> setzt den MCS-Registrierungsserver. Beide Werte werden normalerweise aus dem tenantgebundenen Installer übernommen und nicht frei erfunden.
Mit --bypasstaegisidcheck lässt sich ein abweichender Taegis Tenant ID Check umgehen. Das ist ein gezielter Sonderfall und kein Standardparameter für jeden Rollout. Vor der Verwendung wird geklärt, warum die Tenant-IDs nicht übereinstimmen.
Namen per plist steuern
Alternativ lassen sich Computername, Domain und Beschreibung über folgende Datei setzen:
/Library/Preferences/com.sophos.mcs-overrides.plist
CLI-Overrides haben Vorrang vor der Datei. Zulässige Werte sind 1 bis 256 Zeichen lang und dürfen unter anderem keine Zeilenumbrüche oder die Zeichen <, >, &, ', " und / enthalten.
Wird die Datei nach der Installation geändert, kann in Central ein neues Geräteobjekt erscheinen, während das alte bestehen bleibt. Die Änderung wird durch einen Neustart oder folgenden MCS-Neustart geladen:
sudo launchctl stop com.sophos.mcs
macOS-Sicherheitsberechtigungen
Je nach Version und installierten Komponenten benötigt Sophos insbesondere:
- genehmigte System Extensions,
- genehmigte Network Extensions und Content Filter,
- Full Disk Access,
- Benachrichtigungsfreigaben,
- Web- beziehungsweise Scan-Extension-Berechtigungen.
Die aktuellen Profile werden in Sophos Fusion vor dem Installer heruntergeladen. Selbst erstellte Profile werden gegen die aktuelle Sophos-Dokumentation geprüft, weil Team IDs, Bundle IDs und Payloads sich mit Komponenten ändern können.
Berechtigungen prüfen
Die lokale Endpoint-Oberfläche zeigt fehlende Voraussetzungen unter About beziehungsweise im Health-Status. Sophos dokumentiert zusätzlich eine Terminal-Prüfung und eine Prüfung für Remote-Deployments.
Für die Abnahme werden drei Ebenen verglichen:
- MDM meldet alle Profile als installiert.
- Der lokale Agent meldet keine fehlende Security Permission.
- Central zeigt Health, Komponenten und Last Active korrekt.
Bleibt der Status schlecht, werden nicht blind neue Profile verteilt. Zuerst wird ermittelt, welche konkrete Extension oder Datenschutzfreigabe fehlt.
Für die detaillierte, nur lesende Prüfung muss ein Administrator das Terminal zuerst unter Systemeinstellungen > Datenschutz & Sicherheit > Festplattenvollzugriff freigeben und dann ausführen:
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db 'select * from access' | grep -i sophos
Der Befehl liest Apples TCC-Datenbank, filtert die Sophos-Einträge und ändert keine Berechtigung. Die Ergebnisse unterscheiden sich je nach Lizenz und installierten Produkten. Anschliessend wird der Festplattenvollzugriff für das Terminal wieder deaktiviert.
Bei Remote-Deployments wird die Override-Datei nur zur Prüfung kopiert; die aktive Policy bleibt unverändert:
sudo cp /Library/Application\ Support/com.apple.TCC/MDMOverrides.plist ~/Desktop/
Vergleichen Sie die MDM-Payloads mit den tatsächlich installierten Komponenten. Für com.sophos.endpoint.uiserver muss die vollständige Code-Signing-Anforderung lauten:
identifier "com.sophos.endpoint.uiserver" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "2H5GFH3774"
Vergleichen Sie die gesamte Anforderung, nicht nur die Team ID 2H5GFH3774. Weichen Kennung, Anchor, Zertifikatsbedingung oder Team ID ab, bearbeiten Sie weder die TCC-Datenbank noch die plist und schwächen Sie die Anforderung nicht ab. Stellen Sie stattdessen das aktuelle, passende Sophos-MDM-Profil erneut bereit und eskalieren Sie einen weiterhin roten Self-Help-Status mit einem SDU-Archiv.
Löschen Sie die diagnostische Kopie anschliessend ausdrücklich, da sie Sicherheitsrichtliniendaten enthält:
rm -f ~/Desktop/MDMOverrides.plist
Updatefehler auf macOS
Fehlende Berechtigungen können als Update- oder Health-Problem erscheinen. Auf macOS 14 und 15 kann fehlender Full Disk Access für SophosUpdater bei Endpoint-Versionen vor 2024.3 (10.9.1) Updates blockieren. Seit Endpoint 2024.4 (10.9.5) wird dagegen Sophos Updater service health bereits rot, wenn die Berechtigung fehlt, selbst wenn noch kein Update fehlgeschlagen ist. Der rote Health-Zustand allein beweist daher keinen aktuellen Updatefehler. Ein Administrator kann diese offizielle, nur lesende Prüfung ausführen:
sudo log show --predicate "subsystem == 'com.sophos.macendpoint'" --last 1d | grep -i 'Error renaming Installer directory'
Eine Ausgabe stützt das konkrete Berechtigungsproblem. Beim Zustand vor 2024.3 (10.9.1) wird ohne MDM SophosUpdater.app manuell unter Systemeinstellungen > Datenschutz & Sicherheit > Festplattenvollzugriff aktiviert; fehlt der Eintrag, wird /Library/Sophos Anti-Virus/SophosUpdater.app über das Pluszeichen hinzugefügt. Beim vorsorglich roten Zustand ab 2024.4 (10.9.5) wird stattdessen Endpoint Self Help > Prerequisites > Allow Full Disk Access verwendet, weil die normale Auswahl einen noch nicht von macOS blockierten Updater möglicherweise nicht anzeigt. Mit MDM wird in beiden Fällen das aktuelle, zu den installierten Komponenten passende Sophos-Profil verteilt. Anschliessend werden Self Help, Updater Health, Agent Version, Last Agent Update und Events erneut geprüft. Bleibt der Zustand nach einem vollständigen Prüfzyklus bestehen, wird ein SDU-Archiv erstellt und an Sophos Support eskaliert. Ein nur zur Diagnose gewährter Festplattenvollzugriff für Terminal wird wieder entfernt; SophosUpdater benötigt seine eigene Berechtigung weiterhin.
Bei einem Fehler werden lokale Events, Self Help und SDU verwendet. Zusätzlich werden MDM-Profilstatus, Systemzeit, Proxy, Root-Zertifikate und die Sophos-Domains geprüft.