Cronjob für VPN Verbindung

Status
Für weitere Antworten geschlossen.

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
ich hab ne DS413. kann mir jemand die synovpnc-datei schicken? danke für die hilfe!
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
das File solltest du aus der Firmware rausholen können. Lad dir dazu die Firmware (pat File) welche du aktuell verwendest runter.
Dann holst du das File raus. Kurzbeschrieb mit einem Linux.
Code:
mkdir tmp
cd tmp
tar -xvf /path/zum/Firmware.pat hda1.tgz
# dann entpackst du daraus dein gesuchtes File
tar -xvf ./hda1.tgz usr/syno/bin/synovpnc --strip-components 3
 
Zuletzt bearbeitet:

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
vielen dank für die hilfe. schaff ich irgendwie nicht via TERMINAL:

////
x usr/syno/bin/synovpnc
tar: 3: Not found in archive
tar: --strip-components: Not found in archive
tar: Error exit delayed from previous errors.
////

ne idee wie mit nem MAC anders an die datei ran komme? danke!
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ähm was tust du da? ;-)
Die Fehlermeldungen alleine bringen nichts wenn man das Kommando dazu nicht sehen kann
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo,

ich bin mir nicht sicher ob das so eine große Hilfe ist dir beim Scripten zu helfen. Scheinbar fehlen da doch einige grundlegende Kenntnisse. Ich kann Dir nur empfehlen dich mit jeder einzelnen Zeile in einem Script auseinander zu setzen. Wenn Du nicht weißt was sie macht - Finger weg. Gerade auf der Konsole kannst Du, wie Du ja schon weißt, viel Schaden anrichten.

In der Anlage findest Du die entsprechende Datei. Ist für die DS413 (hoffe Du hast hier kein "j" vergessen) Aus diesem Zip-Verzeichnis die Datei entpacken. Und zwar beispielsweise in eine deiner Freigaben. Sollte diese "public" heißen und sich diese auf volume1 befinden und natürlich dort auch die Datei entpackt sein, dann kannst Du diese auf der Syno an den entsprechenden Ort mit "cp" (Befehl für das kopieren) kopieren.
Rich (BBCode):
cp /volume1/public/synovpnc /usr/syno/bin

und der in #17 beschriebene Pfad war wie gesagt ein Pfad wo sich die einzelnen Definitionen (ID's) befinden. Ansehen mit

Rich (BBCode):
ls -l /usr/syno/etc/synovpnclient/pptp

Und um Änderungen vorzunehmen nicht als admin sondern als root mit Adminpasswort einloggen. Und nochmals wie bereits gesagt Vorsicht, Vorsicht, Vorsicht. root darf alles. Also auch alles zerstören.

Gruß Frank
 

Anhänge

  • synovpnc_ds_413.zip
    9,8 KB · Aufrufe: 2

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
"Scheinbar fehlen da doch einige grundlegende Kenntnisse" ist noch sehr nett gesagt :)
Danke für das File! Ich werde mich heute Abend mit größter Vorsicht mal heranwagen und berichten.

Danke Frank!

PS: Ja, ist eine DS413 keine DS413j
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Danke! Ich konnte das Problem mit Deinem File wieder beheben!

Rich (BBCode):
ls -l /usr/syno/etc/synovpnclient/pptp

bringt folgendes Ergebnis:

