Zum Inhalt springen
Avanet

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.

CodeDokumentierte BedeutungSichere Reaktion
0Aufruf erfolgreichGewünschten Zustand zusätzlich mit list -d prüfen.
-1Ungültige Option oder leerer Benutzername beziehungsweise leeres PasswortSyntax und Eingaben korrigieren; keine Geheimnisse protokollieren.
1Ungültige oder nicht parsbare EingabeHilfe und Argumente prüfen.
2Datei fehlt oder Passwort beziehungsweise Zertifikat ist leerPfad, Ausführungskonto und Eingaben prüfen.
5Datei kann nicht gelesen oder geöffnet werdenDateirechte, Sperre und Inhalt prüfen.
14Antwort kann nicht geparst werdenClientzustand und Version erfassen; nicht blind wiederholen.
101Anfrage kann nicht an den Server gesendet werdenDienst scvpn und lokale Clientkommunikation prüfen.
120Server liefert keine DatenDienstzustand protokollieren und kontrolliert erneut prüfen.
1016Benutzeranmeldedaten erforderlichUnbeaufsichtigten Schritt beenden oder interaktive Anmeldung vorsehen.
1024Verbindung nicht gefundenExakten Namen mit list -d ermitteln.
1101Benutzerauthentifizierung fehlgeschlagenZugangsdaten, MFA und Berechtigung prüfen; keine Wiederholungsschleife.
9009Befehl nicht gefunden oder Programmstart fehlgeschlagenVollstä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:

  1. Signatur, Hash und installierte Zielversion.
  2. Start von scvpn und Sophos Connect nach Neustart und Benutzeranmeldung.
  3. erfolgreicher .pro-Import beziehungsweise erwartete SCCLI-Ausgabe.
  4. Anmeldung, MFA oder SSO und zugewiesene VPN-IP.
  5. interne DNS-Auflösung sowie ein erlaubtes und ein bewusst gesperrtes Ziel.
  6. Wiederverbindung nach einem Netzwerkwechsel und nach erneuter Anmeldung.
  7. 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.