Zum Inhalt springen
Avanet

Sophos Firewall Remote Access unter Linux einrichten

Für Sophos Firewall Remote Access unter Linux verwendet man am einfachsten SSL VPN mit dem normalen OpenVPN-Client. Sophos Connect gibt es für Linux nicht. Die .ovpn-Datei wird im VPN Portal heruntergeladen und entweder im Terminal oder über NetworkManager verwendet.

Die bisher oft genannte IPsec-Alternative mit NetworkManager-strongSwan passt nicht zur aktuellen Sophos-Firewall-Konfiguration: Remote access VPN > IPsec akzeptiert unter SFOS 22 nur IKEv1-Profile, das NetworkManager-strongSwan-Plugin unterstützt aber ausschliesslich IKEv2.

⚠️ Kein inoffizielles „Sophos Connect für Linux“ installieren und das SFOS-Remote-Access-Profil nicht für diese Anleitung auf IKEv2 umstellen. Der folgende OpenVPN-Weg ist der von Sophos dokumentierte Linux-Pfad.

Für andere Endgeräte gibt es eigene Anleitungen: Sophos Connect unter Windows und Sophos Connect unter macOS sowie SSL VPN auf iPhone und iPad und SSL VPN auf Android.

Voraussetzungen

  • Auf der Sophos Firewall ist unter Remote access VPN > SSL VPN eine Remote-Access-SSL-VPN-Policy eingerichtet.
  • Der Benutzer oder seine Gruppe ist dieser Policy zugewiesen.
  • Eine passende Firewall-Regel erlaubt den benötigten Traffic aus der Zone VPN.
  • Unter Administration > Device access ist VPN portal für die benötigte Zone freigegeben. Für einen Zugriff aus dem Internet ist das die Zone WAN; sie sollte wegen der zusätzlichen Angriffsfläche nur freigegeben werden, wenn sie wirklich benötigt und gegen wiederholte Anmeldeversuche geschützt wird.
  • Der Benutzer erreicht das VPN Portal und kann sich anmelden. Der Standardport des Portals ist 443; der tatsächlich konfigurierte Port steht unter Administration > Admin and user settings.
  • Auf dem Linux-System bestehen lokale sudo-Rechte für die Paketinstallation und den OpenVPN-Start.
  • Falls MFA aktiv ist, funktioniert die Anmeldung inklusive Verifizierungscode.

Die Firewall-seitige Konfiguration beschreibt Sophos Firewall SSL VPN Remote Access einrichten. Fehlt im VPN Portal später die .ovpn, hat sie 0 Byte oder enthält sie nur eine Fehlermeldung, führt Sophos Firewall: .ovpn fehlt oder hat 0 Byte durch Policy-, Benutzer-, Zertifikats- und Systemprüfung.

SSL VPN mit OpenVPN einrichten

1. OpenVPN installieren

Die folgenden Paketbefehle gelten für ein lokales Terminal unter Debian oder Ubuntu. Die Abfrage benötigt keine erhöhten Rechte und zeigt, ob das Paket bereits installiert war. Diesen Ausgangszustand sollte man vor der Änderung notieren:

dpkg-query -W -f='${Status}\n' openvpn 2>/dev/null

Eine Ausgabe mit install ok installed bedeutet, dass OpenVPN bereits vorhanden ist. Keine Ausgabe bedeutet in der Regel, dass das Paket fehlt. Danach installiert apt den Client und gegebenenfalls Abhängigkeiten aus den konfigurierten Paketquellen; dafür sind lokale sudo-Rechte und eine aktuelle Paketliste erforderlich:

sudo apt install openvpn

openvpn --version prüft anschliessend als normaler Benutzer, ob das Programm aufrufbar ist. Die erste Zeile sollte die installierte OpenVPN-Version nennen:

openvpn --version

War das Paket vorher nicht installiert, lautet der direkte Rückweg sudo apt remove openvpn. Der Befehl entfernt das Paket wieder, lässt Konfigurationsdateien jedoch normalerweise bestehen; deshalb nur nach dem Trennen eines aktiven Tunnels und nach Prüfung des notierten Ausgangszustands ausführen. War OpenVPN schon vorhanden, gibt es nichts zurückzurollen. Zur Kontrolle der Entfernung die lesende dpkg-query-Abfrage wiederholen.

