dante2191
Goto Top

OpenVPN - Verbindungsscript fehlgeschlagen Exitcode 2

Hallo zusammen,

ich habe ein Problem beim Ausführen eines up-Scripts bei OpenVPN, was mich langsam die Nerven kostet.

Hab das Script unter C:\Programme\OpenVPN\config\config1 zusammen mit der Config und den Zertifikaten abgelegt und entsprechend der Anleitung mit XXX_up.bat benannt. (XXX ist der Dateiname der Config ohne Endung )

Eine Verbindung ohne das Script funktioniert einwandfrei. Kaum ist das Script drin, erscheint, wenn er das Script ausführen will folgende Fehlermeldung:

"Verbindungsscript fehlgeschlagen (Exitcodee=2)"

Hatte hier jemand diese Meldung schon mal?

Bitte um Hilfe

Danke im Voraus.

Content-ID: 337942

Url: https://administrator.de/contentid/337942

Ausgedruckt am: 19.11.2024 um 15:11 Uhr

aqui
aqui 16.05.2017 um 15:40:06 Uhr
Goto Top
Dann wäre das doch eher was für die Rubrik Scripting hier (Batch und Shell) statt Netzwerk.
Damit es die Scripting Gurus auch lesen...
Dante2191
Dante2191 16.05.2017 um 16:56:40 Uhr
Goto Top
Thema verschoben - Danke für den Einwand face-wink
Pedant
Pedant 16.05.2017 um 17:00:42 Uhr
Goto Top
Hallo Dante2191,

Ich bin mir nicht sicher, ob das bei up.bat auch relevant und die Lösung ist, aber füg mal in Deiner Config-Datei diese Zeile ein:
script-security 2

Gruß Frank
Dante2191
Dante2191 22.05.2017 um 11:32:13 Uhr
Goto Top
Hi Frank,

danke für die schnelle Rückmeldung. Diese Zeile hab ich auch schon probeweise eingefügt. Am Anfang und Ende der Config-Datei. Leider keine Änderung.

Gruß
Pedant
Pedant 22.05.2017 um 12:12:31 Uhr
Goto Top
Hallo Dante2191,

Zitat von @Dante2191:
Hab das Script unter C:\Programme\OpenVPN\config\config1 zusammen mit der Config und den Zertifikaten abgelegt

Eine Verbindung ohne das Script funktioniert einwandfrei. Kaum ist das Script drin, erscheint, wenn er das Script ausführen will folgende Fehlermeldung:
"Verbindungsscript fehlgeschlagen (Exitcodee=2)"

versuch es mal mit einem ganz banalen Skriptinhalt, beispielsweise
<codetype="plain">@echo off
REM mal mit und ohne REM pruefen
REM echo Alles ist gut> d:\ergebnis.txt
exit /b 0
nur um auszuschließen, dass der Fehler nicht im Skript liegt.

Falls das nichts bringt, dann poste bitte eine zensierte Version Deiner Config-Datei.

Gruß Frank
Pedant
Pedant 22.05.2017 um 16:24:45 Uhr
Goto Top
Hallo Dante2191,

ergänzend zum Bisherigen:

Ich hab jetzt mal rumprobiert.
XXX_up.bat und XXX_down.bat funktioniert bei mir ohne dass sie in der Config erwähnt werden und ohne irgendwo script-security n eingetragen zu haben.

Ich habe also keine Idee was da bei Dir schief läuft, es sei denn die Ursache läge im Skript.

Schöner ist es mit Up und Down in der Config, da man dort wahlfrei ist, was Ort und Namen des Skriptes angeht.
Dabei ist script-security n aber relevant.
Wenn ich das Up- (und Down-) Skript in der Config definiere, also an eine funktionierende Config diese Zeilen anhänge funktioniert es auch.
...
...
script-security 2
# Skripte mit Pfadangabe
up "C:\\Program Files\\Test\\MeinUp.cmd"   
down "C:\\Program Files\\Test\\MeinDown.cmd"   
# Alternativ die Skripte ohne Pfadangabe
# up MeinUp.cmd
# down MeinDown.cmd

Wichtig
Auch wenn man die Skripte mit Pfad angibt, so ist bei deren Ausführung der Config-Ordner von OpenVPN das aktuelle Verzeichnis für das Skript.
Sich dessen bewusst, muss man entweder alle pfadrelevanten Dinge mit absoluten Pfadangaben versehen
oder
dafür sorgen, dass das aktuelle Verzeichnis ist, was man gerne hätte.

In meinem Beispiel-Skript wechsel ich Laufwerk und Pfad, hin zum Skript-Ablageort und prüfen anschließend, ob das auch funktioniert hat.

