Hallo ich möchte ein Skript ausführen wenn sich ein Client auf meinen Openvpn Server anmeldet.zb eine Mail versenden Ich habe zwar ergoogelt das das gehen sollte aber leider weiß ich nicht wie! Ich habe einen Ubuntu Server laufen. Wenn mir jemand einen Tipp geben könnte wäre ich sehr dankbar! Lg Peter
dann gib doch mal bei google zB sowas in der art ein "openvpn server hooks" und schon findet man etwas wie "--route-up <script>"
Andi D. schrieb: > dann gib doch mal bei google zB sowas in der art ein "openvpn server > hooks" > und schon findet man etwas wie "--route-up <script>" Entweder bin ich zu doof oder du hast ein anderes Google! Ich finde leider nichts über diese Skripts. Vielen Dank Peter
Pier S. schrieb: > Hallo ich möchte ein Skript ausführen wenn sich ein Client auf meinen > Openvpn Server anmeldet Man könnte "learn-address" dazu verwenden, das führt das angegebene Script aus wenn sich ein Client verbindet.
https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html bitttteeeee schöööönnnn. Damit du am WE was schönes zum Lesen hast.
Ich habe mir die obige Doku durchgelesen, bin aber nicht wirklich weiter gekommen! Hat jemand ein Beispiel für ein Skript das ausgeführt wird wenn der Tunnel aufgebaut wurde? Vor allem wüsste ich gern wo ich das Skript ablegen muß und wie genau das Skript aufgebaut sein soll! Vielen Dank für Eure Hilfe Peter
So jetzt habe ich einen kleinen Erfolg zu vermelden. Ich habe jetzt ein Skript erstellt das Mails erfolgreich verschickt und habe auch den Aufruf in der Client.conf hinbekommen. Leider bekomme ich noch eine Fehler im Log der wie folgt lautet! Sun Mar 23 17:55:05 2014 test.up OpenVPN 1500 1544 10.98.1.6 10.98.1.5 init Sun Mar 23 17:55:05 2014 WARNING: External program may not be called unless '--script-security 2' or higher is enabled. Use '--script-security 3 system' for backward compatibility with 2.1_rc8 and earlier. See --help text or man page for detailed info. Sun Mar 23 17:55:05 2014 WARNING: Failed running command (--up/--down): external program did not execute -- returned error code -1 Sun Mar 23 17:55:05 2014 Exiting Was mache ich falsch? Lg Peter
Sehr schön. Freut mich, das du so weit gekommen bist. Ich gehe einmal davon aus, dass dein Script arbeitet aber nicht bei der Einwahl mittels openVPN ausgelöst wird. Leider muss ich gestehen, das ich die entsprechende Option nicht in der von mir verlinkten Manpage finden kann. Es kann also sein, dass dieses Problem versionsabhängig ist. Hier ein Auszug aus meiner Manpage:
1 | --script-security level [method] |
2 | This directive offers policy-level control over OpenVPN's usage of external programs and scripts. Lower level values are more restric‐ |
3 | tive, higher values are more permissive. Settings for level: |
4 | |
5 | 0 -- Strictly no calling of external programs. |
6 | 1 -- (Default) Only call built-in executables such as ifconfig, ip, route, or netsh. |
7 | 2 -- Allow calling of built-in executables and user-defined scripts. |
8 | 3 -- Allow passwords to be passed to scripts via environmental variables (potentially unsafe). |
9 | |
10 | The method parameter indicates how OpenVPN should call external commands and scripts. Settings for method: |
11 | |
12 | execve -- (default) Use execve() function on Unix family OSes and CreateProcess() on Windows. |
13 | system -- Use system() function (deprecated and less safe since the external program command line is subject to shell expansion). |
14 | |
15 | The --script-security option was introduced in OpenVPN 2.1_rc9. For configuration file compatibility with previous OpenVPN versions, use: |
16 | --script-security 3 system |
Du solltest die auf deinem System mittels ..
1 | man openvpn |
... auch selber aufrufen können und danach kannst du mit "/--script-security" danach suchen lassen. Pier S. schrieb: > Sun Mar 23 17:55:05 2014 WARNING: External program may not be called > unless '--script-security 2' or higher is enabled. Use > '--script-security 3 system' for backward compatibility with 2.1_rc8 and > earlier. See --help text or man page for detailed info. Diese Meldung soll dir sagen, dass der Dienst mit der Script-Security=1 ausgeführt wird. In diesem Fall können nur bestimmte Systemprogramme ausgeführt werden. Es gibt jetzt für dich zwei Möglichkeiten: 1.) Da Ubuntu debian style ist, gibt es die Datei "/etc/default/openvpn/". Hier kannst du bei den OPTARGS die passende Option einfügen und den Dienst neu starten.
1 | This is the configuration file for /etc/init.d/openvpn |
2 | |
3 | # |
4 | # Start only these VPNs automatically via init script. |
5 | # Allowed values are "all", "none" or space separated list of |
6 | # names of the VPNs. If empty, "all" is assumed. |
7 | # |
8 | AUTOSTART="all" |
9 | # |
10 | # Refresh interval (in seconds) of default status files |
11 | # located in /var/run/openvpn.$NAME.status |
12 | # Defaults to 10, 0 disables status file generation |
13 | # |
14 | #STATUSREFRESH=10 |
15 | #STATUSREFRESH=0 |
16 | # Optional arguments to openvpn's command line |
17 | OPTARGS="--script-security 2" |
2.) Füge in der Serverconfig ... SCRIPT-SECURITY 2 ... ein. Kann aber auch fehlschlagen, also einfach einmal testen. Ich hoffe jetzt klappt auch noch der Rest, viel Spaß noch am Gerät.
Hallo Walther, einen großen Dank für Deine Hilfe! Leider bringt Dein Vorschlag nicht den Erfolg! Habe beide Tipps ausprobiert! hier nochmals der Log. Sun Mar 23 20:55:54 2014 test.up OpenVPN 1500 1544 10.98.1.6 10.98.1.5 init Sun Mar 23 20:55:54 2014 WARNING: External program may not be called unless '--script-security 2' or higher is enabled. Use '--script-security 3 system' for backward compatibility with 2.1_rc8 and earlier. See --help text or man page for detailed info. Sun Mar 23 20:55:54 2014 WARNING: Failed running command (--up/--down): external program did not execute -- returned error code -1 Sun Mar 23 20:55:54 2014 Exiting Sind die Rechte von meinem Skript in Ordnung mit dem Befehl ls -l kommt folgendes raus. -rwx--x--x 1 root root 92 Mar 23 21:08 test.up Bin leider auf diesem Bereich sehr schwach! Vielen Dank Peter
:
Bearbeitet durch User
Das kommt jetzt darauf an, als welcher Benutzer das Script läuft. Das Werkeug ps -xu liefert mir hier folgende Info:
1 | root 14192 0.0 0.0 4928 3060 pts/1 S+ 2013 4:11 openvpn rw20.ovpn |
Hier läuft der Dienst als root, bei anderen Installationen kann es aber auch der Benutzer openvpn sein. Pier S. schrieb: > -rwx--x--x 1 root root 92 Mar 23 21:08 test.up Hier kann nur der Benutzer root das Script ausführen. Ggf die Berechtigung wie folgt anpassen oder den richtigen Eigentümer setzten. -rwxr-xr-x 1 root root 92 Mar 23 21:08 test.up Ein weiteres Problem kann sein, dass das Script nicht gefunden werden kann. Hier bitte den absoluten Pfad in der Config verwenden. Nach jeder Änderung den Dienst mit: service openvpn restart oder "/etc/init.d/openvpn restart" neu starten. Ggf. einmal die Serverconfig hier posten.
:
Bearbeitet durch User
Guten Morgen, bekomme es einfach nicht hin! Habe versucht deine Tipps anzuwenden bin mir aber nicht sicher ob ich es richtig gemacht habe! habe diesen Befehl verwendet chmod a+w test.up -rwx-wx-wx 1 root root 92 Mar 23 21:08 test.up habe auch in der client.conf den Pfad eingetragen. Ich schicke Dir auch noch das Server.conf port 443 proto tcp-server dev tun0 ca keys/test/ca.crt cert keys/test/servertest.crt key keys/test/servertest.key dh keys/test/dh2048.pem server 10.98.1.0 255.255.255.0 crl-verify keys/test/crl.pem cipher BF-CBC user nobody group nogroup status servers/serverMy/logs/openvpn-status.log log-append servers/serverMy/logs/openvpn.log verb 6 mute 20 max-clients 100 management 127.0.0.1 2000 keepalive 10 120 client-config-dir /etc/openvpn/servers/serverMy/ccd client-to-client comp-lzo persist-key persist-tun ccd-exclusive route 10.198.1.0 255.255.255.0 route 10.99.10.0 255.255.255.0 push "route 192.168.20.0 255.255.255.0" route 10.99.11.0 255.255.255.0 push "route 10.99.99.0 255.255.255.0" route 10.99.1.0 255.255.255.0 route 10.99.2.0 255.255.255.0 route 10.99.3.0 255.255.255.0 push “route-metric 512″ push “route 0.0.0.0 0.0.0.0″ Hier das Client.conf client proto tcp-client dev tun ca ca.crt dh dh2048.pem cert pier.crt key pier.key remote xxx.xxx.xxx.xxx.xxx verb 2 mute 20 keepalive 10 120 comp-lzo persist-key persist-tun float resolv-retry infinite nobind up etc/openvpn/clients/serverMy/pier/test.up Danke für Deine Hilfe Peter
:
Bearbeitet durch User
Guten Morgen Pier S. schrieb: > up etc/openvpn/clients/serverMy/pier/test.up Alle Pfade bitte absolut angeben mit "/" davor. "/etc/openvpn/clients/serverMy/pier/test.up" Ich sehe gerade, das du das Script auf dem Client ausführen möchtest, dann solltest du folgendes in die ClientConf eintragen script-security 2 Sieht sonst ganz gut aus, ich schaue da einmal drüber, wenn ich mehr Zeit habe. Aber immerhin mit Zertifikaten, Respekt. So etwas beim ersten Mal ist verdammt gut. Da sollte das Script doch keine Hürde mehr sein. ;)
Marek Walther schrieb: > Ich sehe gerade, das du das Script auf dem Client ausführen möchtest, > dann solltest du folgendes in die ClientConf eintragen Ja das war mein Plan! Mir kommt jetzt ein Zweifel ob ich das ganze richtig verstanden habe. Ich habe das Script auf dem Server abgelegt und den Aufruf in das client.conf eingetragen. ist das so richtig oder muß ich den Aufruf ins Server.conf eintragen? Vielen lieben Dank für Deine Geduld Peter
Wenn das Script nach dem Verbindungsaufbau auf dem Client ausgeführt werden soll, dann muss: -> das Script auf dem Client hinterlegt sein -> das Script in der Config des Clients eingetragen sein Wenn das Script nach dem Verbindungsaufbau auf dem Server ausgeführt werden soll, dann muss: -> das Script auf dem Server hinterlegt sein -> das Script in der Config des Server eingetragen sein
Halli Walther, Danke noch mal! Es funktioniert jetzt! Das problem ist nur das wenn ich das Skript auf dem Server ausführe ich nicht erkenne wer sich angemeldet hat und wer online ist! da die aktion nur beim ersten client ausgefürt wird! Auf dem clirnt hingegen ist die einrichtung müsamer! Danke und dchönen Tag
guten morgen, schau dir mal die exportierten variablen an: [code] Environmental Variables Once set, a variable is persisted indefinitely until it is reset by a new value or a restart,.... common_name The X509 common name of an authenticated client. Set prior to execution of --client-connect, --client-disconnect, and --auth-user-pass-verify scripts. username The username provided by a connecting client. Set prior to --auth-user-pass-verify script execution only when the via-env modifier is specified. [code] https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html da braucht man natuerlich entweder pro client ein eigenes certificate mit dem jeweils richtigen common name (CN) oder seperate usernames. alternativ ein art "DDNS" script, der client schickt dem server seinen hostname... -- randy
Hallo, Ich habe pro Client ein eigenes Certifikat! habe aber nicht verstanden wie ich das event auslösen kann wenn sich ein client anmeldet. Vielen dank für deine Gedult Peter
So jetzt habe ich das Ganze so laufen wie ich es mir am Anfang gewünscht habe! Ein großes Dankeschön an Walther! Wenn jemand Interesse an der Lösung hat bitte Melden! Vielen Dank an alle Lg Peter
Hallo, dein Beitrag ist zwar schon fast ein Jahr alt, aber müch würde es trotzdem interesieren, wie du es zum laufen gebraucht hast. Danke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.