Neulich erreichte mich folgende Nachricht, wenn ich mit vpnc eine VPN-Verbindung zur Uni Karlsruhe aufbaute.
Ab Monatg den 29.09.2008 ist der VPN Verbindungsaufbau (aus dem WLANoder unterwegs) zum Campus Sued nur noch mit dem neuen Root Zertifikat der dt. Telekom moeglich. Dieses Zertifikat ist in dem Installationspaketdes RZ bereits enhalten, kann aber auch nachtraeglich heruntergeladen und importiert werden.
siehe: http://www.rz.uni-karlsruhe.de/rd/vpn.php
Juhu! 🙁 Es ist also mal wieder Bastelarbeit angesagt. Meine alten Lösungen bzgl. vpnc und Uni-Karlsruhe sind wohl (zumindest teilweise) obsolet. Zeit das Thema wieder mal komplett neu aufzurollen…
vpnc selber compilieren
Nach wie vor gilt es vpnc selber zu compilieren, da vpnc mit Unterstützung für openssl (Zertifikate) gebraucht wird. Aufgrund von Problemen mit den Lizenzen bauen das die Distributoren üblicherweise jedoch nicht ein. Zuerst gilt es sich daher den Quellcode von vpnc herunterzuladen und das Archiv zu entpacken.
$ wget http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-0.5.3.tar.gz $ tar -xzf vpnc-0.5.3.tar.gz
Damit die Paketverwaltung das selbst compilierte vpnc später nicht mit der Version aus den Paketquellen ersetzt, fügt man an das Ende des Verzeichnisnamens, noch ein Kürzel an. Später beim Compilieren wird dieses Kürzel mit in die Versionsnummer übernommen. So ist das eigene vpnc-Paket vor der Paketverwaltung “sicher”.
$ mv vpnc-0.5.3 vpnc-0.5.3-christoph1 $ cd vpnc-0.5.3-christoph1
Anschließend muss der besagte, gegen die GPL verstoßende Teil, einkommentiert werden. Dazu öffnet man das Makefile in einem Editor. Also beispielsweise
$ gedit Makefile
und entfernt die Raute “#” vor den Zeilen 49 und 50, so dass dieser Abschnitt am Ende wie unten stehend aussieht.
OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION OPENSSLLIBS = -lcrypto
aus. Nun muss man die zum Compilieren nötigen Pakete installieren. Dieses kann man bei Ubuntu über die Paketverwaltung machen. Dazu einfach
$ sudo apt-get install libssl-dev build-essential dh-make fakeroot $ sudo apt-get build-dep vpnc
ausführen. Alle benötigten Pakete werden automatisch installiert. Nun geht es an das Compilieren. Der Reihe nach führt man diese Befehle aus.
$ make $ dh_make -f ../vpnc-0.5.3.tar.gz $ fakeroot debian/rules binary $ sudo dpkg -i ../vpnc*.deb
Dies erstellt ein .deb Paket das sich über die Paketverwaltung installieren, und somit auch wieder einfach deinstallieren lässt. Die Frage bei dh_make
, nach der Art des Binaries kann man mit s
für eine single binary
beantworten. Ob die Installation nun erfolgreich war, kann man mittels
$ vpnc --version [...] Built with openssl (certificate) support. Be aware of the license implications. Supported DH-Groups: nopfs dh1 dh2 dh5 Supported Hash-Methods: md5 sha1 Supported Encryptions: null des 3des aes128 aes192 aes256 Supported Auth-Methods: psk psk+xauth hybrid(rsa)
überprüfen. Hier muss von vpnc die Meldung „Built with openssl (certificate) support“ ausgeben werden. Erst dann wurde vpnc korrekt mit Unterstützung für openssl gebaut.
Das Zertifikat
Seit Anfang Oktober 2008 benutzt die Universität Karlsruhe ein neues Root-Zertifikat der deutschen Telekom. Dieses Root-Zertifikat kann man sich wieder von der Uni herunterladen. Der Einfachheit halber hier der Weg über ein Terminal.
$ sudo wget --no-check-certificate https://pki.pca.dfn.de/uni-karlsruhe-ca/pub/cacert/rootcert.crt -O /etc/ssl/certs/rootcert.crt
Dies lädt das Zertifikat herunter und kopiert es gleich an die richtige Stelle im Dateisystem. [UPDATE 27.04.09: Der nun folgende Abschnitt dieses Beitrages richtet sich an Anwender, die die Verbindung zum VPN der Uni Karlsruhe automatisieren wollen. Will man die Verbindung nur bei Bedarf aufbauen, so kann man dazu ein angepasstes Modul für den NetworkManager benutzen. Für viele Anwender ist dies sicherlich ausreichen. Weitere Informationen dazu findet man hier in meinem Blog unter NetworkManager, vpnc und HybridAuth.]
Konfiguration
Schließlich muss noch vpnc konfiguriert werden. Dies geschieht über die Datei /etc/vpnc/default.conf
. Über einen Editor sudo gedit /etc/vpnc/default.conf
fügt man den Inhalt…
IPSec gateway vpn.uni-karlsruhe.de IPSec ID vpn IPSec secret vpnvpn IKE Authmode hybrid Xauth username u... Xauth password xxx CA-File /etc/ssl/certs/rootcert.crt
…ein. Natürlich müssen der Benutzername und das Passwort noch angepasst werden. Damit diese Daten vor dem Einblick Dritter geschützt sind, sollte man mit sudo chmod 600 /etc/vpnc/default.conf
die Dateirechte entsprechend setzen.
Verbindungsaufbau
Von nun an kann man die Verbindung zum VPN über einen einfachen Befehl
$ sudo vpnc $ sudo vpnc-disconnect
auf bzw. wieder abbauen. Da es sich in letzter Zeit gezeigt hat, dass die VPN Verbindung sehr instabil sein kann, sollte man den so genannten „DPD idle timeout“ deaktivieren. Die Verbindung sollte man daher so…
$ sudo vpnc --dpd-idle 0
…aufbauen.
Skripte zum automatischen Aufbau des VPNs
Die VPN Verbindung via vpnc auf- und abzubauen ist nun alles andere als komfortabel. Ich habe mir ein kleines Skript für den Network-Manager geschrieben. Diese so genannten „Dispatcher“-Skript für den Network-Manager werden beim Auf- bzw. Abbau einer Netzwerkverbindung automatisch ausgeführt.
Das Skript wird also beim Aufbau der Netzwerkverbindung automatisch aus ausgeführt und überprüft, ob man sich im Netzwerk der Uni-Karlsruhe befindet. Sollte dies der Fall sein, so wird automatisch die VPN-Verbindung gestartet. Dies klappt wunderbar innerhalb der Bibliothek und auch beim WLAN-Zugang über die ESSID „VPN/WEB“.
$ sudo wget http://www.linuxundich.de/static/02uni-ka-vpn-1.4.sh -O /etc/NetworkManager/dispatcher.d/02uni-ka-vpnc $ chmod +x /etc/NetworkManager/dispatcher.d/02uni-ka-vpnc
Eventuell muss in den Skript noch die Zeile…
[...] WLANINTERFACE="eth1" [...]
…an die eigenen Bedürfnisse angepasst werden. Hier muss das WLAN-Interface eingetragen werden, also eventuell wlan0, ra0, ath0 usw. Wer möchte, kann sich dabei auch Benachrichtigungen ausgeben lassen. So bekommt man im Fehlerfall Informationen ausgegeben, warum die VPN-Verbindung nicht aufgebaut werden konnte.
Voraussetzung dafür ist, dass das Paket libnotify-bin
installiert wurde. Meines Wissens nach funktioniert die Ausgabe von dieser kleinen Popups leider nur mit der GNOME Desktopumgebung. Das Skript an sich funktioniert auf allen Systemen, die den Network Manager benutzen. Also auf jeden Fall bei allen Ubuntu Derivaten [UPDATE 25.04.09: Auf vpnc 0.5.3 aktualisiert[/UPDATE].
$ sudo apt-get install libnotify-bin
Die alte VPN Möhre läuft wahrscheinlich so lang bis sie von alleine abraucht oder versehentlich von der Putzfrau geklaut wird. Abschalten und wegschmeissen macht mehr Arbeit als anlassen und Kaffee trinken. 🙂
Hallo,
wollen auch mal was beitragen: Per VPN und fast jungfräulicher Ubuntu-Installation ins Netz des KIT.
Installieren: network-manager-vpnc
Dann network-manager neu starten (wichtig), eventuell auch aus- und einloggen aus Gnome, dann eine VPN-Verbindung hinzufügen und die Einstellungen von hier:
http://www.kit09.de/viewtopic.php?f=16&t=116#p1661
übernehmen.
Funktionierte nicht mit vpn.kit.edu oder so, also schön beim alten vpn.uni-karlsruhe.de bleiben 🙂
Du musst in dem Fall vpnc nicht selber compilieren, um Hybrid-Auth zu ermöglichen?
Nö, nichts kompiliert. Was Hybrid-Auth jetzt genau heißt. darüber hab ich mir keinen Kopf zerbrochen 🙂 nur das gemacht, was ich geschrieben habe und ich kann mich mit einem Klick per VPN verbinden bzw. wieder trennen.
Hi Christoph,
ich habe gesehen, dass du auch über Android bloggst und nachdem du sogar an der gleichen Uni arbeitest/studierst kann ich einfach nicht widerstehen zu fragen, ob du auch eine VPN Lösung für Android am KIT hast?
Würde mich freuen von dir zu hören!
Johannes
Hi Johannes, ich hatte es früher mal mit Junos Pulse probiert, das hat ja auch Dusan erwähnt. Damals hat es aber nicht mehr geklappt.
Hi
das die UNI KA das Juniper SA 6500 VPN GW benutzt, gibt es neuerdings für Apple iOS (iPad, iPod, iPhone) und Android den Junos Pulse VPN Client. Ob das UNI RZ den Zugriff damit zulässt weiss ich nicht, es hängt auch von der Firmware ab ob Junos Pulse unterstützt wird (ab IVE OS v7.0).
Gruss
Dusan
Hi,
danke für eure schnellen Antworten. Diesen Juniper Client habe ich mir mal angesehen und ich musste feststellen, dass der so viele Permissions will, dass ich mich frage, ob ich da nicht vom Regen in die Traufe komme.
Um ehrlich zu sein hatte ich ganz naiv gehofft, dass eine der vier nativen VPN Lösungen von Android funktionieren könnte. Leider sind die für mich allesamt spanische Dörfer.
Dass die unterstützt werden, könnt ihr ausschließen?
Vielen Dank nochmal!
Früher gabs ja mal den Cisco Zugang, diesen gibts zwar noch, aber offiziell soll ja Juniper benutzt werden. Wie dem auch sei, für Cisco brauchst du vpnc mit hybrid auth, was es vermutlich nicht für Android gibt. Daneben gibts eben Juniper, da gibts für Android wohl keine andere Lösung. Ob Junos Pulse aber mit der Uni-Lösung funktioniert, habe ich schon länger nicht mehr getestet.
http://www.juniper.net/techpubs/software/pulse/guides/j-pulse-mobile-2.0R1-android-ug.pdf
Wenn ich das hier
http://www.rz.uni-konstanz.de/angebote/remote-access/gnulinux/
richtig verstehe, brauchts keine compilierung mehr, weil bei vpnc (ab Debian 6.0, Ubuntu 10.04, openSUSE 11.3, Fedora 15) mittlerweile GnuTLS (http://de.wikipedia.org/wiki/GnuTLS) zum Einsatz kommt (was im Gegensatz zu OpenSSL keine Lizenzunverträglichkeiten mit vpnc hat).
Der Beitrag ist leider nicht mehr wirklich aktuell. Ich persönlich würde nicht mehr auf vpnc setzen, sondern auf Juniper, das ja auch ganz gut unter Linux läuft. Juniper hat den Vorteil, dass die Verbindung nicht gedrosselt wird, und dass es mittlerweile das „offizielle“ VPN der Uni Karlsruhe ist. Via vpnc hab ich nie mehr als 200kb/s übertragen können. Über Juniper hatte ich locker mal einen Mbit/s übertragen können.
Junos Pulse funzt übrigens wunderbar auch mit iPad und iPhone – wenn der Juniper VPN Server entsprechend konfiguriert wurde und Pulse zulässt.
Ansonsten für diverse Linux Juniper Network Connect verwenden (https://vpn.kit.edu).
Hilfsanleitungen guggst du hier:
http://www.scc.kit.edu/dienste/vpn.php
Danke, immer wieder hilfreich, Dein Blog!
Gerne geschehen, beachte aber dass mittlerweile der Zugang über Juniper-VPN besser läuft.
Grüße
Christoph