OpenConnect VPN – Anleitung für Linux

Diese Anleitung wird vom ITS der Universität Kassel ohne Gewähr bereitgestellt. Bitte beachten Sie folgende Punkte:

  • Kein offizieller Support: Das ITS übernimmt keinen Support für Linux-Systeme.
  • Keine Garantie auf Funktionsfähigkeit: Änderungen am Cisco AnyConnect-Protokoll seitens Cisco können dazu führen, dass OpenConnect ohne Vorwarnung nicht mehr funktioniert.
  • Viele Linux-Varianten: Durch die große Vielfalt an Linux-Distributionen und Konfigurationen ist ein einheitlicher Support nicht möglich. Diese Anleitung wurde nach bestem Wissen erstellt, kann aber nicht für jede Umgebung garantiert werden.

Die Nutzung erfolgt auf eigene Verantwortung.

Da der offizielle Cisco AnyConnect Client unter Linux immer wieder Probleme macht, hier die bewährte Alternative mit OpenConnect für Linux:

Voraussetzungen

Paket installieren (in jeder Distribution dabei):

  • sudo apt install openconnect (Debian / Ubuntu)
  • sudo dnf install openconnect (Fedora)
  • sudo pacman -S openconnect (Arch)

Mindestversion: 9.01 – prüfen mit:

  • openconnect -V

VPN starten/beenden (einmaliger Befehl mit sudo!)

VPN starten:

[USERNAME] durch Ihren UniAccount-Login ersetzen:

  •  sudo openconnect univpn.uni-kassel.de \
       --protocol=anyconnect \
       --reconnect-timeout=60 \
       --disable-ipv6 \
       --compression=all -d \
       --background --syslog --timestamp \
       --os=win \
       --useragent='AnyConnect Windows 5.1.8.105' \
       --no-external-auth \
       -u [USERNAME]

VPN beenden:

  • sudo killall openconnect

Empfohlen: Alles als Shell-Script

Datei z. B. als "vpn.sh" speichern, dann:

chmod +x vpn.sh
./vpn.sh

vpn.sh

#!/bin/bash
GW="univpn.uni-kassel.de"
PAS='IhrPasswort'
USER='IhrUsername'
PID_FILE="/tmp/vpn-pidfile.log"

echo "$PAS" | \
sudo openconnect $GW -v \
 --pid-file=$PID_FILE \
 --protocol=anyconnect \
 --reconnect-timeout=60 \
 --disable-ipv6 \
 --compression=all -d \
 --background --syslog --timestamp \
 --os=win \
 --useragent='AnyConnect Windows 5.1.8.105' \
 --no-external-auth \
 -u $USER --passwd-on-stdin

VPNPID=$(cat $PID_FILE)
echo "VPN läuft mit PID: $VPNPID"

Optional: sudo ohne Passwort konfigurieren

1. Pfad von openconnect herausfinden

  • type openconnect

2. visudo öffnen

  • sudo visudo

3. Passenden Eintrag hinzufügen:

  • Nur für Sie (ohne Passwort):
    • ihrbenutzer ALL=(ALL) NOPASSWD: /usr/bin/openconnect
  • Für alle sudo-User (ohne Passwort):
    • %sudo ALL=(ALL) NOPASSWD: /usr/bin/openconnect
  • Weiterhin mit Passwort (explizit):
    • ihrbenutzer ALL=(ALL) !NOPASSWD: /usr/bin/openconnect

Pfad ggf. anpassen, falls openconnect woanders liegt (z. B. /usr/local/bin/openconnect).