Andere Distributionen stellen das Paket ebenfalls über ihren Paketmanager bereit; Paketname und Syntax sind dort in der Distributionsdokumentation zu prüfen. Für eine grafische Verwaltung unter GNOME kann zusätzlich das NetworkManager-OpenVPN-Plugin installiert werden. Auch hier zuerst mit dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome 2>/dev/null den bisherigen Paketstatus notieren. Der folgende Debian-/Ubuntu-Befehl benötigt sudo und installiert das Plugin samt fehlenden Abhängigkeiten:

sudo apt install network-manager-openvpn-gnome

Nach der Installation bestätigt dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome den Status install ok installed; gegebenenfalls muss man sich neu anmelden, bevor die grafische Oberfläche das Plugin anbietet. War es vorher nicht vorhanden, entfernt sudo apt remove network-manager-openvpn-gnome das Plugin wieder. Vor dem Entfernen eine aktive, von NetworkManager verwaltete VPN-Verbindung trennen und danach die lesende Abfrage wiederholen, um den früheren Zustand ohne Paket zu bestätigen. Dieses Plugin ist nicht mit network-manager-strongswan zu verwechseln: Es importiert die .ovpn-Datei und verwendet OpenVPN.

2. OpenVPN-Konfiguration herunterladen

  1. Das VPN Portal der Sophos Firewall im Browser öffnen.
  2. Mit dem VPN-Benutzer anmelden.
  3. Unter VPN > VPN configuration auf Download configuration for Windows, macOS, Linux klicken.
  4. Die .ovpn-Datei herunterladen und sicher ablegen.

Die Datei kann eingebettete Zertifikate, einen privaten Schlüssel und benutzerspezifische Verbindungsdaten enthalten. Sie sollte nicht per unverschlüsselter E-Mail oder über öffentliche Ablagen verteilt werden. Eine kompromittierte Datei muss administrativ widerrufen beziehungsweise durch neu ausgestellte Zugangsdaten ersetzt werden; blosses Löschen der lokalen Kopie reicht nicht.

3. Verbindung im Terminal starten

Die nächsten Befehle laufen in einem lokalen Linux-Terminal. <linux-user> muss durch den lokalen Benutzernamen ersetzt werden; der Beispielpfad muss auf die tatsächlich heruntergeladene Datei zeigen. Zuerst liest stat ohne erhöhte Rechte den aktuellen numerischen Dateimodus. Diesen Wert benötigt man, falls die Berechtigungsänderung zurückgenommen werden soll:

stat -c '%a %n' "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
chmod 600 "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
stat -c '%a %n' "/home/<linux-user>/Downloads/sophos-vpn.ovpn"

chmod 600 erlaubt nur dem Dateieigentümer das Lesen und Schreiben; die zweite Abfrage muss den Modus 600 zeigen. Der Befehl benötigt kein sudo, wenn die Datei dem angemeldeten Benutzer gehört. Als Rückweg verwendet man chmod <vorheriger-modus> "/home/<linux-user>/Downloads/sophos-vpn.ovpn" und ersetzt <vorheriger-modus> durch den zuvor notierten Wert. Eine breitere Berechtigung sollte nur wiederhergestellt werden, wenn sie bewusst benötigt wird.

Danach startet der folgende Befehl OpenVPN mit erhöhten Rechten, weil der Client ein Tunnel-Interface sowie temporäre Routen anlegt. Unter Linux übernimmt der direkte OpenVPN-Prozess angebotene DNS-Server nicht allein; dafür braucht das Profil ein geeignetes Up-/Down-Skript oder eine Systemintegration. NetworkManager kann diese DNS-Integration übernehmen:

sudo openvpn --config "/home/<linux-user>/Downloads/sophos-vpn.ovpn"

OpenVPN fragt zuerst nach dem lokalen sudo-Passwort und danach nach den VPN-Zugangsdaten. Bei MFA ist die vom Administrator vorgegebene Eingabeform zu verwenden; je nach Authentifizierung wird der Einmalcode mit dem Passwort kombiniert oder separat abgefragt. Die Meldung Initialization Sequence Completed und das vorhandene Tunnel-Interface sind die Erfolgskriterien. Die Verbindung läuft im Vordergrund. Ctrl+C beendet OpenVPN und ist zugleich der Rückweg: Der Client entfernt das temporäre Tunnel-Interface und die von ihm gesetzten Routen; eine tatsächlich konfigurierte DNS-Integration muss auch ihre temporären DNS-Werte zurücksetzen. Danach mit den Prüfungen unten kontrollieren, dass Tunnel-Interface und VPN-Route verschwunden sind und die normale Namensauflösung wieder gilt.