MeinUp.cmd
@echo off

::Wechsel zu Laufwerk und Pfad des Skriptes
cd /d "%~dp0"  

::Prüfen ob's geklappt hat 
for /f "tokens=*" %%p in ('cd') do set aktuellerpfad=%%p  
echo Ich bin jetzt hier:
echo Aktueller Pfad: %aktuellerpfad%
if "%aktuellerpfad%\" == "%~dp0" goto machwas  
goto fehler

:fehler
echo Hier lief was schief.
pause
:goto ende

:machwas
echo Jetzt geht's los...  
echo Ich bin up>>up.txt
notepad up.txt
goto ende

:ende

Mein Beispiel-Skript enthält den Aufruf eines externen Befehls (notepad).
Wenn ich in der Config script-security 0 oder script-security 1 eintrage konnt keine Verbindung zustande und im Log finde ich diese Zeile:
<code type=plain">Mon May 22 15:44:23 2017 us=183212 WARNING: External program may not be called unless '--script-security 2' or higher is enabled. See --help text or man page for detailed info.
Mit script-security 2 kommt die Verbindung zustande, die Skripte werden ausgeführt und im Log findet das eine kurze Erwähnung.
<code type=plain">C:\Program Files\Test\MeinDown.cmd OpenVPN xxxx xxxx 192.168.xxx.xxx 255.255.255.0 init


Zitat von @Dante2191:
"Verbindungsscript fehlgeschlagen (Exitcodee=2)"
Welche Version von OpenVPN nutzt Du?
Per Kommandozeile oder mit OpenVPN-GUI?

Zitat von @Dante2191:
"C:\Programme\..."
Welche Betriebssystem nutzt Du? XP?

Gruß Frank
Dante2191
Dante2191 29.05.2017 um 08:08:17 Uhr
Goto Top
Moin moin,

wow, klasse Beiträge. Bin heute noch außer Haus aber werds so bald ich kann mal ausprobieren. Bis hierher schon mal vielen Dank. Ich geb schnellstmöglich Bescheid obs so geklappt hat.

PS: Ich nutze OVPN-GUI mit Win7-PCs

Bis morsche.
Dante2191
Dante2191 30.05.2017 um 13:47:08 Uhr
Goto Top
Grüße,
also habs noch mal in allen Varianten wie beschrieben probiert:

Variante 1: mit Logon_up.cmd/Logon_up.bat
Ergebnis: Wenn ich die Verbindung starten will, erscheint das Fenster zum Verbinden, bleibt aber leer. Aktueller Status: Verbinden

