.

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 '#' entfernen

    Achtung!!! 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/).

  1. Download des Clients und des Verbindungsprofils. (von https://www.lrz.de/services/netz/mobil/vpnclient)
  2. Entpacken des Software-Archivs mit
    tar-xfvz mwn-vpnclient-linux-Versionsnummer.tgz
  3. Superuser werden und in das neue Unterverzeichnis vpnclient wechseln:
  4. su
    cd vpnclient
  5. 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.
  1. Nun wird das Cisco-Kernelmodul erstellt und ein entsprechendes Startskript in /etc/init.d angelegt (bis einschließlich Client Version 4.0.4.B keine Unterstützung des SuSE-Skripts insserv, 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 start starten.
    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.
  2. Mit dem Befehl lsmod kann man sich nun vergewissern, dass das Modul cisco_ipsec auch 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.