Linux und Ich

Blog über Ubuntu, Linux, Android und IT

Lizenziert unter CC by-sa von .Bala

vpnc beim Aufbau einer Netzwerkverbindung über den Network Manager automatisch ausführen

| 3 Kommentare

Wie ich schon im Artikel VPN der Universität Karlsruhe über vpnc beschrieben habe ist es möglich das VPN der Universität Karlsruhe auch mit freier Software zu nutzen, so dass man von der Installation des Cisco VPN Clienten absehen kann.

Allerdings ist es unbequem die VPN Verbindung immer von Hand über ein Terminal aufbauen zu müssen. Doch dies lässt sich mit einem so genannten Dispatcher-Skript für den Network-Manager automatisieren.

UPDATE: Dieser Artikel ist veraltet! Sollten Sie über eine Internetsuche auf diesen Artikel gestoßen sein, so schauen Sie sich bitte besser den Artikel VPN der Uni-Karlsruhe mit vpnc (überarbeitet)… an. Dieser enthält die selben Informationen, ist jedoch auf einem aktuellen Stand!

Ich möchte es nochmal kurz betonen. Es ist für den Zugang zum VPN der Uni Karlsruhe zwingend notwenig eine selbst kompilierte Version von vpnc zu nutzen. Eine Anleitung dazu findet sich im oben beschriebenen Artikel.

Ist vpnc in der aktuellen Version installiert, legt man über

$ gksudo gedit /etc/NetworkManager/dispatcher.d/02uni-vpnc

ein Skript an, ass beim Aufbau einer Verbindung über den NetworkManager automatisch ausgeführt wird. Als Inhalt fügt man dieses hier ein.

#!/bin/bash
#/etc/NetworkManager/dispatcher.d/02uni-vpnc

#Aktion einlesen
INTERFACE=$1
ACTION=$2

#IP herausfinden
IP=$(ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://')
IP_START=$(echo $IP | awk -F. '{print $1}')

#Funktionen durchführen, je nach Aktion eine andere
case "$2" in
up)
#vpnc starten, falls im Uni Netzwerk
if [ $IP_START = 129 ]; then
vpnc
fi
;;

down)
#vpnc stoppen
if [ "$(pidof vpnc)" ]; then
vpnc-disconnect
fi
;;$

pre-up)
#einen vorher laufenden vpnc stoppen
if [ "$(pidof vpnc)" ]; then
vpnc-disconnect
killall vpnc
fi
;;

post-down)
#vpnc wirklich stoppen, falls abgestürzt
if [ "$(pidof vpnc)" ]; then
vpnc-disconnect
killall -9 vpnc
fi
;;

*)
echo $"Usage: $0 {up|down|pre-up|post-down}"
exit 1
esac$

Hat man die Dateirechte über

$ sudo chmod +x /etc/NetworkManager/dispatcher.d/02uni-vpnc

angepasst, dann wird spätenstens nach einem Neustart des System bei einem Verbindungsaufbau überprüft, ob man eine IP aus dem Bereich 192.* bekommen hat. Falls dies der Fall sein sollte, wird vpnc ausgeführt und die Verbindung zum VPN steht. Man muss jetzt also keinen Finger mehr krümmen um in das Netzwerk der Uni zu kommen. Rechner anschließen und Fertig.

Autor: Christoph

Hallo, ich bin Christoph -- Linux-User, Blogger und pragmatischer Fan freier Software. Wie Ihr ohne Zweifel bemerkt haben solltet schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen, sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Google+ oder Twitter oder natürlich dem Blog folgen.

3 Kommentare

  1. Hallo,

    ich verstehe das Skript nicht ganz. Woran wird genau erkannt, ob eine Verbindung zum Uni-wlan besteht?
    Ich würde gerne das Skript für meine UNI (FU Berlin) anpassen.

    In dem letzten Absatz hört es sich für mich so an, als wäre das Kriterium bloß, ob die IP aus dem Adressenbereich 192.*.*.* kommt. Das wäre aber für mich ein sehr schlechtes Kriterium, weil ich in fast jedem wlan und lan eine IP aus diesem Bereich bekomme.
    Zu Hause will ich jedoch keine VPN-Verbindung aufbauen und im Internet-Cafe auch nicht. Ich bräuchte ein Kriterium, dass das Uni-wlan am besten über den Namen oder ähnliches erkennt.

    Leider kenne ich mich mit solchen Skripten gar nicht aus. Wäre cool, wenn du mir helfen könntest.
    Und vielen Dank für deine coole Anleitung für vpnc mit Openssl.

    Viele Grüße
    Jeldrik

  2. Hallo Jeldrik. Diese Version des Skriptes ist aktueller. Bitte nimm die neuere Version. Dort überprüfe ich die ESSID und den Anfang der IP. Die Uni KA nutzt eigene IPs aus dem Bereich 129.x.y.z. Diese bekommst du nur an der Uni Karlsruhe. Man könnte den Filter sicherlich einschränken. Doch für den “Normalfall”: Zuhause IPs aus dem Bereich der privaten Netze und eben das VPN der Uni reichts.

  3. In deiner Erklärung ist ein kleiner Fehler, weshalb ich das nicht verstanden hatte. Im letzten Absatz schreibst, du dass das Script überprüft, ob die IP mit 192.* beginnt. Das muss natürlich 129.* heißen.
    Wegen dem Zahlendreher war ich auch verwirrt. Die Überprüfung macht dann auch Sinn.

    Ich werde mal gucken, was für eine IP mir die Uni zu weist, wenn ich mich in das WLan einloge. Wenn das wie bei euch ein spezieller IP-Bereich ist, dann ist dein Script natürlich wunderbar.

Hinterlasse eine Antwort

Auf Linux und Ich darf anonym kommentiert werden. Die Felder für Name und E-Mail-Adresse dürfen beim Eintragen eures Kommentars leer bleiben. Ich freue mich aber über jeden Kommentar, zu dem der Autor mit seinem Namen steht.