Variante 2: mit script-security 2 und Up.cmd/.bat Down.cmd/.bat
Ergebnis: Fenster öffnet sich und er will die Verbindung herstellen. Ausgegeben wird folgendes und "hängt" mit der letzten Zeile
Tue May 30 13:29:05 2017 OpenVPN 2.3.14 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Dec  7 2016
Tue May 30 13:29:05 2017 Windows version 6.1 (Windows 7) 64bit
Tue May 30 13:29:05 2017 library versions: OpenSSL 1.0.2i  22 Sep 2016, LZO 2.09
Enter Management Password:
Tue May 30 13:29:05 2017 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Tue May 30 13:29:05 2017 Need hold release from management interface, waiting...
Tue May 30 13:29:06 2017 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Tue May 30 13:29:06 2017 MANAGEMENT: CMD 'state on'  
Tue May 30 13:29:06 2017 MANAGEMENT: CMD 'log all on'  
Tue May 30 13:29:06 2017 MANAGEMENT: CMD 'hold off'  
Tue May 30 13:29:06 2017 MANAGEMENT: CMD 'hold release'  
Tue May 30 13:29:06 2017 WARNING: --ping should normally be used with --ping-restart or --ping-exit
Tue May 30 13:29:06 2017 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Tue May 30 13:29:06 2017 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Tue May 30 13:29:06 2017 Socket Buffers: R=[8192->8192] S=[8192->8192]
Tue May 30 13:29:06 2017 Attempting to establish TCP connection with [AF_INET]xxx.xxx.xxx.xx:443 [nonblock]
Tue May 30 13:29:06 2017 MANAGEMENT: >STATE:1496143746,TCP_CONNECT,,,
Tue May 30 13:29:07 2017 TCP connection established with [AF_INET]xxx.xxx.xxx.xx:443
Tue May 30 13:29:07 2017 TCPv4_CLIENT link local: [undef]
Tue May 30 13:29:07 2017 TCPv4_CLIENT link remote: [AF_INET]xxx.xxx.xxx.xx:443
Tue May 30 13:29:07 2017 MANAGEMENT: >STATE:1496143747,WAIT,,,
Tue May 30 13:29:07 2017 MANAGEMENT: >STATE:1496143747,AUTH,,,
Tue May 30 13:29:07 2017 TLS: Initial packet from [AF_INET]xxx.xxx.xxx.xx:443, sid=e7423963 95bb7173
Tue May 30 13:29:07 2017 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Tue May 30 13:29:07 2017 VERIFY OK: depth=1, C=DE, ST=BY, L=test, O=test, OU=IT, CN=test CA, name=EasyRSA, emailAddress=test@domain.com
Tue May 30 13:29:07 2017 VERIFY OK: depth=0, C=DE, ST=BY, L=test, O=test, OU=IT, CN=test, name=EasyRSA, emailAddress=test@domain.com
Tue May 30 13:29:08 2017 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key  
Tue May 30 13:29:08 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication  
Tue May 30 13:29:08 2017 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key  
Tue May 30 13:29:08 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication  
Tue May 30 13:29:08 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Tue May 30 13:29:08 2017 [RB-DEOKY01] Peer Connection Initiated with [AF_INET]xxx.xxx.xxx.xx:443
Tue May 30 13:29:09 2017 MANAGEMENT: >STATE:1496143749,GET_CONFIG,,,
Tue May 30 13:29:11 2017 SENT CONTROL [test]: 'PUSH_REQUEST' (status=1)  
Tue May 30 13:29:16 2017 SENT CONTROL [test]: 'PUSH_REQUEST' (status=1)  
Tue May 30 13:29:21 2017 SENT CONTROL [test]: 'PUSH_REQUEST' (status=1)  
Tue May 30 13:29:22 2017 PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS xxx.xxx.xxx.xxx,ping 20,ping-restart 60,topology subnet,route-gateway xxx.xxx.xxx.xxx,ifconfig xxx.xxx.xxx.xxx 255.255.255.0'  
Tue May 30 13:29:22 2017 OPTIONS IMPORT: timers and/or timeouts modified
Tue May 30 13:29:22 2017 OPTIONS IMPORT: --ifconfig/up options modified
Tue May 30 13:29:22 2017 OPTIONS IMPORT: route-related options modified
Tue May 30 13:29:22 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Tue May 30 13:29:22 2017 ROUTE_GATEWAY xx.xxx.xx.xxx/255.255.255.252 I=16 HWADDR=00:xx:xx:xx:xx:xx
Tue May 30 13:29:22 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue May 30 13:29:22 2017 MANAGEMENT: >STATE:1496143762,ASSIGN_IP,,xxx.xxx.xxx.xxx,
Tue May 30 13:29:22 2017 open_tun, tt->ipv6=0
Tue May 30 13:29:22 2017 TAP-WIN32 device [LAN-Verbindung 2] opened: \\.\Global\{68A6DB18-3D17-4C87-ABB2-075B5B85B135}.tap
Tue May 30 13:29:22 2017 TAP-Windows Driver Version 9.21 
Tue May 30 13:29:22 2017 Set TAP-Windows TUN subnet mode network/local/netmask = xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx/255.255.255.0 [SUCCEEDED]
Tue May 30 13:29:22 2017 Notified TAP-Windows driver to set a DHCP IP/netmask of xxx.xxx.xxx.xxx/255.255.255.0 on interface {68A6DB18-3D17-4C87-ABB2-075B5B85B135} [DHCP-serv: xxx.xxx.xxx.xxx, lease-time: 31536000]
Tue May 30 13:29:22 2017 Successful ARP Flush on interface [34] {68A6DB18-3D17-4C87-ABB2-075B5B85B135}
Tue May 30 13:29:22 2017 Logon.cmd LAN-Verbindung 2 1500 1559 xxx.xxx.xxx.xxx 255.255.255.0 init
Tue May 30 13:29:22 2017 env_block: add PATH=C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem

Mein Logon/-off Script hab ich so abgewandelt, dass lediglich eine Textausgabe kommt. Also eigentlich ganz einfach face-wink

Die OVPN-Config sieht so aus:
proto tcp-client
remote xxx.xxx.xxx.xxx 443

dev tun

nobind
persist-key
ca ca.crt
cert User1.crt
key User1.key

tls-client

ping 10
verb 3

cipher AES-256-CBC
auth SHA1
pull


auth-user-pass "C:\\Programme\\OpenVPN\\config\\Config1\\PW.txt"  
route xx.0.0.0 255.0.0.0
route xxx.0.0.0 255.0.0.0
route xxx.xxx.0.0 255.255.0.0