4. Verbindung in NetworkManager importieren

  1. Netzwerkeinstellungen öffnen.
  2. Eine neue VPN-Verbindung hinzufügen und Import from file wählen.
  3. Die heruntergeladene .ovpn-Datei auswählen.
  4. Benutzername speichern, falls dies zum Betriebsmodell passt.
  5. Verbindung starten und die VPN-Zugangsdaten in der vom Administrator vorgegebenen MFA-Form eingeben.

Der Import legt ein separates NetworkManager-Verbindungsprofil an und kann eingebettete Schlüssel oder Zertifikate daraus übernehmen. Das Löschen der heruntergeladenen .ovpn entfernt dieses Profil daher nicht. Passwörter nicht im Profil speichern, sofern das Betriebsmodell keine geschützte Speicherung ausdrücklich vorsieht. Als Rückweg die VPN-Verbindung trennen, das importierte Profil in den Netzwerkeinstellungen löschen und kontrollieren, dass es in der Verbindungsliste nicht mehr erscheint.

NetworkManager ist im Alltag komfortabler als ein dauerhaft geöffnetes Terminal. Ein unbeaufsichtigter Autostart ist bei interaktiver Anmeldung oder MFA jedoch nicht automatisch möglich. Zugangsdaten sollten nicht nur für einen Autostart in einer ungeschützten Datei hinterlegt werden.

Warum NetworkManager-strongSwan hier nicht passt

Sophos erlaubt für Remote access VPN > IPsec unter SFOS 22 nur IKEv1-Profile, bei denen Dead Peer Detection deaktiviert oder auf Disconnect gesetzt ist. Das NetworkManager-strongSwan-Plugin baut dagegen nur IKEv2-Verbindungen auf. Die beiden Enden können mit dem bisher beschriebenen Ablauf deshalb keinen Tunnel aushandeln.

Die strongSwan-Software selbst besitzt zwar weiterhin IKEv1-Funktionen, das ist aber nicht derselbe GUI-Pfad wie das NetworkManager-Plugin. Eine manuelle IKEv1-Konfiguration benötigt passende Parameter, Authentifizierung, Traffic Selector und einen getesteten Clientaufbau. Ohne belastbare Zielkonfiguration sollte man dafür kein generisches Beispiel aus dem Internet übernehmen.

Sophos nennt für Linux-IPsec einen kompatiblen Drittanbieter-Client als Möglichkeit. Die exportierte .tgb-Datei enthält jedoch nicht alle erweiterten Einstellungen der Sophos-Connect-Konfiguration und lässt sich nicht einfach als IKEv2-Profil in NetworkManager importieren. Wenn IPsec zwingend ist, muss der gewählte Client den IKEv1-Aufbau der Firewall ausdrücklich unterstützen und in der eigenen Umgebung getestet werden. Für die grundsätzliche Auswahl hilft Sophos Connect oder SSL VPN: Welche Remote-Access-Lösung passt?.

Verbindung prüfen

Nach dem Verbindungsaufbau sollte nicht nur der Clientstatus geprüft werden. Entscheidend ist, ob Route, DNS und Firewall-Regel zum gewünschten Ziel passen.

Diese Befehle laufen als normaler Benutzer in einem lokalen Linux-Terminal und sind nur lesend; sudo und ein Rückweg sind nicht nötig. 10.20.30.40 ist ein privates Beispiel und muss durch die IP-Adresse eines erlaubten internen Ziels ersetzt werden. intranet.example.net ist ein reservierter Beispielname und muss durch einen internen FQDN ersetzt werden, den der VPN-DNS auflösen soll:

ip addr show
ip route get 10.20.30.40
getent hosts intranet.example.net

Erwartete Ergebnisse:

  • OpenVPN meldet eine erfolgreiche Verbindung und ein Tunnel-Interface ist vorhanden.
  • Der Route-Check zeigt für das interne Ziel den VPN-Pfad statt des normalen Internet-Gateways.
  • Der DNS-Check liefert die interne Adresse, sofern interne DNS-Server verteilt und vom gewählten Linux-Client integriert wurden.
  • Ein erlaubter interner Dienst ist erreichbar; ein absichtlich nicht erlaubtes Ziel bleibt blockiert.
  • Im Log Viewer der Firewall erscheint der Testtraffic aus der Zone VPN mit der erwarteten Regel.
  • Nach einer neuen Anmeldung verlangt die Authentifizierung erneut den vorgesehenen MFA-Nachweis.

