VPN Auto-Connect

tesla2k2

Gala
Mitglied seit
13.06.05
Beiträge
53
Moin,

mich hat es wahnsinnig gemacht, dass ich jedesmal wenn ich mich im Uni-WLAN einlogge (VPN-Verbindung) das ganze per Hand machen muss. Da ich eine schon fertige Lösung im Netz nicht gefunden habe, hab ich mir halt selbst was gebastelt. Das ganze basiert auf Sleepwatcher http://www.bernhard-baehr.de/ und nem Applescript. Zunächst prüft es, in welchem WLAN ich mich befinde. Wenn es das Uni-Netz ist, schmeisst es automatisch die VPN-Verbindung an.

Da ich mich wie gesagt blöde gesucht habe, will ich allen anderen das ganze nicht vorenthalten.

AppleScript:
Code:
set NetName to do shell script ("system_profiler SPAirPortDataType |grep -e " & quoted form of "Current Wireless Network:" & " |awk '{print $4,$5,$6,$7}'") as string

if NetName contains "AnasHome" then
	-- at home, no pptp connection
else if NetName contains "Uni-Bremen" then
	-- on campus, start pptp-connection
	tell application "Internet Connect"
		activate
		connect configuration "VPN (PPTP)"
		quit
	end tell
else
	-- somewhere else, do nothing
end if
Die Namen der WLAN-Netze muss man dann natürlich für seine Bedürfnisse anpassen.

Wenn man Sleepwatcher installiert hat, braucht es noch eine Konfigurationsdatei .wakeup im Home-Verzeichniss. Der open-Befehl muss auf das oben genannte Script zeigen.
Code:
#!/bin/sh
open "/Users/tschi/Library/Scripts/AutoConnect.app"
Diese Datei muss mit chmod +x .wakeup ausführbar gemacht werden.

Wenn irgendwem dazu noch was einfällt, einfach mal posten.
 
  • Like
Wertungen: j33n5 und .holger

.holger

Borowitzky
Mitglied seit
13.09.04
Beiträge
8.970
Boah goil, danke, mal sehen ob ich das hinbekomme, aber die Anleitung sieht ja ganz einfach aus ;)
 

kevin@mac

Boskop
Mitglied seit
09.02.08
Beiträge
212
Für Leopard geht folgendes Skript:
Code:
tell application "System Events"
    tell current location of network preferences
        set VPNservice to service "VPN (L2TP) 2" -- name of the VPN service
        if exists VPNservice then connect VPNservice
    end tell
end tell
Das ganze über den Network Locator "MarcoPolo" (2.5) ausführen lassen.
 

harden

Roter Eiserapfel
Mitglied seit
28.03.05
Beiträge
1.445
Da ich in der Uni den Cisco VPN client nutzen muss (weil das UNI Netz OSX nicht so recht mag...) hab ich noch Shimo installiert, dass ebenfalls automatisch connected.
 

kevin@mac

Boskop
Mitglied seit
09.02.08
Beiträge
212
Ja ging ja aber um den PPTP-VPN-Clienten von Leopard und Cisco kann nur IPSec. Shimo ist auf jeden Fall ein sehr gutes Progamm für den Cisco-Client :)
 

_chris

Roter Delicious
Mitglied seit
22.02.08
Beiträge
95
Diese Datei muss mit chmod +x .wakeup ausführbar gemacht werden.
hallo. hier habe ich noch fragen. ich habe das startupitempackage installiert, der daemon wird auch gestartet. soweit so gut.

in den dateien r.sleep und rc.wakup kann ich lesen, dass jeweils ein applescript mit dem suffix .sleep oder .wakeup, im verzeichnis /home liegend, gestartet wird (ich interpretiere, dass das der ordner ist, der nach meinem kurznamen in mac os x benannt ist, RICHTIG?)

und diese beiden scripts hab ich dann als ausführbar abgespeichert (.app) und jeweils das passende suffix angehangen (bzw. so geändert)

meine fragen:

- ausführbare datei (also vorher .app), richtig?
- /home = /MEINKURZNAME, richtig?

gruß,
christian
 

kevin@mac

Boskop
Mitglied seit
09.02.08
Beiträge
212
Du hast das Applescript, das du als Anwendung speicherst (.app).
In der .wakeup in deinem Home-Verzeichnis (also dein Name) schreibst du folgendes:
#!/bin/sh
open "/Users/tschi/Library/Scripts/AutoConnect.app"