script-security 2
up Logon.cmd
down Logoff.cmd
Pedant
Pedant 30.05.2017 um 14:47:05 Uhr
Goto Top
Hallo Dante2191,

Zitat von @Dante2191:
...
script-security 2
up Logon.cmd
down Logoff.cmd

Darf ich davon ausgehen, dass die Verbindung erfolgreich aufgebaut wird, wenn Du die Skripte auskommentierst?
...
script-security 2
; up Logon.cmd
; down Logoff.cmd



Zitat von @Dante2191:
Ergebnis: Fenster öffnet sich und er will die Verbindung herstellen. Ausgegeben wird folgendes und "hängt" mit der letzten Zeile
Mein Logon/-off Script hab ich so abgewandelt, dass lediglich eine Textausgabe kommt. Also eigentlich ganz einfach face-wink

Mal ins Blaue:
Nimm das Wort pause aus Deiner cmd.
Es ist zwar nett, wenn Du per Doppelklick auf die cmd auch sehen kann, dass die gewünscht Textausgabe kommt, aber die Verbindung wird erst aufgebaut, wenn die cmd abgearbeitet/beendet/geschlossen ist.

Gruß Frank
Dante2191
Dante2191 12.06.2017 um 14:54:07 Uhr
Goto Top
Hi, sorry für die späte Antwort. Geht grad ein bisschen drunter und drüber face-smile

Hab wie beschrieben getestet: Das Script wurde angepasst. Leider immer noch kein Verbindungsaufbau. Gleicher Fehler wie oben beschrieben.
Wenn ich die up und down im Konfigurationsscript auskommentiere, wird die Verbindung wie gewünscht aufgebaut.

Vielen Dank für weitere Vorschläge und viele Grüße.
Pedant
Pedant 12.06.2017 um 16:03:08 Uhr
Goto Top
Hallo Dante2191,

Zitat von @Dante2191:
Mein Logon/-off Script hab ich so abgewandelt, dass lediglich eine Textausgabe kommt. Also eigentlich ganz einfach

Zitat von @Pedant:
Mal ins Blaue:
Nimm das Wort pause aus Deiner cmd.
Was ist damit?

Falls es das nicht ist...

Zitat von @Dante2191:
Hab wie beschrieben getestet:
Wie wo beschrieben, wie hier:
Zitat von @Dante2191:
Variante 1: mit Logon_up.cmd/Logon_up.bat
Variante 2: mit script-security 2 und Up.cmd/.bat Down.cmd/.bat
Die OVPN-Config sieht so aus:
...
script-security 2
up Logon.cmd
down Logoff.cmd
Weder die Variante 1 noch 2 passt zur OVPN-Config.

Du solltest übrigens entweder dem vorgegebenen Namensmuster zur automatischen Zuordnung/Ausführung folgen ala XXX_up.bat oder einen abweichenden Namen wählen und den dann in der Config angeben.
Letzteres ist zu bevorzugen und wäre mit Logon.cmd erfüllt, aber dann muss die Datei auch so heißen.

Zitat von @Dante2191:
...OpenVPN 2.3.14 x86_64-w64-mingw32...
Versuch's mal mit OpenVPN 2.4.1 x86_64-w64-mingw32 auch wenn das wahrscheinlich das Problem nicht löst.

Mit welchen Rechten ist denn der User ausgestattet, der die OpenVPN-GUI startet?

Gruß Frank
Dante2191
Dante2191 04.07.2017 um 15:13:44 Uhr
Goto Top
Hi,

1. Alle Pause-Befehle sind aus den CMDs/BATs entfernt
2. Hab Variante 1 & 2 probiert. Die Skripte wurden mehrmals umbenannt und die Konfig entsprechend angepasst.
3. Hab die neuste Version von OpenVPN installiert
4. OpenVPN wird als lokaler Admin ausgeführt.

Leider kommt immernoch beim Verbindungsaufbau der Fehler im Log "WARNING: Failed running command (--up/--down): returned error code 2"

Danke und viele Grüße
Pedant
Pedant 08.07.2017 um 10:15:29 Uhr
Goto Top
Hallo Dante2191,

Zitat von @Dante2191:
Ergebnis: Fenster öffnet sich und er will die Verbindung herstellen. Ausgegeben wird folgendes und "hängt" mit der letzten Zeile
...
Fehler im Log "WARNING: Failed running command (--up/--down): returned error code 2"
Das sind zwei unterschiedliche Ergebnisszenarien.
Im Ersten wird das Skript vermutlich gestartet, aber es beendet sich nicht und OpenVPN wartet auf die Beendigung.
Im Zweiten scheitert die Ausführung des Skripts und das vermutlich ohne dass das Skript überhaupt gestartet wird.
Was sind die Unterschiede in Deiner Config, die mal zu dem einen und mal zu dem anderen Ergebnis führen?


