Einrichtung einer VPN-Verbindung unter Linux
Nachstehend finden Linux-Nutzer eine Beschreibung für die Installation und den Betrieb einer VPN-Verbindung im Münchner Wissenschaftsnetz (MWN).
Normalerweise ist der AnyConnect Client das Mittel der Wahl für Linux VPN-Verbindungen zu den LRZ VPN-Servern.
Alternativ dazu kann auch vpnc verwendet werden.
VPNC als IPsec-Client für Linux
Unter Linux kann man die OpenSource-Lösung vpnc einsetzen. vpnc ist inzwischen in allen aktuellen Distributionen enthalten und kann bequem installiert werden. Über den Networkmanager kann vpnc konfiguriert werden. Sollten sich dabei unvorhergesehene Probleme ergeben, kann man hier verschiedene Hinweise zu Installationen nachlesen.
vpnc für Linux allgemein
Diese Software finden Sie auf einer externen Website zum Herunterladen. Sie hat den Vorteil, dass sie auch unter anderen als Intel-Plattformen läuft. Nach unseren Erfahrungen ist sie einfacher als der Cisco-Client zu installieren und problemlos im Betrieb. Die notwendige Konfigurationsdatei vpn.conf kann von der Downloadseite unter https://www.lrz.de/services/netz/mobil/vpnclient/vpnclient geholt werden. In der Datei vpnc.conf muss unter Xauth username die eigene Kennung eingetragen werden, z.B.
Xauth username Gottfied.Leibniz@campus.lmu.de
Vor dem Start mit vpnc-connect unter /etc/vpnc sind gegebenenfalls noch folgende Kommandos nötig:
cd /dev
/sbin/MAKEDEV tun
Das Programm läuft vollständig im Userspace und benutzt den tun/tap-Treiber. Dieser sollte vom Kernel unterstützt werden.
vpnc unter Suse 9.3
(Autor: W. Raab, LRZ - 12.07.2005)
Für SuSe 9.3 sollte bei der vpnc-Installation folgendermassen vorgegangen werden:
- Paket vpnc.rpm installieren.
- "TUN-Device" einrichten:
local:~> mknod -m 600 /dev/tun c 10 200
local:~> ls -l /dev/tun
crw------- 1 root root 10, 200 2005-07-12 17:17 /dev/tun - /etc/vpnc.conf erstellen bzw. editieren:
local:~> cat /etc/vpnc.conf
IPSec gateway ipsec.lrz.de
IPSecID mwnpda
IPSecsecret <MWNPDAKENNUNG> <<< MWNPDAKENNUNG gibt es hier
#Xauth username a2825ak <<< ggf. Kennung anpassen und Kommentar '#' entfernenAchtung!!! Keine Leerzeichen am Ende der vpnc.conf und "richtige" d.h. einmalige Leerzeichen dazwischen.
- Funktionsprüfung:
Start: /usr/sbin/vpnc
Stop:/usr/sbin/vpnc-disconnect - Ausführen mit SUDO-Rechten für lokalen Benutzer "jack":
local:~> visudo
# Host alias specification
Host_Alias LOCAL=localhost
<...>
# User privilege specification
root ALL=(ALL) ALL
jack LOCAL = NOPASSWD: /usr/sbin/vpnc,/usr/sbin/vpnc-disconnect -
- Automatisierung durch Shell-Skript vpnc-click:
local:~> cat /usr/local/bin/vpnc-click
#!/bin/bash
#
#
PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin ;
export PATH
ifconfigtun0 &>/dev/null && sudo /usr/sbin/vpnc-disconnect || sudo /usr/sbin/vpnc
exit 0 -
- für KDE-Anwender: Desktop-Verknüpfung einrichten
Programmaufruf /usr/local/bin/vpnc-click
Als Icon wird z.B. "nfs_mount" und "nfs_unmount" verwendet.local:~> cat /usr/local/bin/vpnc-click
#!/bin/bash
#
#
PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin ;
export PATH
ifconfigtun0 &>/dev/null && sudo /usr/sbin/vpnc-disconnect || sudo /usr/sbin/vpnc
KDEFLE="`grep vpnc-click $HOME/Desktop/* | awk -F: '{ print $1 }' | head -1`"
if [ -f "$KDEFLE" ] ; then
sleep 1
ifconfig tun0 &>/dev/null
if [ $? = 0 ] ; then
sed"s,^Icon=.*,Icon=nfs_mount,g" "$KDEFLE" > "$KDEFLE.tmp"
else
sed"s,^Icon=.*,Icon=nfs_unmount,g" "$KDEFLE" > "$KDEFLE.tmp"
fi
mv"$KDEFLE.tmp" "$KDEFLE"
fi
exit 0
vpnc unter Suse 10.1/10.2 (Centrino)
(Martin Lehl, LRZ - 18.01.2007)
Suse liefert Treiber für den integrierten Wireless-LAN-Chip “Centrino” mit. Im Folgenden wird davon ausgegangen, dass Ihr Rechner am Internet angeschlossen ist (über Kabel oder WLAN).
Gehen Sie folgendermassen für die Installation des Programms vpnc vor:
Installieren Sie mit Hilfe von Yast (K-Menü -> System -> YAST (Kontrollzentrum) -> Software -> Software installieren oder löschen) das Programm vpnc und falls gewünscht NetworkManager-vpnc (empfehlenswert ab 10.2)
Öffnen sie nach erfolgreicher Installation eine Konsole und melden Sie sich als root (superuser) an:
local:~
>su
Password:
Wechseln Sie nun ins Verzeichnis /etc/vpnc/
local:~
>cd/etc/vpnc
Speichern Sie hier die heruntergeladene Konfigurationsdatei vpnc.conf ab und tragen Ihre Nutzerkennung ein.
Abmelden als root:
local:~> exit
Start des vpnc-Clients über Konsole (Eingabeaufforderung):
Stellen Sie zunächst sicher, dass Ihre Wireless-LAN Funktion aktiviert ist (Hardwareschalter oder Tastenkombination) oder eine Verbindung über ein Netzwerkkabel besteht. Konfigurieren Sie das Netzwerk mit dem NetworkManager unten rechts in der Symbolleiste nach folgenden Vorgaben, falls dies nicht automatisch geschieht:
Netzname lrz
keine Verschlüsselung verwenden!
Geben Sie nun in der Konsole zum Start des vpnc-Clients folgenden Befehl ein:
local:~> su -c vpnc
oder
local:~> su -c /usr/sbin/vpnc
In beiden Fällen werden Sie zunächst nach dem Passwort für den Superuser (root) gefragt, anschliessend nach dem Passwort Ihrer LRZ-Einwahlkennung. Der Dienst wird bei erfolgreicher Anmeldung im Hintergrund gestartet.
Beenden des vpnc-Clients:
Beenden Sie den vpnc-Client mit folgendem Befehl
local:~> su -c vpnc-disconnect
oder
local:~> su -c /usr/sbin/vpnc-disconnect
Konfiguration des NetworkManagers:
Nach einem Neustart steht im NetworkManager die Option VPN-Verbindungen zur Verfügung.

