VPN der Uni Karlsruhe: 02uni-ka-vpnc überarbeitet

Avatar von Christoph Langner

3 Min. Lesezeit

25 Aufrufe

Das Dispatcher-Skript für vpnc baut die VPN-Verbindung jetzt auch über WLAN auf und bringt eine Debug-Funktion für den Fehlerfall mit.

Karlsruhe

Ich habe das Skript zum automatischen Aufbau einer VPN-Verbindung zum VPN der Universität Karlsruhe mittels vpnc etwas überarbeitet. Das Skript arbeitet nun auch wunderbar mit dem WLAN zusammen. Sollte eine Verbindung zum WLAN mit der ESSID „VPN/WEB“ aufgebaut werden, so startet nun vpnc. Zusätzlich habe ich noch eine Debug-Funktion eingebaut, falls es mal doch nicht klappen sollte….

[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! [/UPDATE]

#!/bin/bash

## 02uni-ka-vpnc 1.1 by Christoph Langner
## 2008 by Christoph Langner, published under the GPL v3
##
## Changelog
## 1.1: Ermöglicht nun auch den automatischen Aufbau des VPN über WLAN
##      Sollte man eine andere ESSID als "VPN/WEB" nutzen, so passt man dazu
##      die Variable $ESSID_VPN an.
## 1.0: Erstes Release. VPN Zugang nur via Kabel.

## INITIALISIERUNG
#Diese Werte werden vom NetworkManager an das Skript übergeben
INTERFACE=$1
ACTION=$2

## DEBUGGING
# Falls DBG_MODE=1 werden verschiedene Angaben nach $LOG ausgegeben
DBG_MODE=0
LOG=/tmp/dispatcher.log

## ESSID des Universitäts Netzwerkes
# In diesem Fall das VPN WLAN der Universität Karlsruhe
ESSID_VPN="VPN/WEB"

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

#ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $INTERFACE | grep ESSID | awk {'print $4'} | sed -e 's/ESSID://g' | sed -e 's/"//g')


## DEBUG Funktionen
log() {
if [ $DBG_MODE=1 ]; then
	echo IP: $IP >> $LOG
	echo IP_START: $IP_START >> $LOG
	echo ESSID: $ESSID >> $LOG
fi
}

log_action() {
if [ $DBG_MODE=1 ]; then
	echo ========= >> $LOG
	echo $(date) >> $LOG
	echo ACTION: $ACTION, Device: $INTERFACE >> $LOG
fi
}

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

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

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

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

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

Das Skript habe ich auch zum Download hochgeladen. Via…

$ sudo wget -P  /etc/NetworkManager/dispatcher.d/ http://www.linuxundich.de/static/2uni-ka-vpnc
$ sudo chmod +x /etc/NetworkManager/dispatcher.d/02uni-ka-vpnc

…kann man es herunterladen und ausführbar machen. Spätestens bei einem Neustart wird nun das Dispatcher-Skript ausgeführt. Achtung: vpnc muss neu kompiliert werden. Das bei Ubuntu aus den Paketquellen installierte vpnc kann sich nicht zu Cisco-VPN-Routern mit hybrider Verschlüsselung verbinden. Daher bitte diesen Artikel VPN der Universität Karlsruhe über vpnc beachten.

Ähnliche Beiträge

3 Kommentare zu „VPN der Uni Karlsruhe: 02uni-ka-vpnc überarbeitet“

  1. Avatar von bas89

    Kann man das Script so optimieren, dass die NetworkManager-eigene VPN-Routine aufgerufen wird? So kann man eher nachvollziehen, ob die Verbindung getrennt wurde und nach meiner Erfahrung ist die Verbindung auch stabiler.

  2. Avatar von Christoph

    Hallo bas89, mit ein bisschen dbus-Magie ließe sich das vermutlich machen. Ich bin aktuell aber selten an der Uni, so dass ich jetzt meist die Verbindung sowieso über den NetworkManager aufbaue.

  3. Avatar von bas89

    Ich habe eine Ewigkeit versucht, den NetworkManager mit dbus zu erreichen, aber nicht hinbekommen 🙁

    http://forum.ubuntuusers.de/topic/networkmanager-dbus/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Markdown wird unterstützt: **fett**, _kursiv_, [Linktext](URL), `Code`, Zeilen mit - für Listen, 1. für nummerierte Listen, dreifache Backticks für Codeblöcke.

Sicherheitsabfrage: Welches Logo ist das?

Über den Blog

Seit 2006 probiere ich hier aus, was Linux, freie Software und die passende Hardware so hergeben – von Distributions-Tests bis zum Raspberry-Pi-Projekt. Praxisnah statt bloßem Nachrichtenticker.

Zuletzt auf Mastodon

Scene Composer in Aktion: Ein Screenshot wird geladen, in verschiedene 3D-Szenen wie Café, Gaming-Desktop, Homeoffice und Podcast-Studio eingesetzt, gedreht und gezoomt. Anschließend wird eine Vorschau gerendert.

Ich finde Screenshots als Aufmacher oft langweilig. In der Vergangenheit habe ich daher oft den Bildschirm im wahrsten Sinne des Wortes abfotografiert. Das bringt etwas Leben in die Artikel –…

Kategorien

Blog unterstützen

Gefällt dir, was du hier liest? Mit einer kleinen Spende hilfst du, Hosting und neue Testgeräte zu finanzieren – und sorgst nebenbei für den nötigen Kaffee.

Linux und Ich — VPN der Uni Karlsruhe: 02uni-ka-vpnc überarbeitet
https://linuxundich.de/gnu-linux/vpn-der-uni-karlsruhe-02uni-ka-vpnc-uberarbeitet/ — gedruckt am 24. September 2026