Mit dem jeweiligen Pfad zum Applescript, damit sollte es dann ausgeführt werden.
 

_chris

Roter Delicious
Mitglied seit
22.02.08
Beiträge
95
äh, sorry. ich steh da aufm schlauch. kannst du den ablauf step-by-step niederschreiben?

ich habe zwei applescripts im home ordner angelegt, das eine mounted, das andere unmounted.

im verzeichnis /etc/ liegen zwei dateien, eine rc.wakeup und eine rc.sleep

an diesen dateien muss ich dann was verändern, richtig? welche zeilen? dort taucht mehrfach, je nach datei, .wakeup bzw. .sleep auf. das hab ich dann geändert in die jeweiligen namen der applescripts, also in meinem fall mount.wakeup und unmount.sleep.

in der konsole kann ich sehen, dass das applescript mount.wakeup durch das shell script im ordner /etc/ ausgeführt wird. aber von der ausführung des unmount.sleep ist nichts zu sehen :(

sorry für die teils dummen fragen. apple scripts versteh ich ja, aber bei den zusammenhängen und shell scripts.. s.o. .. schlauch :-[

besten dank!

PS: AAAHH, ich hab die unmount zeile in der konsole entdeckt. wird also auch ausgeführt. aber, hab ich das denn so alles richtig gemacht? zumindest hatte ich auch vorher keine probleme mit der airdisk. neuerdings. sporadisch vorher allerdings schon.
 

kevin@mac

Boskop
Mitglied seit
09.02.08
Beiträge
212
Du musst einfach in deinem Home-Verzeichnis eine Datei namens ".wakeup" anlegen und dort den Inhalt:
Code:
#!/bin/sh
open "/Users/BENUTZERNAME/meinapplescript.app"
hineinschreiben und diese datei dann ausführbar machen (so wie es im 1. Post beschrieben wurde).
Den Pfad natürlich anpassen, je nachdem wo das Applescript liegt.
Dein Applescript musst du im Scripteditor einfach nur durch "Speichern Unter" als Programm speichern.
 

_chris

Roter Delicious
Mitglied seit
22.02.08
Beiträge
95
Szenario 1:

ich hatte in den existierenden scripts rc.sleep und rc.wakeup jeweils den dateinamen der applescripts eingefügt (die suffixe waren dort schon drin, daher nur mount bzw. unmount davor gesetzt, überall wo die suffixe vorkamen), mit dem resultat, das es funktionierte, zumindest liess die konsole darauf schliessen:

11.03.08 16:21:00 kernel AFPSleepWakeHandler: going to sleep
11.03.08 16:21:00 /etc/rc.sleep[228] executing unmount.sleep of user cstenger
.
.
.
11.03.08 16:21:30 kernel AFPSleepWakeHandler: waking up
11.03.08 16:21:30 /etc/rc.wakeup[239] executing mount.wakeup of user cstenger
11.03.08 16:21:34 kernel AirPort: Link Up on en1


Szenario2:

ich habe die anweisungen befolgt. weiterhin zwei applescripte (mount.app und unmount.app), mit texteditor zwei dateien erzeugt, mit dem pfad zum einen bzw. anderen applescript. dann die beiden suffixe geändert, in .sleep und .wakeup, dann mit terminal beide ausführbar gemacht (icon hat sich geändert, apfel+i "Ausführbare UNIX-Datei" usw ..

aber: nun steht in der konsole nichts mehr davon, dass die applescripts gestartet wurden.

ich bin total ratlos. was mich allerdings generell wundert, das problem das ich hatte weswegen ich überhaupt auf die sleepwatcher sache gekommen bin, nämlich das nach dem ruhezustand die airdisk rumspinnt, existiert nicht mehr.

danke für euer verständnis.

gruß,
christian
 

_chris

Roter Delicious
Mitglied seit
22.02.08
Beiträge
95
ich korrigiere mich, in den dateien rc.sleep und rc.wakeup habe ich noch die dateinamen vervollständigt, nun klappt es anscheinend (wieder):

11.03.08 19:28:34 kernel AFPSleepWakeHandler: going to sleep
11.03.08 19:28:34 /etc/rc.sleep[681] executing sleepwatcher.sleep of user cstenger
.
.
.
11.03.08 19:29:22 kernel AFPSleepWakeHandler: waking up
11.03.08 19:29:22 /etc/rc.wakeup[696] executing sleepwatcher.wakeup of user cstenger
11.03.08 19:29:22 configd[14] rtmsg: error writing to routing socket
11.03.08 19:29:26 kernel AirPort: Link Up on en1
danke, das wars wohl erstmal. ich belasse es dabei.

gruß,
christian
 

kevin@mac

Boskop
Mitglied seit
09.02.08
Beiträge
212
Und wozu hast du an der rc.sleep in /etc rumgespielt??? Du solltest einfach nur eine Datei namens ".wakeup" in deinem Homeverzeichnis erstellen, weil die durchsucht wird...
 

_chris

Roter Delicious
Mitglied seit
22.02.08
Beiträge
95
naja genau die situation hatte ich beim vorletzten post ja. tat sich nichts. erst, als ich in den beiden rc dateien den kompletten dateinamen angegeben habe, gings.

aber genau auf die gleiche art und weise ging es vorher eben auch, ohne die zusätzlichen shell scripts dazwischen, nämlich dass die rc dateien DIREKT auf die applescripts verwiesen haben.

seltsamerweise. aber es ging.

PS: gerade kam ein update für das airport dienstprogramm, laufwerksprogramm und basisstationsagent heraus. vielleicht wird das ganze konstrukt airdisk jetzt weniger buggy.
 
Zuletzt bearbeitet:

stk

Grünapfel
Mitglied seit
05.01.04
Beiträge
7.141
Moin,

*fredausgrab*

stehe gerade vor einer ganz ähnlichen Anforderung. Ich stelle meinen Kunden ein VPN-Login zu meinem Server zur Verfügung um darüber anfallende Wartungsarbeiten auf deren Rechner ausführen zu können.

Da ich dabei auf die Einwahlhilfe der Kunden und die Stabilität der Leitung (Zwangstrennung als Stichwort) angewiesen bin, würde ich das ganze gerne weiter automatisieren. Meine Idee ist es, über eine bestimmte Mail ein AppleScript zu triggern, welche den VPN-Verbindungsaufbau auslöst.

Um auf der sicheren Seite zu sein muß natürlich gewährleistet sein, das die Verbindung auch zu meinem Server und nicht zu irgendeinem anderen aufgebaut wird. Frage daher: wie schaffe ich es, das

a) Internet Connect eine bestimmte Configuration für die L2TP-Anwahl verwendet?
b) erst mit dem Script die Übergabe der Parameter festgelegt wird oder sogar
c) über den Inhalt der Mail die Einwahldaten bestimmt werden können

