VPN zu Cisco-AnyConnect mit Linux

OpenConnect am Beispiel Ubuntu

Für Linux stellt Cisco auch einen Software-Client AnyConnect her. Wir empfehlen stattdessen den Einsatz der Open-Source-Software OpenConnect, da diese in den meisten Distributionen bereits mitgeliefert wird. Dadurch ist nicht nur die Installation und das Update einfach, meist ist die Integration in die Konfiguration auch gleich gegeben.

So ist es zumindest unter Ubuntu, auch Derivaten wie Linux-Mint, mit dem standardmäßigen NetworkManager. Unter RPM-basierten Distributionen wie Fedora sieht es ähnlich aus, nur die Installation der Pakete funktioniert etwas anders. Eine Konfiguration ohne NetworkManager beschreiben wir hier nicht.

Wie im Folgenden gezeigt, können Sie das VPN-Passwort abspeichern, was bei AnyConnect nicht möglich ist. Aus Sicherheitssicht ist das okay, wenn Sie einerseits mit einer Festplattenverschlüsselung arbeiten und andererseits das VPN-Passwort wie empfohlen deutlich unterschiedlich von Ihren anderen Passwörtern wählen.

Grafische Einrichtung

Wie genau die Fenster aussehen, hängt von der gewählten Oberfläche ab. Die folgenden Screenshots sind mit Linux-Mint 20.1 aufgenommen.

Software-Paket-Installation

Die Installation der benötigten Software-Pakete erfolgt mit der Paketverwaltung der Distribution, hier z.B. mit Synaptic. Dafür werden Administrationsrechte („root“) benötigt.

Öffnen der Paketverwaltung

Starten Sie die Synaptic-Paketverwaltung über das Menü, ggf. über die Suche dort oder im Bereich der Systemverwaltung.

Paket zur Installation auswählen

Wählen Sie das Paket network-manager-openconnect-gnome aus und „markieren“ Sie es für die Installation. Sie werden daraufhin gefragt, ob Sie auch weitere Pakete, die dafür benötigt werden, ebenfalls installieren wollen: das müssen Sie bestätigen, das sind notwendige Voraussetzungen / Abhängigkeiten der OpenConnect-Software.

Installation auslösen

Lösen Sie dann die eigentliche Installation der Pakete aus, indem Sie die eben erfolgte Änderung in der Auswahl („mark“) nun anwenden („apply“).
Sie können danach Synaptic schließen.

Einrichtung und Aufruf

Die VPN-Verbindung muss dann konfiguriert werden, bevor die Software über die Aktivierung der Verbindung genutzt werden kann. Diese Schritte können Sie als normaler Nutzer durchführen, root-Administrationsrechte sind nur bei Konfiguration für alle Nutzer nötig.

Öffnen der Netzwerkeinstellungen

Sie können durch Linksklick auf das Verbindungssymbol ein Menü aufklappen und dort die Netzwerkeinstellungen aufrufen.

Zufügen einer Verbindung

Sie sehen dann die Liste der konfigurierten Verbindungen. Über den Knopf mit dem „+“ müssen Sie nun eine weitere Verbindung zufügen.
 

Verbindungstyp wählen

Beim Zufügen werden Sie nach dem gewünschten Verbindungstyp gefragt. Sie wollen ein VPN (Virual Private Network) zufügen, da genauer ein VPN vom Type Openconnect.
(Cisco-Anyconnect ist nur einer der möglichen kompatiblen VPN-Servertypen dabei).

Verbindungsparameter eingeben

Nun können Sie die Verbindungsparameter eingeben:

  • Geben Sie der neuen Verbindung einen Namen, z.B. „ELKH-Kirchennetz“
  • Eigentlich benötigen Sie als technische Daten zwar nur die Angabe der Serveradresse, die hier als Gateway bezeichnet wird (vpn-server.elkh.de),
  • aber aus Sicherheitsgründen sollten Sie unbedingt das CA-Zertifikat auswählen. Dabei öffnet sich eine Dateiauswahl, wählen Sie die Datei /etc/ssl/certs/Comodo_AAA_Services_root.pem. In dieser Datei ist das Zertifikat der Root-CA „AAA Certificate Services“ der „Comodo CA Limited“, manchmal sehen Sie auch diesen Namen in einer Auswahl.
  • Als zusätzliche Absicherung können Sie den Nutzer auch vom leichten Überspringen ungültiger Zertifitkate abhalten.
  • Weitere Einstellungen unter den Reitern für IPv4 oder IPv6 benötigen Sie nicht, diese Parameter werden bei einer Verbindung automatisch vom Server gezogen.

Speichern Sie die Angaben durch Klicken auf den Knopf „Add“ ab.

Abschluss der Netzwerkeinstellungen

Danach sollten Sie die neue VPN-Verbindung in der Liste der definierten Verbindungen sehen.

(Wenn Sie später die VPN-Verbindung überarbeiten, Einstellungen ändern wollen, können Sie diese aus der Liste auswählen und das Zahnrad-Symbol anklicken.)

Verlassen Sie nun die Netzwerkeinstellungen

Verbindung aufbauen

Starten Sie von nun an die VPN-Verbindung durch Klick auf das Verbindungssymbol in der Task-Leiste und Auswahl der zuvor definierten Verbindung.

Zugangsdaten eingeben

Beim ersten Aufruf werden Sie nach Ihren Zugangsdaten bestehend aus einer Nutzerkennung und einem Passwort gefragt. Bei späteren Neuverbindungen wird Ihnen mindestens der Benutzername vorausgefüllt.
Durch Klick auf den Knopf „Login“ übermitteln Sie die Zugangsdaten an den Server und danach sollte die eigentlich Verbindung ins Kirchennetz aufgebaut werden.

Verbindung beenden

Wieder durch Klick auf das Netzwerksymbol in der Task-Leiste können Sie eine VPN-Verbindung auch wieder beenden (hier durch Betätigung des Schiebschalters).

Einrichtung über Kommandozeile

Einrichtung über Kommandozeile

Öffnen Sie ein Terminal. Werden Sie dort root, z.B. über sudo -s und geben Sie folgende Befehle ein (# sind Kommentare, auch auf der Kommandozeile), wobei Sie BENUTZERNAME (2x) und PASSWORT (bzw. dort ein Dummy lassen, damit das Passwort nicht in der Bash-History erscheint, wird dann bei erster Nutzung abgefragt) mit Ihren Zugangsdaten ersetzen müssen:

# Installieren der notwendigen Pakete
apt install network-manager-openconnect-gnome
# Konfigurieren unseres VPNs
# ggf. vorher altes loeschen mit
# nmcli -w 1 connection delete "ELKH-Kirchennetz"
nmcli -w 1 connection add ifname '*' con-name "ELKH-Kirchennetz" \
  type vpn -- \
  vpn.service-type org.freedesktop.NetworkManager.openconnect \
  vpn.user-name BENUTZERNAME \
  vpn.data '{authtype=password, gateway=vpn-server.elkh.de, protocol=anyconnect, cookie-flags=2, certsigs-flags=0, stoken_source=disabled, cacert=/etc/ssl/certs/Comodo_AAA_Services_root.pem, enable_csd_trojan=no, autoconnect-flags=0, gateway-flags=2, gwcert-flags=2, pem_passphrase_fsid=no, xmlconfig-flags=0, lasthost-flags=0}' \
  vpn.secrets '{lasthost=vpn-server.elkh.de, form:main:username=BENUTZERNAME, form:main:password=PASSWORT, save_passwords=yes}'