Auch wenn es von Sophos nicht unbedingt vorgesehen ist, Site-to-Site-SSL-Verbindungen zwischen einer Sophos UTM und einem regulären SSL-VPN Client wie openVPN aufbauen zu lassen, ist dies dennoch möglich. Dieser Artikel zeigt zunächst, wie die neue Verbindung seitens der Sophos UTM und anschließend auf einem Linux-Client mit dem openVPN-Paket eingerichtet wird. Für die Beispiele in diesem Artikel wird auf der Seite des Servers Sophos UTM 9.0 und auf der Seite des Clients eine Debian-basierende Linuxdistribution eingesetzt.
Sophos-UTM als VPN-Server
Seitens der Sophos UTM gilt es zunächst, eine neue SSL-VPN-Verbindung einzurichten, welche wir im späteren Verlauf auf unserem Linux-Client konfigurieren.
Kryptographische Einstellungen prüfen
Wir öffnen im Hauptmenü der UTM den Punkt „Site-to-Site-VPN“ und anschließend wählen wir den Unterpunkt „SSL„.
Um die Konfiguration des VPN-Clients an die kryptographischen Gegebenheiten der UTM anzupassen, prüfen wir nun, welche auf dieser Festgelegt wurden. Dazu öffnen wir den Reiter „Erweitert“ und legen dort die gewünschten Einstellungen fest. Für unsere Zwecke reicht eine Verschlüsselungsstärke von 256 Bit mit dem Algorithmus AES-CBC.
Verbindungseinstellungen setzen/prüfen
Im Registerreiter „Einstellungen“ legen wir unter anderem fest, auf welcher Netzwerkschnittstelle und auf welchem Port eingehende Verbindungen seitens der VPN-Clients entgegengenommen werden. Zudem definieren wir hier den Hostnamen des VPN-Servers. Diese Angabe wird im späteren Verlauf der Einrichtung noch relevant.
Neuen Client einrichten
Wir kehren zum Punkt „Verbindungen“ zurück und in diesem Bereich nutzen wir die Schaltfläche „Neue SSL-Verbindung…„
Hier wählen wir folgende Einstellungen:
Als Verbindungstyp „Server„
Der Verbindungsname ist frei wählbar und dient nur der Übersicht
Lokale Netze: Auf welche Netze „hinter“ der UTM soll der VPN-Client künftig Zugriff erhalten?
Entfernte Netze: Welche (gerouteten) Netze befinden sich „hinter“ dem VPN-Client?
Der Punkt „Automatische Firewallregeln“ nimmt die Administration der hierfür notwendigen Einträge der Firewall ab
Nachdem die Verbindung gespeichert wurde, erscheint diese nun in der SSL-VPN-Übersichtsseite. Hier ist darauf zu achten, dass diese aktiviert ist. Dies ist wie im Bild am grünen Schieber erkennbar. Anschließend laden wir die Konfigurationsdatei mit einem Klick auf „Download“ herunter, welche eigentlich für das Hochladen an einer anderen Sophos UTM gedacht ist.
Die Möglichkeit, die herunterzuladende Datei zu verschlüsseln, nutzen wir für unsere weitere Verwendung auf keinen Fall.
Linux als VPN-Client
Die Konfiguration seitens der UTM ist nun abgeschlossen und die UTM erwartet den Verbindungsaufbau unseres Clients. Daher widmen wir uns nun dessen Einrichtung.
Zertifikate, Schlüssel und Anmeldedaten anlegen
Während der Einrichtung des VPN-Servers luden wir eine Konfigurationsdatei von der Sophos UTM herunter, welche wir nun in einem Editor (hierfür empfehle ich Notepad++) öffnen. Diese Konfigurationsdatei enthält alle wichtigen Angaben und Informationen, welche wir für die Einrichtung des openVPN-Clients benötigen. Zu beachten ist dabei folgende Reihenfolge:
Das Benutzerzertifikat
Das CA-Zertifikat des VPN-Servers
Der private Benutzerschlüssel
Der Benutzername
Das Benutzerpasswort
Diese Angaben extrahieren wir aus dieser Konfigurationsdatei und fügen die Inhalte wie folgt beschrieben ein.
Zunächst installieren wir bei unserem Linux-Client alle benötigten Pakete, wie hier an einem Debian-System gezeigt:
Anschließend wechseln wir in das Arbeitsverzeichnis von openVPN
cd /etc/openvpn/
und erstellen bzw. editieren die Datei „ersterclient.user.crt„:
nano ersterclient.user.crt
und fügen den folgenden Abschnitt der .apc Datei ein. (erstes Vorkommen von BEGIN CERTIFICATE!). Dieser Abschnitt sollte etwa bei Zeile 79 der .apc-Konfigurationsdatei beginnen.
Nach dem Einfügen speichern wir die neue Datei (im Beispiel von nano mit STRG+O, STRG+X). Zu beachten ist, dass die beiden oben angegebenen Zeilen ebenfalls mit kopiert und eingefügt werden.
Nun erstellen wir in gleicher Weise die Datei „ersterclient.ca.crt“ und fügen den nächsten Abschnitt wie beschrieben ein (Zweites Vorkommen von BEGIN CERTIFICATE!):
Letztendlich legen wir noch eine Datei an, welche unseren Nutzernamen und das Passwort beinhaltet. Diese Daten befinden sich ebenfalls, auch wenn schwerer zu finden, in der .apc-Konfigurationsdatei. Daher habe ich diese Bereiche im folgenden Screenshot markiert:
Der erste markierte Bereich stellt den Nutzernamen dar, der zweite das dazugehörige Passwort. Diese beiden Daten übertragen wir nun zu unserem openVPN-Client:
mkdir login
nano login/ersterclient.login
In die erste Zeile fügen wir den Nutzernamen ein, in die zweite das Passwort:
openVPN-Konfiguration erstellen
Da nun alle Vorbereitungen getroffen und die notwendigen Informationen auf den Client übertragen sind, wird es nun Zeit, die Konfigurationsdatei für den openVPN-Client zu erstellen. Dazu erstellen wir eine leere Datei, die zwingend mit „.conf“ enden muss:
nano ersterclient.conf
und fügen beispielhaft diese Konfiguration ein:
client
dev tun
proto tcp
remote 1.2.3.4 1194
tls-remote "/C=DE/L=Baerstadt/O=Stadtverwaltung/CN=vpnsrv.example.com/emailAddress=admin@example.com"
##############################################################
route remote_host 255.255.255.255 net_gateway
resolv-retry infinite
nobind
persist-key
persist-tun
ca ersterclient.ca.crt
cert ersterclient.user.crt
key ersterclient.user.key
auth-user-pass login/ersterclient.login
cipher AES-256-CBC
auth SHA1
comp-lzo no
route-delay 4
verb 3
reneg-sec 0
Hierbei ist folgendes zu beachten:
Die IP des Beispiels (1.2.3.4) muss durch die IP des eigenen VPN-Servers ersetzt werden
Der Port 1194 sowie die verwendeten Algorithmen müssen der Konfiguration der Sophos UTM entsprechen
Die Zeile „tls-remote“ setzt sich aus den Informationen der .apc-Konfigurationsdatei (~Zeile 269, vorletzte Zeile) zusammen
Die angegebenen Dateinamen müssen mit den aus den vorherigen Punkten dieses Artikels erstellten Dateinamen übereinstimmen
Update
Ab sofort wird die Option tls-remote nicht mehr unterstützt.
Die korrekte Anweisung lautet nun:
verify-x509-name „C=de, L=Baerstadt, O=Stadtverwaltung, CN=vpnsrv.example.com“ subject
Verbindung starten
Jetzt starten wir den openVPN-Client mit dem init-script:
/etc/init.d/openvpn start
und achten auf ggf. auftretende Fehler oder im Optimalfall auf die grüne Bestätigung, dass der Client ordnungsgemäß gestartet wurde.
Wir prüfen mit
ifconfig
ob die neue Verbindung als Interface „tun0“ aufgeführt wird:
Verbindung testen
Sollte der Client gestartet und ein neues Interface hinzugefügt worden sein, ist es an der Zeit, die Verbindung zu prüfen.
Verbindung am Linux-Client testen
Am Linux-Client testen wir die Verbindung am einfachsten, indem wir die von „ifconfig“ aufgeführte VPN-IP-Adresse des Servers (P-z-P) pingen.
Verbindungsübersicht bei Sophos UTM
Im Hauptmenü der UTM navigieren wir zum Hauptpunkt „Site-to-Site-VPN“ und erhalten eine Übersicht aller Verbindungen mit dem jeweiligen Verbindungsstatus.
Wurde die Verbindung erfolgreich aufgebaut, ist im Übersichtsmenü der SSL-Verbindungen beispielhaft folgende Ausgabe zu sehen:
Tunnel zwischen openVPN-Client und Astaro (Sophos UTM)
Auch wenn es von Sophos nicht unbedingt vorgesehen ist, Site-to-Site-SSL-Verbindungen zwischen einer Sophos UTM und einem regulären SSL-VPN Client wie openVPN aufbauen zu lassen, ist dies dennoch möglich. Dieser Artikel zeigt zunächst, wie die neue Verbindung seitens der Sophos UTM und anschließend auf einem Linux-Client mit dem openVPN-Paket eingerichtet wird. Für die Beispiele in diesem Artikel wird auf der Seite des Servers Sophos UTM 9.0 und auf der Seite des Clients eine Debian-basierende Linuxdistribution eingesetzt.
Sophos-UTM als VPN-Server
Seitens der Sophos UTM gilt es zunächst, eine neue SSL-VPN-Verbindung einzurichten, welche wir im späteren Verlauf auf unserem Linux-Client konfigurieren.
Kryptographische Einstellungen prüfen
Verbindungseinstellungen setzen/prüfen
Neuen Client einrichten
Linux als VPN-Client
Die Konfiguration seitens der UTM ist nun abgeschlossen und die UTM erwartet den Verbindungsaufbau unseres Clients. Daher widmen wir uns nun dessen Einrichtung.
Zertifikate, Schlüssel und Anmeldedaten anlegen
Während der Einrichtung des VPN-Servers luden wir eine Konfigurationsdatei von der Sophos UTM herunter, welche wir nun in einem Editor (hierfür empfehle ich Notepad++) öffnen. Diese Konfigurationsdatei enthält alle wichtigen Angaben und Informationen, welche wir für die Einrichtung des openVPN-Clients benötigen. Zu beachten ist dabei folgende Reihenfolge:
Diese Angaben extrahieren wir aus dieser Konfigurationsdatei und fügen die Inhalte wie folgt beschrieben ein.
Zunächst installieren wir bei unserem Linux-Client alle benötigten Pakete, wie hier an einem Debian-System gezeigt:
Anschließend wechseln wir in das Arbeitsverzeichnis von openVPN
und erstellen bzw. editieren die Datei „ersterclient.user.crt„:
und fügen den folgenden Abschnitt der .apc Datei ein. (erstes Vorkommen von BEGIN CERTIFICATE!). Dieser Abschnitt sollte etwa bei Zeile 79 der .apc-Konfigurationsdatei beginnen.
Nach dem Einfügen speichern wir die neue Datei (im Beispiel von nano mit STRG+O, STRG+X). Zu beachten ist, dass die beiden oben angegebenen Zeilen ebenfalls mit kopiert und eingefügt werden.
Nun erstellen wir in gleicher Weise die Datei „ersterclient.ca.crt“ und fügen den nächsten Abschnitt wie beschrieben ein (Zweites Vorkommen von BEGIN CERTIFICATE!):
Nun folgt die Datei „ersterclient.user.key„:
Zu kopierender Abschnitt aus der Konfigurationsdatei:
Letztendlich legen wir noch eine Datei an, welche unseren Nutzernamen und das Passwort beinhaltet. Diese Daten befinden sich ebenfalls, auch wenn schwerer zu finden, in der .apc-Konfigurationsdatei. Daher habe ich diese Bereiche im folgenden Screenshot markiert:
Der erste markierte Bereich stellt den Nutzernamen dar, der zweite das dazugehörige Passwort. Diese beiden Daten übertragen wir nun zu unserem openVPN-Client:
In die erste Zeile fügen wir den Nutzernamen ein, in die zweite das Passwort:
openVPN-Konfiguration erstellen
Da nun alle Vorbereitungen getroffen und die notwendigen Informationen auf den Client übertragen sind, wird es nun Zeit, die Konfigurationsdatei für den openVPN-Client zu erstellen. Dazu erstellen wir eine leere Datei, die zwingend mit „.conf“ enden muss:
und fügen beispielhaft diese Konfiguration ein:
Hierbei ist folgendes zu beachten:
Ab sofort wird die Option tls-remote nicht mehr unterstützt.
Die korrekte Anweisung lautet nun:
verify-x509-name „C=de, L=Baerstadt, O=Stadtverwaltung, CN=vpnsrv.example.com“ subject
Verbindung starten
Jetzt starten wir den openVPN-Client mit dem init-script:
und achten auf ggf. auftretende Fehler oder im Optimalfall auf die grüne Bestätigung, dass der Client ordnungsgemäß gestartet wurde.
Wir prüfen mit
ob die neue Verbindung als Interface „tun0“ aufgeführt wird:
Verbindung testen
Sollte der Client gestartet und ein neues Interface hinzugefügt worden sein, ist es an der Zeit, die Verbindung zu prüfen.
Verbindung am Linux-Client testen
Am Linux-Client testen wir die Verbindung am einfachsten, indem wir die von „ifconfig“ aufgeführte VPN-IP-Adresse des Servers (P-z-P) pingen.
Verbindungsübersicht bei Sophos UTM
Wurde die Verbindung erfolgreich aufgebaut, ist im Übersichtsmenü der SSL-Verbindungen beispielhaft folgende Ausgabe zu sehen:
Verwandte Beiträge
Die Sophos UTM, früher auch als Astaro Security Gateway bekannt, bietet uns die Möglichkeit, für…
Gelegentlich kommt es vor, dass beim Versuch, den vSphere-Client mit einem ESXi-Server zu verbinden mit…
Wer weder Sixxs noch Hurrican Electric traut oder mag, hat die Möglichkeit, seinen eigenen IPv6-Tunnel…
Kann man einen V-Server oder einen dedizierten Server in einem Rechenzentrum sein Eigen nennen, bietet…
Hierzulande ist es leider an der Tagesordnung, Mobilfunkkunden eine "Flatrate" zu verkaufen, die eigentlich nur…