Anleitung zur Einrichtung von VPN unter Linux

COVID-19: Erweiterte VPN-Infrastruktur

Um die durch HomeOffice-bedingte Last zu dem bestehenden VPN-Zugangsserver vpn-sec.htw-dresden.de abzufangen, wurden zusätzlich folgende Systeme bereitgestellt:

vpn-temp1.rz.htw-dresden.de
vpn-temp2.rz.htw-dresden.de
vpn-temp3.rz.htw-dresden.de

Bitte benutzen Sie diese bevorzugt gegenüber vpn-sec.htw-dresden.de als Zugangsserver in AnyConnect.

Generell empfehlen wir das Profil 'HTW-vpn-split' auszuwählen, egal ob auf vpn-sec.htw-dresden.de oder auf den neuen Zugangsservern! Dies entlastet einerseits die Zugangsserver und erlaubt Ihnen andererseits ungebremsten/ungetunnelten allgemeinen Internet-Zugang.

Der an der HTW eingesetzte VPN-Client ist "Cisco AnyConnect".

Sie können Cisco AnyConnect für Linux (nur 64bit) im internen Bereich nach erfolgreicher Authentifizierung mittels HTW-Login und zugehörigem Passwort herunterladen.

Problem: 
AnyConnect ab Version 4.5 funktioniert nicht mehr. Vorher hat jedoch alles funktioniert. Der Client zeigt nach dem Start jetzt nur noch ein leeres Fenster ohne Bedienelemente oder startet gar nicht erst. Evtl. brach bereits ein automatische Update mit einer Fehlermeldung ab.

Lösung:
Ab Version 4.5 benötigt AnyConnect zusätzlich die Bibliothek "libnm-glib.so.4" auf dem System um zu funktionieren. Der Name des entsprechenden Pakets lautet "libnm-glib4" (unter Debian, Ubuntu und SuSE-Linux) oder "NetworkManager-glib" (unter Fedora). Installieren Sie das entsprechende Paket und starten den Rechner neu. Danach sollte AnyConnect wieder wie gewohnt funktionieren. Das hilft auch nach dem fehlgeschlagenen automatischem Update. Dabei wurde AnyConnect korrekt aktualisiert und konnte aufgrund des fehlenden Paketes nur nicht neu gestartet werden.

Einmalige Installation

Für den VPN-Zugang muss zunächst einmalig der VPN-Client "Cisco AnyConnect" installiert werden. Die Screenshots dieser Anleitung wurden mit Ubuntu Linux 16.04 erstellt. Allerdings lässt sich die Anleitung auch auf andere Linux-Distributionen übertragen. Für die Installation wird die Verwendung der Kommandozeile notwendig. Stellen Sie außerdem sicher, dass Sie über Administratorrechte auf dem entsprechenden System verfügen, da diese während der Installation benötigt werden.

Als Erstes laden Sie von der VPN-Downloads-Seite den AnyConnect-Client-Installer für Linux. Danach starten Sie Ihr Programm für die Kommandozeileneingabe, unter Ubuntu z.B. "Terminal".

Achtung!

Cisco AnyConnect für Linux nutzt den Zertifikatsspeicher aus dem Firefox-Profil des aktuell angemeldeten Nutzers, um die Gültigkeit von Serverzertifikaten zu überprüfen. Es ist daher notwendig, dass Firefox auf Ihrem System installiert ist und mind. ein Mal vor dem Verwenden von AnyConnect gestartet wurde, damit ein Firefox-Profil für den aktuellen Nutzer angelegt wird. Andernfalls erhalten Sie beim Starten der VPN-Verbindung die Fehlermeldung, dass der Server nicht vertrauenswürdig ist.

Der AnyConnect-Client unterstützt nur 64-Bit-System. Geben Sie daher auf der Kommandozeile zunächst

  • uname -m

ein, und überprüfen ob die Ausgabe "x86_64" entspricht. Andernfalls kann AnyConnect nicht eingesetzt werden.

