OpenVPN: client-connect command failed: could not execute external program

MikeCC

Neuer User
Mitglied seit
18 Mrz 2006
Beiträge
57
Punkte für Reaktionen
0
Punkte
0
Hallo,

mein OpenVPN Server auf meiner FB funktioniert auf einmal nicht mehr auf Grund der client-connect Option.
Ich glaube es ist seitdem ich von freetz 1.1 auf freetz-devel-4098 aktualisiert habe.

Ich möchte gerne, dass ein Script beim Connect eines Clients ausgeführt wird.

Meine openvpn.conf:
proto udp
dev tap0
ca /tmp/flash/ca.crt
cert /tmp/flash/box.crt
key /tmp/flash/box.key
dh /tmp/flash/dh.pem
tls-server
port 1194
mode server
ifconfig-pool 10.0.0.2 10.0.0.9
push "route 10.0.0.0 255.255.255.0"
route 10.0.0.0 255.255.255.0
ifconfig 10.0.0.1 255.255.255.0
push "route-gateway 10.0.0.1"
max-clients 3
client-to-client
tun-mtu 1500
mssfix
log /var/tmp/debug_openvpn.out
verb 9
daemon
cipher BF-CBC
comp-lzo
keepalive 10 60
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key
script-security 2 system
client-connect /var/media/ftp/uStor01/cmd/tt.sh

Das Script tt.sh
#!/bin/sh
exit 0

Folgende Berechtigungen sind für das Script gesetzt:
-rwxrwxrwx 1 root root 17 Dec 29 23:41 tt.sh

Leider bekomme ich immer folgende Meldung in der debug_openvpn.out
...client-connect command failed: could not execute external program

Meine OpenVPN Server Version
OpenVPN 2.1_rc22 mipsel-linux [SSL] [LZO2] [EPOLL] [MH] built on Dec 20 2009
Developed by James Yonan
Copyright (C) 2002-2009 OpenVPN Technologies, Inc. <[email protected]>

Kann mir jemand sagen warum mein Script nicht ausgeführt werden kann.
 
Ich denke dass liegt daran, dass seit einiger Zeit das OpenVPN mittels chroot "eingesperrt" wird.

Geht denn "client-connect tt.sh" wenn du das Skript tt.sh nach /tmp/openvpn kopierst??

Jörg
 
Leider funktioniert das auch nicht.

Gleiche Fehlermeldung in der debug_openvpn.out:
...client-connect command failed: could not execute external program

Code:
/var/tmp/openvpn # ls -la
drwxr-xr-x    3 root     root            0 Dec 30 09:03 .
drwxrwxrwt    7 root     root            0 Dec 30 09:16 ..
drwxr-xr-x    2 root     root            0 Dec 23 10:05 etc
-rwxr-xr-x    1 openvpn  openvpn        17 Dec 30 09:03 tt.sh

/var/tmp/openvpn # cat /var/mod/etc/openvpn.conf
#  OpenVPN 2.1 Config, Wed Dec 30 09:15:20 CET 2009
proto udp
dev tap0
ca /tmp/flash/ca.crt
cert /tmp/flash/box.crt
key /tmp/flash/box.key
dh /tmp/flash/dh.pem
tls-server
port 1194
mode server
ifconfig-pool 10.0.0.2 10.0.0.9
push "route 10.0.0.0 255.255.255.0"
route 10.0.0.0 255.255.255.0
ifconfig 10.0.0.1 255.255.255.0
push "route-gateway 10.0.0.1"
max-clients 3
client-to-client
tun-mtu 1500
mssfix
log /var/tmp/debug_openvpn.out
verb 5
daemon
cipher BF-CBC
comp-lzo
keepalive 10 60
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key
script-security 2 system
client-connect tt.sh
(auch mit client-connect /tmp/openvpn/tt.sh klappt es nicht)
 
Zuletzt bearbeitet:
Also anscheinend liegt das Problem wirklich bei dem chroot.

Glaube das Script kann nicht ausgeführt werden weil durch das chroot auch kein Zugriff mehr auf /bin/sh besteht.

Folgende Befehle führen nämlich auch zu Fehlern:
Code:
/ # ls -la /tmp/openvpn/
drwxr-xr-x    3 root     root            0 Dec 30 09:37 .
drwxrwxrwt    7 root     root            0 Dec 30 09:50 ..
drwxr-xr-x    2 root     root            0 Dec 23 10:05 etc
-rwxrwxrwx    1 openvpn  openvpn        11 Dec 30 09:37 t.sh
-rwxrwxrwx    1 openvpn  openvpn        17 Dec 30 09:03 tt.sh
/ # cat /tmp/openvpn/tt.sh 
#!/bin/sh
exit 0
/ # cat /tmp/openvpn/t.sh  
echo hallo
/ # chroot /tmp/openvpn/ /tt.sh
chroot: cannot execute /tt.sh: No such file or directory
/ # chroot /tmp/openvpn/ /t.sh 
chroot: cannot execute /t.sh: No such file or directory
/ # chroot /tmp/openvpn/      
chroot: cannot execute /bin/sh: No such file or directory
/ # chroot /            


BusyBox v1.12.4 (2009-12-18 16:10:01 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # exit
/ #
 
...folgendes verstehe ich wiederum nicht:
Code:
/ # chroot / /tmp/openvpn/t.sh 
t.sh: applet not found
/ # chroot /


BusyBox v1.12.4 (2009-12-18 16:10:01 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # /tmp/openvpn/t.sh 
hallo
/ # exit
/ #
Warum kann chroot / /tmp/openvpn/t.sh nicht ausgeführt werden?
 
Weil dort etwas wichtiges fehlt, was in der Datei tt.sh vorhanden ist, die erste Zeile.

Und wenn man Programme aus einer chroot Umgebung ausführen will, muß man dafür sorgen, daß alle benötigten Dateien dort vorhanden sind.
 
...mmh also am einfachsten wäre es doch wenn ich ohne chroot, sowie unter freetz 1.1.1, arbeiten könnte.

Gibt es eine Möglichkeit unter freetz chroot im openvpn zu deaktivieren?
 

Statistik des Forums

Themen
246,300
Beiträge
2,249,713
Mitglieder
373,904
Neuestes Mitglied
Elemir
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.