zum Inhalt springen

Linux-Klient VPNC

Neben der auch für Linux verfügbaren Software von Cisco (klassischer IPSec-basierter Client und SSL-basierter AnyConnect-Client) besteht unter Linux (und anderen unixartigen Betriebssystemen) darüberhinaus die Möglichkeit, den VPN-Zugang mit der Software vpnc herzustellen. Dies hat gegenüber der proprietären Cisco-Software einige Vorteile:

  • Ausschließliche Verwendung freier Software (kein "tainted kernel" etc.)
  • Unabhängigkeit von der Kernelversion (keine Probleme nach einem Kernelupdate und keine Kernelquellen für Installation erforderlich)
  • Normalerweise bereits als Paket in der Distibution enthalten und somit auf gewohntem Wege installier- und deinstallierbar
  • Bessere Integration in das bestehende Linux-System

Unter aktuellen Ubuntu-Distributionen lässt sich der Zugang über vpnc besonders einfach über die grafische Oberfläche einrichten und nutzen.

Installation

Bei fast allen verbreiteten Distributionen ist die benötigte Software als fertiges Paket verfügbar und kann somit direkt genutzt werden. Das ist zumindest bei Debian, Ubuntu und Opensuse der Fall.

Öffnen Sie ein Terminal oder öffnen Sie die Paketverwaltung "Softwarecenter" Ihrer
Distribution. Zur Installation per Terminal müssen zunächst root-Rechte angefordert werden (also entweder dauerhaft per sudo su - oder bei jedem einzelnen Befehl ein sudo voranstellen). Unter Debian kann danach mit aptitude install vpnc direkt das Paket installiert werden (gegebenenfalls vorher noch mit aptitude update die Paketlisten aktualisieren).
Ähnlich funktioniert es unter anderen Distributionen mit den dort üblichen Mechanismen (yum, urpm, synaptic, yast, etc.). Der Name des benötigten Pakets lautet meist vpnc, aber auch hiervon kann es Abweichungen geben.

Bei Distributionen, die keine eigenen Pakete für vpnc bereitstellen, kann auch der Sourcecode heruntergeladen und selbst kompiliert werden. Dies setzt allerdings Kenntnisse über die dabei übliche Vorgesehensweise (make-Befehle und so weiter) voraus.

Konfiguration

Vor der ersten Nutzung muss noch ein Profil für die VPN-Verbindung angelegt werden. Das dafür verwendete Konfigurationsverzeichnis kann sich von Distribution zu Distribution unterscheiden. In dem folgenden Beispiel wird das unter Debian und Ubuntu übliche Verzeichnis /etc/vpnc verwendet; wenn die von Ihnen verwendete Distribution andere Namen verwendet, ist also ggf. eine Anpassung bei der Pfadangabe erforderlich.

Legen Sie also (weiterhin mit root-Rechten) mit einem Texteditor eine Datei namens /etc/vpnc/uklan-full.conf an, die folgenden Inhalt hat:

IPSec gateway vpngate.uni-koeln.de
IPSec ID uklan-full
IPSec secret uklan
Xauth username mmusterm
NAT Traversal Mode cisco-udp

Anstelle des im Beispiel verwendeten Namens "mmusterm" ist natürlich das Benutzerkennzeichen des eigenen Studierenden- oder Personal-Accounts einzusetzen.

Zusätzlich kann noch eine weitere Zeile mit dem zugehörigen Passwort eingefügt werden (nach dem Schema Xauth password MySecret), jedoch wird hiervon dringend abgeraten, da andernfalls das Passwort im Klartext abgespeichert würde, was ein erhebliches Sicherheitsrisiko darstellt.

Auf- und Abbau der VPN-Verbindung

Da beim Aufbau der VPN-Verbindung das Routing geändert wird, sind erneut root-Rechte erforderlich. Geben Sie zum Aufbau der Verbindung daher folgenden Befehl ein: sudo vpnc-connect uklan-full

Wenn Sie, wie oben empfohlen, das Passwort nicht in der Konfigurationsdatei gespeichert haben, so werden Sie nun durch einen Hinweis nach dem Schema Enter password for mmusterm@vpngate.uni-koeln.de: dazu aufgefordert, das zu Ihrem Studierenden- oder Personal-Account gehörige Passwort einzugeben. Bei korrekter Eingabe des Passworts wird die VPN-Verbindung aufgebaut und Sie bekommen nach kurzer Zeit folgenden Text zu sehen:

Connect Banner: | Welcome to Uklan, the network of Cologne University! | | You established a full-tunnel connection! | 

Sie sind nun mit dem Uninetz verbunden und können auf interne Ressourcen wie etwa die von der Universitäts-Bibliothek lizenzierten Datenbanken und Zeitschriften zugreifen.

Damit nach dem Ende Ihrer Recherchen nicht noch weiter unnötig Ihr gesamter Internetverkehr über die Uni umgeleitet wird, beenden Sie bitte die VPN-Verbindung, wenn Sie sie nicht mehr benötigen. Der dazu nötige Befehl lautet sudo vpnc-disconnect. Hierdurch wird sowohl die VPN-Verbindung getrennt, als auch die ursprünglichen Routing-Tabellen wiederhergestellt.

Problembehebung

Wenn nach dem Trennen der VPN-Verbindung der "normale" Netzwerkzugang nicht mehr zu funktionieren scheint, so liegt das Problem vermutlich daran, dass die automatische Aktualisierung (beziehungsweise Wiederherstellung) der DNS-Server-Informationen in der Datei /etc/resolv.conf nicht richtig funktioniert hat. Als kurzfristiger Workaround können die DNS-Server zum Beispiel über eine Reinitialisierung der regulären Netzwerkschnittstelle (etwa: ifconfig eth0 down; ifconfig eth0 up) neu eingetragen werden. Danach sollte nach wenigen Sekunden wieder alles normal funktionieren.