Wechseln Sie dann in den Ordner der Downloads, unter Ubuntu z.B. mit

  • cd Downloads

Starten Sie dann den Installer mit Root-Rechten, unter Ubuntu z.B. mit:

  • sudo bash anyconnect-linux64-4.3.03086-web-deploy-k9.sh

Die Version im Dateinamen der heruntergeladenen Datei muss nicht der abgebildeten Version entsprechen - die ist entsprechend zu beachten.

AnyConnect wird automatisch nach /opt/cisco/anyconnect installiert. Bei korrekter Installation ist die letzte Meldung "Done!".

AnyConnect benötigt zum Funktionieren Systembibliotheken, von denen nicht unbedingt alle bereits auf Ihrem System installiert sind. Mit dem Aufruf von

  • ldd /opt/cisco/anyconnect/bin/vpnui | grep "not found"

können Sie sich fehlenden Bibliotheken anzeigen lassen.

Bei üblichen Anwender-Distributionen fehlt nur die Bibliothek libpangox-1.0.0 und libnm-glib4. Unter Ubuntu können Sie diese Pakete nachinstallieren mit:

  • sudo apt install libpangox-1.0.0 libnm-glib4

Bei anderen Distributionen kann der Name der Pakete anders lauten. Bei Fedora/Centos/RHEL ist es z.B. "pangox-compat" und "NetworkManager-glib".

Werden noch andere Pakete mit Bibliotheken benötigt, müssen sie diese eigenständig nachinstallieren. Die Ausgabe von "ldd" hilft, deren Paketnamen zu finden.

Unter Debian besteht zusätzlich noch das Problem, das die Bibliothek "libnssckbi.so" zur Laufzeit nicht gefunden werden kann. Führen Sie als root (Administrator) daher zusätzlich folgende zwei Befehle aus:

  • cd /usr/lib/x86_64-linux-gnu
  • ln -s nss/libnssckbi.so

Das legt einen symbolischen Link zu der Datei "/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so" an die Stelle "/usr/lib/x86_64-linux-gnu/libnssckbi.so", wo AnyConnect u.a. nach der Datei sucht. Ohne die Datei warnt AnyConnect wie oben erwähnt davor, dass der VPN-Server nicht vertrauenswürdig sei.

Sobald alle benötigten Bibliotheken installiert sind, können Sie zum Test AnyConnect direkt starten mit dem Aufruf von:

  • /opt/cisco/anyconnect/bin/vpnui

AnyConnect sollte dabei das abgebildete Fenster öffnen.

VPN-Verbindung herstellen

Nach der einmaligen Installation des Cisco AnyConnect Clients, können Sie wie nachfolgend beschrieben eine VPN-Verbindung starten. 
Wählen Sie im Programmstarter im Suchfeld durch Eingabe von "AnyConnect" den Eintrag "Cisco AnyConnect Secure Mobility Client" aus und starten diesen.

In dem sich öffnenden Fenster geben Sie als Server-Adresse "vpn-sec.htw-dresden.de" ein (falls dies noch nicht in dem entsprechenden Feld stehen sollte) und klicken auf "Verbinden" (bzw. "Connect"). Evtl. bezieht und installiert AnyConnect vor dem nächsten Schritt ein Software-Update, weshalb es hier hin und wieder zu einer kurzen Verzögerung kommen kann.

In dem nächsten Fenster wählen sie das gewünschte VPN-Gruppenprofil (üblicherweise "HTW-vpn-split", siehe VPN-Startseite) und geben Ihr HTW-Login und das dazugehörige Password ein und klicken auf "OK". Danach baut sich die VPN-Verbindung auf und AnyConnect minimiert sich.

VPN-Verbindung beenden

Wenn Sie die VPN-Verbindung trennen möchten, klicken Sie auf das AnyConnect-Symbol in der Programmleiste und wechseln dann in das Tab "Verbindung" (bzw. "Connection"). Dort klicken Sie dann auf "Trennen" (bzw. "Disconnect"). Danach können Sie die Anwendung schließen.