Zitat von @Dante2191:
Alle Pause-Befehle sind aus den CMDs/BATs entfernt
Setz mal bewusst wieder (lediglich) eine Pause ein und schau nach, ob im Taskmanager eine cmd.exe auftaucht, die Du dort dann abschießen müsstest.
@echo off
pause


Zitat von @Dante2191:
4. OpenVPN wird als lokaler Admin ausgeführt.
Wir reden hier die ganze Zeit über den OpenVPN-Client und dessen Config oder über den OpenVPN-Server und dessen Config?

Gruß Frank
Dante2191
Dante2191 11.07.2017 um 10:01:18 Uhr
Goto Top
Hi Frank,

Das sind zwei unterschiedliche Ergebnisszenarien.
Im Ersten wird das Skript vermutlich gestartet, aber es beendet sich nicht und OpenVPN wartet auf die Beendigung.
Im Zweiten scheitert die Ausführung des Skripts und das vermutlich ohne dass das Skript überhaupt gestartet wird.
Was sind die Unterschiede in Deiner Config, die mal zu dem einen und mal zu dem anderen Ergebnis führen?
naja das Skript unterscheidet sich eigentlich lediglich durch den up/down-Befehl und die Angabe der Script-Security. Ansonsten wird daran nix verändert.


Setz mal bewusst wieder (lediglich) eine Pause ein und schau nach, ob im Taskmanager eine cmd.exe auftaucht, die Du dort dann abschießen müsstest.
Jop, die cmd.exe kommt und läuft lange vor sich her. Wenn ich den Prozess schließe kommt vom OVPN "Die Verbindung zu.... ist fehlgeschlagen"


Wir reden hier die ganze Zeit über den OpenVPN-Client und dessen Config oder über den OpenVPN-Server und dessen Config?
Über den OVPN-Client (OVPN-GUI)

Gruß
Pedant
Pedant 11.07.2017 um 11:14:26 Uhr
Goto Top
Hallo Dante2191,

Zitat von @Dante2191:
Ergebnis: Fenster öffnet sich und er will die Verbindung herstellen. Ausgegeben wird folgendes und "hängt" mit der letzten Zeile
...
Fehler im Log "WARNING: Failed running command (--up/--down): returned error code 2"
Zitat von @Pedant:
Das sind zwei unterschiedliche Ergebnisszenarien.
Im Ersten wird das Skript vermutlich gestartet, aber es beendet sich nicht und OpenVPN wartet auf die Beendigung.
Im Zweiten scheitert die Ausführung des Skripts und das vermutlich ohne dass das Skript überhaupt gestartet wird.
Was sind die Unterschiede in Deiner Config, die mal zu dem einen und mal zu dem anderen Ergebnis führen?
Zitat von @Dante2191:
naja das Skript unterscheidet sich eigentlich lediglich durch den up/down-Befehl und die Angabe der Script-Security. Ansonsten wird daran nix verändert.

Könntest Du dazu etwas konkreter werden?

Ergebnisszenario 1:
CMD wird gestartet, aber beendet sich nicht. Es gibt keine Fehlermeldung aber Verbingsunglog "hängt".
Ergebnisszenario 2:
CMD wird gestartet oder nicht. Es kommt die Fehlermeldung "...error code 2".

Welche Einstellungen führen zu welchem Ergebnisszenario?

Gruß Frank
Dante2191
Dante2191 13.07.2017 um 13:30:31 Uhr
Goto Top
Hi,

scheint als hätte ich die Lösung des Problems gefunden:

Also mal ganz von vorne: Wenn OVPN als Admin ausgeführt wird, dann tut er das als lokaler Admin des PCs. Wenn ich nun einen net use-Befehl im Up-Script ausführen will, dann will er sich z.B. ein Laufwerk mit den Berechtigungen des lokalen Admins (mit dem OVPN ausgeführt wird) ziehen.
Dieser lokale Admin des PCs hat ja die Berechtigungen nicht, sich das Laufwerk zu ziehen und somit probiert er vergebens.

Ich versuch jetzt mal noch etwas und geb dann wieder Bescheid. Jedenfalls vielen Dank für deine Hilfe Frank.
aqui
aqui 13.07.2017 um 18:20:36 Uhr
Goto Top