Wenn der Tunnel steht, aber kein Traffic fliesst, hilft Firewall-Regel testen mit Log Viewer, Policy Test und Packet Capture.

Typische Fehler

  • Keine Linux-Konfiguration im VPN Portal: Benutzer oder Gruppe ist keiner Remote-Access-SSL-VPN-Policy zugewiesen. Policy und Portal-Anmeldung prüfen.
  • OpenVPN meldet einen Authentifizierungsfehler: Benutzername, Passwort, MFA-Ablauf, Gruppenmitgliedschaft und ausgewählte Authentifizierungsmethode prüfen.
  • Tunnel steht, interne Ziele bleiben unerreichbar: Erlaubte Netzwerke der SSL-VPN-Policy, Firewall-Regel von VPN zur Zielzone und Route zum internen Netz prüfen.
  • Die VPN-Route fehlt oder zeigt ins lokale WLAN: SSL-VPN-Lease-Netz und interne Zielnetze dürfen sich nicht mit lokalen Netzen oder häufigen Heimnetzen überschneiden. Die Adressbereiche in SSL VPN global settings prüfen; nach einer Korrektur den Tunnel trennen und neu aufbauen.
  • IP-Adressen funktionieren, interne Namen nicht: Verteilte DNS-Server, Suchdomain und Erreichbarkeit des internen DNS-Servers kontrollieren.
  • Full Tunnel verbindet, Internetzugriff fällt aus: Bei Use as default gateway zusätzlich die Firewall-Regel von VPN zum Internet, passende Schutzrichtlinien und eine SNAT-/Masquerading-Regel für ##ALL_SSLVPN_RW beziehungsweise ##ALL_SSLVPN_RW6 prüfen.
  • Terminal geschlossen und Verbindung verloren: Das ist beim direkten openvpn --config-Aufruf normal. Für die grafische Verwaltung die .ovpn in NetworkManager importieren.
  • NetworkManager bietet keinen Dateiimport an: Das NetworkManager-OpenVPN-Plugin fehlt oder der NetworkManager-Dienst hat das neu installierte Plugin noch nicht geladen.
  • Alte .ovpn-Datei funktioniert nicht mehr: Nach Änderungen an SSL-VPN-Protokoll, SSL-Serverzertifikat beziehungsweise CA, Override hostname oder SSL-VPN-Port die Datei erneut herunterladen.
  • NetworkManager-strongSwan verbindet nicht: Nicht auf IKEv2 umstellen. Das Plugin ist mit dem IKEv1-Remote-Access-Profil der Sophos Firewall nicht kompatibel.
  • Angeblicher Sophos-Connect-Client für Linux gefunden: Nicht ungeprüft installieren. Sophos stellt keinen offiziellen Linux-Client bereit.

FAQ

Gibt es einen offiziellen Sophos-Connect-Client für Linux?

Nein. Sophos Connect ist für Windows und macOS verfügbar. Unter Linux ist SSL VPN mit einem OpenVPN-Client der von Sophos dokumentierte Weg.

Welche Datei muss man im VPN Portal für Linux herunterladen?

Unter VPN > VPN configuration verwendet man Download configuration for Windows, macOS, Linux. Die .ovpn-Datei erscheint nur, wenn dem Benutzer eine Remote-Access-SSL-VPN-Policy zugewiesen ist.

Warum trennt sich die VPN-Verbindung beim Schliessen des Terminals?

Der direkte sudo openvpn --config-Aufruf läuft im Vordergrund des Terminals. Für eine grafisch verwaltete Verbindung kann die .ovpn-Datei in NetworkManager importiert werden.

Kann man NetworkManager für Sophos Firewall Remote Access verwenden?

Ja, mit dem NetworkManager-OpenVPN-Plugin und der .ovpn-Datei. Das NetworkManager-strongSwan-Plugin ist dagegen IKEv2-only und passt nicht zum IKEv1-Remote-Access-IPsec-Profil von SFOS 22.

Muss die .ovpn-Datei nach einer Firewall-Änderung neu heruntergeladen werden?

Ja, wenn sich SSL-VPN-Protokoll, SSL-Serverzertifikat beziehungsweise CA, Override hostname oder SSL-VPN-Port geändert haben. Eine alte Datei kann weiterhin veraltete Verbindungsparameter enthalten.