Wählen Sie dort unter dem Punkt VPN-Verbindungen die Option „VPN einrichten“. Ein Konfigurationsassitent hilft Ihnen bei den Einstellungen:

Im ersten Schritt bestätigen Sie die Verbindungsherstellung über das vorher installierte Programm vpnc.

Bitte nehmen Sie nun im zweiten Schritt obige Einstellungen vor. Bitte beachten Sie, dass Sie an dieser Stelle explizit Ihren Benutzernamen angeben müsssen, er wird zu einem späteren Zeitpunkt nicht nachgefragt!
Die Einrichtung wird im nächsten Schritt abgeschlossen, bestätigen Sie Ihre Einstellungen mit einem Klick auf „Anwenden“. Sie können nun den NetworkManager starten und finden nun unter VPN-Verbindungen den Eintrag „Verbinden mit LRZ“

Sie werden nun nach ihrem persönlichen Passwort Ihrer Kennung gefragt und nach dem Gruppenpasswort

Sind beide Passwörter korrekt, wird die VPN-Verbindung aufgebaut und es wird das Symbol eines geschlossenen Vorhängeschlosses angezeigt.
Cisco VPN-Client
Systemvoraussetzungen
- RedHat 6.2 oder neuer, Linux ab Kernel Version 2.2.12 und glibc ab Version 2.1.1-6. Kernel 2.5 wird nicht unterstützt
- SuSE 9.1 und höher, Kernel 2.6.4 wird unterstützt
- Linux Kernel-Header-Dateien, GNU C Compiler
Firewall
Wenn Sie eine Linux-Firewall betreiben, müssen Sie sicherstellen, dass folgende TCP-Ports und IP-Protokolle freigeschaltet werden:
- UDP-Port 500
- UDP-Port 10000
- IP-Protocol 50 (ESP)
- TCP-Port, der für IPsec/TCP konfiguriert ist (Port 10000)
- NAT-T (Standards-Based NAT Transparency) Port 4500
Installation
Achtung: Die Version 4.8.0.490 des Cisco VPN-Client unterstützt nur Kernelversionen bis 2.6.18. Ab 2.6.19 muss der Sourcecode des Cisco Clients gepatcht werden. ( http://tuxx-home.at/archives/2007/05/29/T16_34_26/).
- Download des Clients und des Verbindungsprofils. (von https://www.lrz.de/services/netz/mobil/vpnclient)
- Entpacken des Software-Archivs mit
tar-xfvz mwn-vpnclient-linux-Versionsnummer.tgz - Superuser werden und in das neue Unterverzeichnis
vpnclientwechseln: su
cd vpnclient- Starten der Installation mit
./vpn_install
Das Installationsprogramm verlangt nun folgende Eingaben:
- Pfad für die ausführbaren Dateien (empfohlen: yes)
- Autostart des VPN-Kernel-Moduls beim Start (empfohlen: yes)
(diese Option bewirkt nicht die automatische Einwahl, sondern nur das Laden des Treibers!) - Pfad zu den Kernel-Quellcodes; ggf. müssen diese vorher mit dem Linux-Tool installiert werden.
- Nun wird das Cisco-Kernelmodul erstellt und ein entsprechendes Startskript in
/etc/init.dangelegt (bis einschließlich Client Version 4.0.4.B keine Unterstützung des SuSE-Skriptsinsserv, s.u.).
Bei jedem Systemneustart wird nun das Modul geladen (falls die Option ausgewählt wurde).
Ohne Systemneustart lässt sich das Modul mit/etc/rc.d/init.d/vpnclient_init startstarten.
Beim Laden kann folgende Warnung auftreten:KernelWarning: loading cisco_ipsec will taint the kernel: no license.
Diese Meldung ist harmlos. Sie können sie ignorieren, denn die Funktion des VPN-Clients wird dadurch nicht beeinträchtigt. - Mit dem Befehl
lsmodkann man sich nun vergewissern, dass das Modulcisco_ipsecauch geladen wurde.
Konfiguration
Das Nutzerprofil für den Aufbau einer Verbindung zum LRZ ist bereits eingerichtet und befindet sich unter /etc/CiscoSystemsVPNClient/Profiles.
Nutzung
Die VPN-Verbindung kann nun als Superuser (root) mit dem Kommando vpnclientconnect lrz gestartet werden. Nun kann der Benutzername und das Einwähl-Passwort eingegeben werden und ein VPN-Tunnel wird aufgebaut. Rufen Sie dieses Kommando als normaler Benutzer auf, erscheint folgende Fehlermeldung
privsep: unable to drop privileges: group set failed.
Wenn Sie die VPN-Verbindung auch ohne Rootrechte starten wollen, müssen Sie einmalig folgenden Befehl als Superuser (root) ausführen:
chmod4111 /opt/cisco-vpnclient/bin/cvpnd
Mit vpnclient stat rufen Sie den Status ab und vpnclientdisconnecttrennt die Verbindung.
SuSE-Skript insserv
Wenn Sie nichts Besonderes einstellen, startet der Client nicht automatisch. Wenn Sie einen automatischen Start wünschen, müssen Sie bei alten Versionen des Clients die Zeilen
### BEGIN INIT INFO
# Provides: vpnclient_init
# Required-Start: $network $named $syslog
# X-UnitedLinux-Should-Start:
# Required-Stop: $network
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start module cisco_ipsec
### END INIT INFO
an den Beginn der Datei /etc/init.d/vpnclient_init schreiben.
Auch bei neuen Versionen muss ein Softlink in /etc/init.d/rc?.d angebracht werden.
Dokumentation
Die Firma Cisco bietet auf ihrer Website ausführliche Anleitungen an. Siehe: Client User Guide for Linux.
Fragen, Probleme?
Weitere Hinweise finden Sie in der Rubrik VPN: Frequently Asked Questions (FAQ).
Fragen und Kommentare zu dieser Anleitung richten Sie bitte andas Servicedesk.
