VPN-Client
Aus UniDSL Wiki
Zur Benutzung von Uni-DSL musst du eine VPN-Verbindung herstellen, damit dein Rechner Teil des RWTH-Netzes wird. Dies ist notwendig, da der Internet-Traffic nicht von Westend sondern dem Rechenzentrum der RWTH zur Verfügung gestellt wird.
Beachte: Durch die Einwahl per VPN verhält sich der Rechner so, als sei er Teil des Hochschulnetzes. Das Rechenzentrum versucht jedoch, das Hochschulnetz frei von Störungen zu halten. Aus diesem Grund kann das Rechenzentrum den Einwahlaccount sperren, wenn der Rechner mit Viren befallen ist und versucht, diese weiter zu verbreiten. Wenn also plötzlich die Einwahl per VPN nicht mehr funktioniert ist das ein möglicher Grund dafür. Aus diesem Grund ist es besonders wichtig, alle erforderlichen Sicherheitsupdates regelmäßig zu installieren, bzw. darauf zu achten, daß die Funktion "Automatische Updates" in Windows aktiviert ist (ab XP SP2 Standardeinstellung). Falls dein Rechner vorher durch einen Router vor direktem Zugriff (mehr oder weniger) geschützt war, ist er nach Einwahl ins VPN z.b. potentiell anfällig gegen Viren o.ä., die sich durch Ausnützen von Sicherheitslücken in Netzwerken selbst ausbreiten.
Das Rechenzentrum lässt bis zu 5 gleichzeitige Verbindungen zu. Man kann also durchaus gleichzeitig mit dem Desktop und dem Notebook eine VPN-Verbindung herstellen. Hinweise zu Problemen mit dem VPN-Zugang sind hier zu finden.
Inhaltsverzeichnis |
Cisco VPN-Client
Der VPN-Client von Cisco ist das offiziell unterstützte Programm, das die Tunnelverbindung zur RWTH aufbaut. Dieser ist in Versionen für die Betriebssysteme Windows, Mac OS X, Linux (32Bit und 64Bit) sowie SPARC Solaris verfügbar.
- Download
Für die verschiedenen Betriebssysteme findest du die entsprechenden Installationsdateien auf den Internetseiten des Rechenzentrums. Da diese regelmäßig aktualisiert werden lohnt sich bei eventuellen Problemen ein Blick auf eine neue Version.
- Installation
Installationshinweise gibt es ebenfalls beim Rechenzentrum.
- Uni-DSL VPN-Profil
Falls der genannte Client kein VPN-Profil für Uni-DSL (mit dem Host vpn-unidsl.rwth-aachen.de) enthalten sollte, kannst du das Profil herunterladen und im Cisco Client über "Connection Entries"-"Import" den bestehenden Einträgen hinzufügen.
Windows
Autostart
Damit der Cisco VPN-Client beim Rechnerstart und bei einem Verbindungsverlust ohne Requester verbindet kannst du den Evil Client benutzen. Dieser ist jedoch nur für Windows verfügbar. Die aktuelle Version 1.5.3 unterstützt alle Cisco 4er/5er-versionen und bietet die Möglichkeit alle Einwahldaten sicher verschlüsselt zu speichern, wohingegen der Originalclient von Cisco alle Einwahlpasswörter nur unsicher verschlüsselt in den Profildateien ablegt (siehe heise).
Der Cisco-Client lässt jedoch normalerweise auch ohne Einsatz von Zusatzsoftware eine Verbindungsherstellung beim Systemstart zu, wobei dies aber nicht immer zuverlässig funktioniert. Dazu muss im Menü >Options > Automatic VPN Initiation > bei "Enable" ein Häkchen gemacht werden. Außerdem muss in der Autostart-Gruppe von Windows der Eintrag "RWTH Aachen VPN Client" zu finden sein. Wurde dieser nach der Installation entfernt, kann der Client ihn nicht selbstständig wieder hinzufügen. Die in den Cisco-Client integrierte Autostart-Funktion birgt den Nachteil, daß nach einem Verbindungsabbruch kein selbstständiger neuer Verbindungsaufbau stattfindet. Außerdem tritt bei Windows XP zusätzlich das Problem auf, daß der Cisco-Service noch nicht gestartet ist, wenn der Client(das GUI) bereits versucht, die Verbindung aufzubauen. Dies hängt mit der in XP verwendeten Methode der Systemstartbeschleunigung zusammen, und kann deshalb auch erst nach einigen Neustarts auftreten. Auf manchen Systemen hilft eine Neuinstallation des Clients gegen dieses Problem.
LAN-Zugriff
Leider ist es nicht möglich, während ein VPN-Tunnel aufgebaut ist, den Windows-Browser-Dienst zu benutzen, durch den man die Namen anderer Rechner im LAN sehen kann. Jedoch kann man bei Kenntnis der lokalen IP-Adresse des gewünschten Rechners diese von Hand im Format \\192.168.0.3 in die Adresszeile des Windows-Explorers eintragen. Danach kann man alle Ressourcen auf dem anderen Rechner sehen. Da bei Windows-Rechnern in Netzen ohne Domänencontroller (was bei fast allen Heim-Rechnern zutreffen sollte) jeder Rechner die Liste selbstständig und unabhängig von den anderen nur alle 12 Min. aktualisiert, kann es zu merkwürdigen Symptomen kommen. Vor allem ist auch nach Trennung der VPN-Verbindung oft noch längere Zeit kein Rechner in der Netzwerkumgebung zu sehen. Über die "Computer suchen"-Funktion kann ein Rechner bei Kenntnis des Namens oft schneller gefunden werden.
Um überhaupt eine Verbindung zu Rechnern im lokalen Netzwerk bekommen zu können, muss in den Eigenschaften des VPN-Profils die Option "Allow Local LAN Access" auf dem Karteireiter "Transport" aktiviert sein. Alle weiteren Bedingungen um Kontakt über TCP/IP zu dem anderen Rechner zu bekommen, müssen natürlich trotzdem erfüllt sein (z.B. Firewall-Einstellung,Subnetz)
Weitere Informationen zum Windows-Browserdienst (eher technisch) bieten die Microsoft Supportseiten
MTU-Probleme
Falls einige Webseiten nicht angezeigt werden können, z.B. http://www.google.de/ aber gut funktioniert, siehe diesen Artikel: MTU-Problem
Linux
Der Cisco-Client kann auch unter Linux eingesetzt werden, es ist jedoch keine graphische Benutzeroberfläche verfügbar. Die Installation ist auf den Seiten des Rechenzentrums beschrieben. Es ist darauf zu achten, daß tatsächlich die Kernelquellen installiert sind, und auf das korrekte Verzeichnis verwiesen wird, da es notwendig ist, den client zu kompilieren. Aus diesem Grund muß nach einem Kernel-Update auch der Cisco-client neu kompiliert werden. Der vpnc (siehe unten) ist eine Alternative, um dieses Problem zu umgehen.
Linux Router
Der Cisco VPN-Client belegt standardmäßig alle Netzwerk-Schnittstellen, somit ist LAN-Verkehr normalerweise nicht mehr möglich. Paul C. Bütow erklärt in seinem Linux DSL Router für RWTH-VPN Howto ausführlich, wie man einen DSL Router für RWTH-VPN unter Debian Linux erstellt. Dabei geht er auch darauf ein wie man einzelne Dateien des VPN-Clients anpasst, damit er internen Netzwerkverkehr zulässt.
Alternative: vpnc
Unter Linux, BSD und Solaris ist es zusätzlich möglich den vpnc zu benutzen. Er ist schon in vielen Distributionen enthalten, evtl. jedoch in einer älteren Version. Gegenüber dem Cisco-Client bietet es zwei Vorteile: Zum einen muss vpnc nicht nach dem Aktualisieren des Kernels neu kompiliert werden und zum anderen gibt es eine graphische Oberfläche für KDE namens kvpnc.
- vpnc mit graphischer Benutzeroberfläche (kvpnc)
Mit kvpnc kann man z.B. ganz einfach VPN-Profile (z.B. unidsl2.pcf) importieren, oder die VPN-Verbindung automatisch starten lassen kann. Eine Anleitung zur Benutzung von kvpnc gibt es hier, das manuelle Anlegen von Dateien, bzw. die Nutzung der Konsole o.ä. entfallen.
Um einen problemlosen Betrieb zu ermöglichen, ist es jedoch notwendig, die aktuelle (Okt. 2005) Version 0.8 des kvpnc einzusetzen, da viele der für Uni-DSL-Nutzer wichtigen Funktionen erst ab dieser Version richtig arbeiten.
- vpnc manuell einrichten
Zum reibungslosen Betrieb ohne kvpnc, muss eine vpnc.conf in das Verzeichnis /etc/ gelegt werden. Diese hat folgenden Inhalt:
Interface name vpnlink IKE DH group dh2 Perfect forward Secrecy nopfs IPSec gateway vpn-unidsl.rwth-aachen.de IPSec ID Uni-DSL IPSec secret uni-dsl-2005 Xauth username deinbenutzername Xauth password deinvpnpasswortvomrz
Folgende Beschreibungen sind auf vpnc-Versionen bis 0.3.2 ausgelegt. Ab vpnc-0.3.3 unterscheiden sich die Skripte eventuell.
- Versionen bis vpnc-0.3.2
Die Befehle vpnc-connect und vpnc-disconnect dienen zum Auf- und Abbau der Verbindung. Als Parameter nehmen sie den Pfad zu einer Konfigurationsdatei entgegen, ohne Angabe verwenden sie automatisch /etc/vpnc.conf.
- Version vpnc-0.3.3
vpnc-connect wurde entfernt. Der Client wird nun durch vpnc gestartet. Dazu wird automatisch das Skript /etc/vpnc/vpnc-script ausgewertet. Das Skript kann auch mit der Option --script [Skript] angegeben werden.
Wird keine Konfigurationsdatei angegeben, wird automatisch /etc/vpnc.conf oder /etc/vpnc/default.conf ausgewertet. Für Konfigurationsdateien, deren Name kein / enthält, wird automatisch der Pfad /etc/vpnc/ angenommen.
Der Abbau der Verbindung geschieht weiterhin durch vpnc-disconnect.
Autostart
Der Systemstart unterscheidet sich von Distribution zu Distribution.
Dieser VPN Client kann jedoch ohne Unterbrechung nur ca. vier Stunden online sein, da er das sogenannte Rekeying nicht unterstützt. Die Dauerverbindung könnte man aber zum Beispiel mit dem folgenden Skript herstellen. Dabei wird alle drei Stunden und 55 Minuten (=14100 Sekunden) die Verbindung gekappt.
#!/bin/sh
# restart vpnc every 3h 55min
while [ true ]; do
vpnc-connect
sleep 14100
vpnc-disconnect
done
Alternativ kann man das folgende Skript benutzen, welches beim Abbruch automatisch neu verbindet.
#!/bin/bash
#Bash script zum automatischen Neuaufbauen der VPN-Verbindung bei Abbruch.
LOGFILE="/var/log/unidsld"
echo -n `date` >> $LOGFILE
echo " UniDSLD startup" >> $LOGFILE
while(true) ; do
if (test -e /etc/userconfig/unidsld) ; then
echo -n `date` >> $LOGFILE
if ( ps -ef | grep -v grep | grep vpnc > /dev/null ) ; then
echo -n " vpnc running at " >> $LOGFILE
echo `pidof vpnc` >> $LOGFILE
else
echo " vpnc not running. Starting it" >> $LOGFILE
echo -n " connecting..." >> $LOGFILE
reunidslen 2>&1 >> $LOGFILE
echo -n `date` >> $LOGFILE
echo -n " vpnc restarted, running at PID: " >> $LOGFILE
echo `pidof vpnc` >> $LOGFILE
fi
echo -n `date` >> $LOGFILE
echo -n " Now pinging hosts..." >> $LOGFILE
if (ping -c 2 -n 134.130.3.1 > /dev/null 2>&1) ; then
echo " relay.rwth-aachen.de reached, ok" >> $LOGFILE
else
echo -n `date` >> $LOGFILE
echo " relay.rwth-aachen.de not found" >> $LOGFILE
echo -n `date` >> $LOGFILE
echo -n " disconnecting..." >> $LOGFILE
reunidslen 2>&1 >> $LOGFILE
echo -n `date` >> $LOGFILE
echo -n " vpnc restarted, running at PID: " >> $LOGFILE
echo `pidof vpnc` >> $LOGFILE
fi
sleep 5
else
echo -n `date` >> $LOGFILE
echo " UniDSLD started but deactivated." >> $LOGFILE
exit 0
fi
done
Das darin aufgerufene Skript reunidslen enthält folgende Zeilen:#!/bin/bash sudo vpnc-disconnect sudo vpnc-connect unidsl
Gentoo
Als Init-Skript kann folgende Vorlage verwendet werden, die als /etc/init.d/vpnc gespeichert werden kann.
#!/sbin/runscript
depend() {
use net
}
start() {
ebegin "Starting Virtual Private Network"
/usr/bin/vpnc-connect >/dev/nul
eend $?
}
stop() {
# sends SIGTERM to all running clients.
ebegin "Stopping Virtual Private Network"
/usr/bin/vpnc-disconnect >/dev/nul
eend $?
}
Das Starten beim Systemstart wird dann mittels rc-update add vpnc default eingerichtet.
Suse 10.0
Als Init-Skript kann folgende Vorlage verwendet werden, die als /etc/init.d/vpnc-start gespeichert werden kann.
#! /bin/sh
#
# /etc/init.d/vpnc-start
#
### BEGIN INIT INFO
# Provides: vpnc-start
# Description: VPNC Autostart
### END INIT INFO
# Ort für das Logfile
LOGFILE="/var/log/vpnc-start.logfile"
# Ort/Datei für die VPNC-Konfigurationsdatei
PROFILE="/etc/vpnc/unidsl.conf"
echo -n `date` >> $LOGFILE
echo " VPNC-start startup" >> $LOGFILE
case "$1" in
start)
echo -n "Starting VPNC " >> $LOGFILE
/usr/sbin/vpnc $PROFILE >> $LOGFILE
$0 status
;;
stop)
echo -n "Shutting down VPNC " >> $LOGFILE
/usr/sbin/vpnc-disconnect >> $LOGFILE
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
echo -n `date` >> $LOGFILE
echo -n "VPNC wird neu gestartet" >> $LOGFILE
echo -n " disconnecting..." >> $LOGFILE
$0 stop
echo -n " connecting..." >> $LOGFILE
$0 start
echo -n " VPNC wurde neu gestartet, läuft auf PID: " >> $LOGFILE
echo `pidof vpnc` >> $LOGFILE
;;
reload)
## Like force-reload, but if daemon does not support
## signaling, do nothing (!)
$0 restart
;;
status)
echo -n "Checking for service VPNC " >> $LOGFILE
# Test, ob Prozessnummer für VPNC vorhanden ( != " ")
if (pidof vpnc > /dev/null == " " ) ; then
echo -n " vpnc running at " >> $LOGFILE
# Prozess-Nummer
echo `pidof vpnc` >> $LOGFILE
else
echo " vpnc not running. Starting it" >> $LOGFILE
echo -n " connecting..." >> $LOGFILE
$0 start
echo -n `date` >> $LOGFILE
echo -n " vpnc restarted, running at PID: " >> $LOGFILE
echo `pidof vpnc` >> $LOGFILE
fi
echo -n `date` >> $LOGFILE
echo -n " Now pinging hosts... " >> $LOGFILE
# Test ob korrekt verbunden
if (ping -c 2 -n 134.130.3.1 > /dev/null 2>&1) ; then
# alles OK
echo " relay.rwth-aachen.de reached, ok" >> $LOGFILE
else
# Fehler
echo -n `date` >> $LOGFILE
echo " relay.rwth-aachen.de not found" >> $LOGFILE
$0 restart
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
Als erstes muss diese Datei als root ausführbar gemacht werden. Das Starten beim Systemstart wird dann in YAST->System->Runlevel-Editor->Expertenmodusvpnc-start durch anklicken von "3" und "5" eingerichtet.
VPN auf dem Pocket PC
Auf den Seiten des Rechenzentrums finden sich Informationen über den movianVPN-Client für das Pocket PC 2002 - Betriebssystem. Unter FAQ ist auch die Bezugsquelle beschrieben.
Uni-DSL OpenVPN Server (im Testbetrieb)
Gerade für Studenten der FH wird im Moment ein weiterer VPN-Server aufgesetzt:
Der Uni-DSL-eigene VPN-Server steht jetzt im Testbetrieb zur Verfügung. Über diesen ist Traffic über Westend statt über die RWTH möglich.
Achtung: für Kunden mit eigenem DSL-Anschluss ist die Benutzung des OpenVPN-Servers in der Regel nicht sinnvoll, da die Daten über Westend geleitet werden, genau wie ohne Benutzung eines VPN-Servers.
In Zukunft wird dies als Lösung für diejenigen bereitstehen, die über WLAN auf das Internet zugreifen wollen, aber keinen Account bei der RWTH haben, sowie als Backup-Lösung.
Wir würden uns freuen, wenn möglichst viele testen und sich in der Newsgroup unidsl.aachen.technik zurückmelden würden, ob die Einwahl stabil und zuverlässig funktioniert.
Bekannte Probleme
Die von OpenVPN-Server verwendete Benutzerdatenbank wird nur einmal pro Stunde aktualisiert. Es kann also bis zu einer Stunde dauern, bis nach erfolgter Anmeldung bei Unidsl das Password auch für den OpenVPN-Server gültig wird.
Bisher ist in der OpenVPN-Clientsoftware keine Möglichkeit integriert, Benutzername und Passwort zu speichern.
Windows
Von http://unidsl.de unter DOWNLOADS den OpenVPN-Client herunterladen,
einfach installieren und starten.
Benutzername: deine Kundennummer
Passwort: dein Web-Passwort
Linux
OpenVPN installieren, und die ovpn und crt-Dateien von obigem Link ins Verzeichnis kopieren.
Kurz How-To fuer Debian (Sid/Unstable): in der konsole:
su - [root passwort eingeben] apt-get install openvpn cd /etc/openvpn wget http://aachen.uni-dsl.de/download/unidsl.openvpn mkdir keys && cd keys wget http://gondor.com/unidsl/ca.crt cd /etc/openvpn openvpn --config unidsl.openvpn [Kdnr-eingeben] [Web-Passwort eingeben]
Weblinks
- http://vpndslrouter.buetow.org - Erklärung wie man mit einem Linux Router direkt VPN nutzt