Alles was ich bisher an Lösungen gefunden habe, geht von einer einzigen existierenden Einwahlkonfiguration aus und enthält keinerlei Fehlerbehandlung ob die erwartete Konfiguration vorhanden, aktiv und valide ist.

Gruß Stefan
 

j33n5

Horneburger Pfannkuchenapfel
Mitglied seit
18.12.06
Beiträge
1.407
Hi Leute,

seit langer Zeit mal wieder hier am Start.. :D

Ich bekomme das ursprüngliche Script mit Sleepwatcher nicht zum Laufen und meine, ich kann den Fehler auf folgende Terminal-Ausgabe eingrenzen:
Code:
jens-macbook:~ jens$ system_profiler SPAirPortDataType |grep -e " & quoted form of "Current Network Information" & " |awk '{print $4,$5,$6,$7}'
grep: Network: No such file or directory
grep: Information & : No such file or directory
Weiß jemand, warum? Scheinbar stimmt irgendetwas mit den Anführungszeichen nicht. Ich bin mit Lion unterwegs.


p.s.: Bei Lion hat sich "Current Wireless Network:" zu "Current Network Information" im System Profiler geändert.
 
Zuletzt bearbeitet:

j33n5

Horneburger Pfannkuchenapfel
Mitglied seit
18.12.06
Beiträge
1.407
Problem anders gelöst

hi Leute,

ich habe das Problem nun mir pearPortVPN gelöst. Läuft wunderbar!
 
  • Like
Wertungen: Ragnir

Ragnir

Adams Parmäne
Mitglied seit
18.10.08
Beiträge
1.320
Vielen Dank, das werde ich gleich mal ausprobieren. :)