Sophos Connect unter Windows zentral verteilen
Sophos Connect lässt sich unter Windows mit Computer-Startskripten per GPO installieren und provisionieren. Dabei bleiben drei Aufgaben getrennt: Das MSI installiert den Client, die .pro-Datei steuert den Abruf der erlaubten VPN-Konfigurationen und SCCLI liest oder ändert einzelne Verbindungen. So kann man Paket, Profil und Automatisierung unabhängig prüfen und zurückrollen.
Für einen einzelnen Arbeitsplatz beginnt man mit Sophos Connect unter Windows installieren. Aufbau und Schutzbedarf der .pro-Datei erklärt die Provisioning-Anleitung; Versionswahl und Upgrade-Reihenfolge behandelt das Sophos-Connect-Update.
Voraussetzungen und Rollout-Entscheide
Vor der Verteilung werden festgelegt:
- die von Sophos unterstützte Windows-Version und Architektur sowie die freigegebene Sophos-Connect-Version;
- IPsec, SSL VPN oder beide, einschliesslich Authentifizierung, MFA und SSO;
- ein erreichbares VPN Portal mit einem vom Client vertrauten Zertifikat;
- ein geprüftes MSI und eine freigegebene
.pro-,.scx- oder.ovpn-Quelle; - Leserechte des Computerkontos auf Startskript, MSI und gegebenenfalls Profilquelle;
- Pilot-OU oder Gerätegruppe, Wartungsfenster und ein zweiter Administrationsweg;
- das vorherige, weiterhin unterstützte MSI und die dazu passende Profilquelle für den Rückweg.
Eine Softwareverteilung darf dasselbe geprüfte Paket im lokalen Systemkontext ausführen. Das ist jedoch keine Zusage, dass ein bestimmtes Intune- oder RMM-Paket, dessen Erkennungsregel oder Rückgabecodebehandlung unterstützt wird. Aufruf, Ausführungskonto, Erkennung und Neustartverhalten werden mit dem tatsächlich verwendeten Werkzeug im Pilot getestet.
Paket und Profile schützen
MSI, Skript und Profile gehören in eine versionierte Ablage, die nur zuständige Administratoren verändern dürfen. Zielcomputer erhalten nur Leserechte. Vor der Freigabe prüft man digitale Signatur, Produktversion und einen intern dokumentierten Hash. Eine bereits freigegebene Datei wird nicht unter demselben Namen ausgetauscht.
Eine .pro-Datei enthält normalerweise kein Benutzerpasswort, kann aber interne Gatewaynamen, den VPN-Portal-Port und Provisioning-Einstellungen offenlegen. .scx-, .ovpn-, Zertifikat- oder Preshared-Key-Dateien können sensibler sein. Sie gehören weder in allgemein lesbare Shares noch in E-Mail-Anhänge oder Tickets. SCCLI-Kennwörter werden nicht in Skripten oder Prozessargumenten hinterlegt, weil Prozesse, Protokolle und Deployment-Ausgaben sie sichtbar machen können.
1. Client per GPO installieren
Sophos dokumentiert ein Computer-Startskript, das scvpn.exe erkennt und das MSI bei fehlender Installation still startet. Den UNC-Pfad und den vollständigen MSI-Dateinamen ersetzt man durch die eigene freigegebene Quelle:
@echo off
set "Sophos_Connect=Sophos\Connect\scvpn.exe"
if exist "%ProgramFiles(x86)%\%Sophos_Connect%" exit /b 0
rem Replace the UNC path and filename with the approved MSI source.
msiexec.exe /i "\\WINSERVER\Software\SophosConnect\SophosConnect_x64.msi" /qn
exit /b %ERRORLEVEL%
Das Skript wird in der Group Policy Management Console > Computer Configuration > Policies > Windows Settings > Scripts > Startup hinzugefügt. gpupdate /force aktualisiert die Richtlinien; das Startskript läuft beim nächsten Computerstart.
Die Dateiprüfung entspricht dem einfachen offiziellen Muster, erkennt aber weder eine falsche noch eine veraltete Version. Deshalb kontrolliert die Softwareinventarisierung zusätzlich die installierte Produktversion. Der Skriptcode 0 besagt nur, dass msiexec keinen Fehler gemeldet hat; Version und Dienstzustand werden danach separat geprüft. Andere MSI-Codes, insbesondere 1641 und 3010, werden als Neustartergebnis des Installers und nicht als SCCLI-Code behandelt.
2. Provisioning-Datei verwaltet bereitstellen
Sophos dokumentiert ein zweites Startskript: Es wartet auf den Dienst scvpn, lädt die .pro-Datei und kopiert sie nach C:\Program Files (x86)\Sophos\Connect\import\. Sophos Connect importiert die Datei, entfernt sie aus diesem Ordner und ruft anschliessend die für den Benutzer erlaubten IPsec- und SSL-VPN-Konfigurationen vom VPN Portal ab.
Das offizielle Muster wartet unbegrenzt. Für einen betriebssicheren Rollout begrenzt dieses Beispiel die Wartezeit auf zwei Minuten und bricht bei Download- oder Kopierfehlern mit dem jeweiligen Code ab:
@echo off
set /a WAIT_COUNT=0
:WAIT_FOR_SCVPN
sc query scvpn | findstr /C:"RUNNING" >NUL
if not errorlevel 1 goto DOWNLOAD_PROFILE
set /a WAIT_COUNT+=1
if %WAIT_COUNT% GEQ 24 exit /b 50
timeout /t 5 /nobreak >NUL
goto WAIT_FOR_SCVPN
:DOWNLOAD_PROFILE
powershell.exe -NoProfile -Command "$ErrorActionPreference='Stop'; Invoke-WebRequest 'https://software.example.net/vpn/company.pro' -OutFile '%TEMP%\company.pro'"
if errorlevel 1 exit /b %ERRORLEVEL%
copy /Y "%TEMP%\company.pro" "C:\Program Files (x86)\Sophos\Connect\import\company.pro" >NUL
exit /b %ERRORLEVEL%
software.example.net ist ein Platzhalter. Der reale HTTPS-Host benötigt ein vertrauenswürdiges Zertifikat und restriktive Zugriffsrechte. Der Pilot vergleicht den geladenen Inhalt mit der freigegebenen Quelle. Der lokale Code 50 in diesem Startskript bezeichnet das selbst gewählte Zeitlimit und ist kein SCCLI-Code. Die JSON-Struktur, vpn_portal_port, MFA-Felder und mehrere Gateways werden zentral in der Provisioning-Anleitung gepflegt.
3. SCCLI kontrolliert automatisieren
SCCLI liegt standardmässig in C:\Program Files (x86)\Sophos\Connect. Die offizielle Hilfe nennt sccli ? für die Befehlsübersicht. Version und vorhandene Verbindungen liest man so aus:
cd /d "C:\Program Files (x86)\Sophos\Connect"
sccli show -v
if errorlevel 1 exit /b %ERRORLEVEL%
sccli list -d
set "SCCLI_RC=%ERRORLEVEL%"
exit /b %SCCLI_RC%
Ein lokal bereitgestelltes Profil kann mit einem eindeutigen Namen hinzugefügt werden:
sccli add --file "C:\ProgramData\Company\VPN\branch.scx" --name "Company VPN" --overwrite
set "SCCLI_RC=%ERRORLEVEL%"
exit /b %SCCLI_RC%
add scheitert, wenn die geltende Richtlinie keine unverwalteten Verbindungen erlaubt. remove --name "Company VPN" kann nur mit add angelegte Verbindungen entfernen, keine verwalteten Verbindungen. enable und disable ändern den Tunnelzustand; bei fehlenden Zugangsdaten fragt enable interaktiv nach. Ein unbeaufsichtigter Lauf darf deshalb nicht einfach --password mit einem Klartextwert verwenden.
Dokumentierte SCCLI-Rückgabecodes
Der Code wird unmittelbar nach jedem SCCLI-Aufruf gespeichert. Ein späterer Befehl kann %ERRORLEVEL% überschreiben.
| Code | Dokumentierte Bedeutung | Sichere Reaktion |
|---|---|---|
0 | Aufruf erfolgreich | Gewünschten Zustand zusätzlich mit list -d prüfen. |
-1 | Ungültige Option oder leerer Benutzername beziehungsweise leeres Passwort | Syntax und Eingaben korrigieren; keine Geheimnisse protokollieren. |
1 | Ungültige oder nicht parsbare Eingabe | Hilfe und Argumente prüfen. |
2 | Datei fehlt oder Passwort beziehungsweise Zertifikat ist leer | Pfad, Ausführungskonto und Eingaben prüfen. |
5 | Datei kann nicht gelesen oder geöffnet werden | Dateirechte, Sperre und Inhalt prüfen. |
14 | Antwort kann nicht geparst werden | Clientzustand und Version erfassen; nicht blind wiederholen. |
101 | Anfrage kann nicht an den Server gesendet werden | Dienst scvpn und lokale Clientkommunikation prüfen. |
120 | Server liefert keine Daten | Dienstzustand protokollieren und kontrolliert erneut prüfen. |
1016 | Benutzeranmeldedaten erforderlich | Unbeaufsichtigten Schritt beenden oder interaktive Anmeldung vorsehen. |
1024 | Verbindung nicht gefunden | Exakten Namen mit list -d ermitteln. |
1101 | Benutzerauthentifizierung fehlgeschlagen | Zugangsdaten, MFA und Berechtigung prüfen; keine Wiederholungsschleife. |
9009 | Befehl nicht gefunden oder Programmstart fehlgeschlagen | Vollständigen Pfad, Installation und Ausführungskontext prüfen. |
Einige Deployment-Systeme stellen -1 als vorzeichenlosen Prozesscode dar. Deshalb wird die Auswertung mit genau dem später verwendeten Wrapper getestet. Unbekannte Codes gelten als Fehler; protokolliert werden Zeitpunkt, Clientversion, Gerätekontext und der Befehl ohne Geheimnisse.
Pilot, Freigabe und Rückweg
Ein Versionswechsel kann aktive VPN-Verbindungen unterbrechen. Die stille Deinstallation und Installation werden daher mit dem konkreten MSI beziehungsweise dessen versionsabhängiger Produkt-ID getestet. Standard-MSI-Codes und SCCLI-Codes bleiben in der Auswertung getrennt.
Der Pilot umfasst jede freizugebende Kombination aus Windows-Architektur, Profiltyp und Authentifizierungsweg. Geprüft werden:
- Signatur, Hash und installierte Zielversion.
- Start von
scvpnund Sophos Connect nach Neustart und Benutzeranmeldung. - erfolgreicher
.pro-Import beziehungsweise erwartete SCCLI-Ausgabe. - Anmeldung, MFA oder SSO und zugewiesene VPN-IP.
- interne DNS-Auflösung sowie ein erlaubtes und ein bewusst gesperrtes Ziel.
- Wiederverbindung nach einem Netzwerkwechsel und nach erneuter Anmeldung.
- Deployment-, MSI- und SCCLI-Codes im zentralen Protokoll.
Erst danach folgen gestaffelte Ringe. Nach jedem Ring vergleicht man Paketversion und Profilbezeichnung mit dem Soll, führt sccli list -d aus und prüft den erwarteten Datenpfad. Ein grüner Clientstatus allein belegt weder DNS noch Berechtigung oder Rückweg.
Bei einer Störung stoppt man die weitere Verteilung und sichert zuerst Zeitpunkt, Codes, Clientversion und Supportdaten. Danach wird die fehlerhafte Version über den freigegebenen Deinstallationsweg entfernt, das vorher gesicherte und weiterhin unterstützte MSI installiert und die dazu passende Profilquelle erneut bereitgestellt. Der vollständige Pilottest bestätigt den Rückweg.
Scheitert auch der Rückweg, wechselt man zur Sophos-Connect-Fehleranalyse für Windows. Firewall-Regeln und Datenpfad prüft man separat mit Firewall-Regel testen, statt Paket oder Profil auf Verdacht zu verändern.