Rich (BBCode):
BusyBox v1.16.1 (2014-03-06 14:27:52 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

DS413> ls -l /usr/syno/etc/synovpnclient/pptp
-rw-r--r--    1 root     root           154 Mar 11 16:44 connect_p1382567679
-rw-r--r--    1 root     root           153 Mar 11 16:44 options_p1382567679.pptp
-rw-r--r--    1 root     root           151 Mar 11 16:44 pptpclient.conf
-rw-r--r--    1 root     root            96 Aug 23  2013 wvdial
-rw-r--r--    1 root     root            75 Aug 23  2013 wvdial-pipe

Mein Skript sieht jetzt so aus:
Rich (BBCode):
#!/bin/sh

if [ -f /usr/syno/etc/synovpnclient/vpnc_connecting ]
  then
    synovpnc connect --id=connect_p1382567679
    synovpnc get_conn
  else
	touch usr/syno/etc/synovpnclient/vpnc_connecting
	echo "conf_id=1382567679" >>vpnc_connecting
	echo "conf_name=andazweho" >>vpnc_connecting
	echo "proto=pptp" >>vpnc_connecting
	synovpnc connect --id=connect_p1382567679
	synovpnc get_conn
fi

und funktioniert leider nicht ;( Ne Idee warum?
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Suchspiel: Da fehlt ein p

Gruss Frank
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
habs gefunden :)

macht es aber leider nicht besser ;(

Rich (BBCode):
BusyBox v1.16.1 (2014-03-06 14:27:52 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

DS413> #!/bin/sh
DS413> 
DS413> if [ -f /usr/syno/etc/synovpnclient/vpnc_connecting ]
>   then
>     synovpnc connect --id=connect_p1382567679
>     synovpnc get_conn
>   else
> touch usr/syno/etc/synovpnclient/vpnc_connecting
> echo "conf_id=p1382567679" >>vpnc_connecting
> echo "conf_name=andazweho" >>vpnc_connecting
> echo "proto=pptp" >>vpnc_connecting
> synovpnc connect --id=connect_p1382567679
> synovpnc get_conn
> fi
touch: usr/syno/etc/synovpnclient/vpnc_connecting: No such file or directory
get arguemnt id: connect_p1382567679

No connection!!

DS413>
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hab es übersehen. Aber achte doch ein wenig besser auf die Vorlage. Da ist auch connect_ zuviel.

Gruss Frank
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Rich (BBCode):
#!/bin/sh

if [ -f /usr/syno/etc/synovpnclient/vpnc_connecting ]
  then
    synovpnc connect --id=p1382567679
    synovpnc get_conn
  else
	touch usr/syno/etc/synovpnclient/vpnc_connecting
	echo "conf_id=p1382567679" >>vpnc_connecting
	echo "conf_name=andazweho" >>vpnc_connecting
	echo "proto=pptp" >>vpnc_connecting
	synovpnc connect --id=p1382567679
	synovpnc get_conn
fi

leider noch immer nicht ;(
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
das kann auch nicht gehen weil das vpnc_connecting wohl nie gefunden wird. Einerseits fehlt ein / bei touch und anderseits solltest du beim echo >> immer den ganzen Pfad zum File verwenden oder zuerst mittels cd /usr/syno/etc/synovpnclient in das passende Verzeichnis wechseln
imho hast du wahrscheinlich zwei Files vpnc_connecting erstellt.
Ich kann mich Frank nur anschliessen, du musst bei solchen Sachen echt aufpassen. Ein kleines Detail vergessen und u.U. ist der Schaden gross
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Rich (BBCode):
#!/bin/sh

if [ -f /usr/syno/etc/synovpnclient/vpnc_connecting ]
  then
    synovpnc connect --id=p1382567679
    synovpnc get_conn
  else
	touch /usr/syno/etc/synovpnclient/vpnc_connecting
	echo "conf_id=p1382567679" >>vpnc_connecting
	echo "conf_name=andazweho" >>vpnc_connecting
	echo "proto=pptp" >>vpnc_connecting
	synovpnc connect --id=p1382567679
	synovpnc get_conn
fi

leider immer noch nicht :(

ich möchte euch wirklich nicht auf die nerven gehen und bin unheimlich dankbar für eure hilfe. ich will das nur wieder zum laufen bekommen!!! darf ich bitte jemanden hier dafür bezahlen - ich will doch nur, dass es so funktioniert wie vor dem update :)

danke!
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
und wo sind die ganzen Pfade?? :) Du wirst immer noch zwei Files haben. Wenn du nach dem >> keine komplette Pfadangabe machst landet das File im aktuellen Arbeitsverzeichnis und das muss nicht unbedingt dort sein wo dein Script das File erwartet
Mein Vorschlag:
Code:
#!/bin/sh
PFAD=/usr/syno/etc/synovpnclient
if [ -f $PFAD/vpnc_connecting ]  ; then    
 synovpnc connect --id=p1382567679    
 synovpnc get_conn  
else    
 touch $PFAD/vpnc_connecting    
 echo "conf_id=p1382567679" >>$PFAD/vpnc_connecting    
 echo "conf_name=andazweho" >>$PFAD/vpnc_connecting    
 echo "proto=pptp" >>$PFAD/vpnc_connecting    
 synovpnc connect --id=p1382567679    
 synovpnc get_conn
fi
so wäre es eindeutig wo das File erstellt wird. Variabeln (PFAD) ersparen viel Tippserei und auch mögliche Tippfehler :)
Teste ein solches Script auch immer direkt auf der Konsole bevor du es in einen cronjob verbaust. Gerade als cronjob könnte es imho sogar sein, dass synovpnc überhaupt nicht gefunden werden kann
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
ich lasse das skript über den AUFGABENPLANER laufen. vielleicht hätte ich das vorher sagen sollen? sorry!
ich glaube anders bekomme ich das überhaupt nicht auf die reihe. hat vor DSM 5.0 mit
Rich (BBCode):
#!/bin/sh 
# 
echo 1 > /usr/syno/etc/synovpnclient/vpnc_connecting
synovpnc reconnect --protocol=pptp --name=andazweho
wunderbar funktioniert.
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Woohoo! Dein Skript aus #34 funktioniert!
1000 DANK! Ich flipp aus vor Freude.

Eins noch: wie disconnecte ich diese Verbindung via Skript?
1001 DANK!
 

m4tz3

Benutzer
Mitglied seit
21. Okt 2012
Beiträge
46
Punkte für Reaktionen
0
Punkte
6
Hi, ich habe nun hier dieses Thema gelesen und noch ein anderes hier im Forum, das sich auch mit diesem Thema beschäftigt.

Sehe ich das richtig, ich erstelle also eine Datei z.B. mit dem Namen verbinden.sh mit dem folgenden Inhalt:

Rich (BBCode):
#!/bin/sh
PFAD=/usr/syno/etc/synovpnclient
if [ -f $PFAD/vpnc_connecting ]  ; then    
 synovpnc connect --id=p1382567679    
 synovpnc get_conn  
else    
 touch $PFAD/vpnc_connecting    
 echo "conf_id=p1382567679" >>$PFAD/vpnc_connecting    
 echo "conf_name=VPNNAS" >>$PFAD/vpnc_connecting    
 echo "proto=openvpn" >>$PFAD/vpnc_connecting    
 synovpnc connect --id=p1382567679    
 synovpnc get_conn
fi

Wobei VPNNAS mein OpenVPN Profil ist das ich zuvor im DSM erstellt hatte (welches manuell auch super funktioniert).
proto ist bei mir dann openvpn wenn ich per openvpn connecte.
Wo bekomme ich die ID her oder wird diese frei vergeben?
Wo verschiebe ich die Datei dann hin? Ich habe sie nach /usr/local/etc/rc.d/ kopiert und dann noch die Rechte für den Besitzer zum ausführen erteilt.
Dann würde ich im DSM im Aufgabenplaner eine neue Aufgabe erstellen. Typ: benutzerdefiniertes Skript.
Füge ich dann bei Befehl ausführen Folgendes ein: /usr/local/etc/rc.d/verbinden.sh ?
Wo ist mein Fehler irgendwie will das nicht so wirklich.

Gruß Matze
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo,

sofern Du OpenVPN nutzt findest Du die ID unter

Rich (BBCode):
ls -l /usr/syno/etc/synovpnclient/openvpn

Wirst Du sicherlich deutlich erkennen können. Scripte die sich unter /usr/local/etc/rc.d/ befinden werden beim Start einmalig ausgeführt (Müssen dann auch eine gewisse Form haben), hier sollte sich dein Script nicht unbedingt befinden. Wenn Du das über den Aufgabenplaner ausführen willst, brauchst Du nicht extra ein separates Script erstellen. Kopiere dein Script einfach in den Aufgabenplaner.

Gruß Frank
 

kermit_frosch

Benutzer
Mitglied seit
11. Feb 2016
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
skipt auch als non-root user

Hallo,
obwohl der ursprüngliche Beitrag schon älter ist, hoffe ich doch, dass mir dennoch geholfen werden kann. Auch ich will per Shell eine VPN-Verbindung herstellen. Das Skript aus Betreig #34 funktioniert prima für mich - allerdings nur als root.
Wenn ich es als normaler Nutzer oder sogar als admin ausführe misslingt die Verbindung. Im konkreten funktioniert das Erstellen und Editieren von vpnc_connecting, jedoch das Ausführen von synovpnc connect --id=1234567890 erstellt nicht die Verbindung. Ich erhalte keine Fehlermeldung aber synovpnc get_Conn liefert no connection.

Was müsste ich also ändern um das als root funktionierende Skript für jeden User zugänglich zu machen (wobei die permissions bereits korrekt sein sollten...)
vielen Dank.
kermit

ps: falls relevant: DSM 5.2-5644 Update 3 auf DS213j
 

axefg

Benutzer
Mitglied seit
22. Apr 2012
Beiträge
67
Punkte für Reaktionen
0
Punkte
6
Kann es sein, dass dies in der heutigen Zeit (2018) nicht mehr so geht?

PHP:
#!/bin/sh 
# 
echo 1 > /usr/syno/etc/synovpnclient/vpnc_connecting
synovpnc reconnect --protocol=openvpn --name=ZIEL

Mir fehlt vpnc_connecting im Verzeichnis.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat