I'm seeing this same behavior (Note: cannot open ..\path\filename.tmp for WRITE) in OpenVPN 2.2.2 (for Windows), when trying to implement auth-user-pass-verify via-file.
Server Config:
port 4911
proto tcp
dev tun
ca ..\\easy-rsa\\keys\\ca.crt
cert ..\\easy-rsa\\keys\\server.crt
key ..\\easy-rsa\\keys\\server.key
dh ..\\easy-rsa\\keys\\dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.log
push "route 192.168.1.0 255.255.255.0"
route 192.168.2.0 255.255.255.0
push "dhcp-option DOMAIN domain.local"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 4
tmp-dir ..\\tmp
script-security 3
auth-user-pass-verify auth_via-file.cmd via-file
Client Config:
client
dev tun
proto tcp
remote domain.dyndns-office.com 4911
resolv-retry infinite
nobind
persist-key
persist-tun
ca ..\\easy-rsa\\keys\\ca.crt
cert ..\\easy-rsa\\keys\\client1.crt
key ..\\easy-rsa\\keys\\client1.key
ns-cert-type server
comp-lzo
verb 4
auth-user-pass
Server openvpn.log (partial):
Sun Jan 08 19:55:57 2012 us=700000 Initialization Sequence Completed
Sun Jan 08 19:56:04 2012 us=280000 MULTI: multi_create_instance called
Sun Jan 08 19:56:04 2012 us=280000 Re-using SSL/TLS context
Sun Jan 08 19:56:04 2012 us=280000 LZO compression initialized
Sun Jan 08 19:56:04 2012 us=280000 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
Sun Jan 08 19:56:04 2012 us=280000 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
Sun Jan 08 19:56:04 2012 us=280000 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Sun Jan 08 19:56:04 2012 us=280000 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Sun Jan 08 19:56:04 2012 us=280000 Local Options hash (VER=V4): 'c0103fa8'
Sun Jan 08 19:56:04 2012 us=280000 Expected Remote Options hash (VER=V4): '69109d17'
Sun Jan 08 19:56:04 2012 us=280000 TCP connection established with 1.2.3.4:56335
Sun Jan 08 19:56:04 2012 us=280000 TCPv4_SERVER link local: [undef]
Sun Jan 08 19:56:04 2012 us=280000 TCPv4_SERVER link remote: 1.2.3.4:56335
Sun Jan 08 19:56:04 2012 us=290000 1.2.3.4:56335 TLS: Initial packet from 1.2.3.4:56335, sid=8cf28ae6 6f7e9e94
Sun Jan 08 19:56:05 2012 us=561000 1.2.3.4:56335 VERIFY OK: depth=1, /C=US/ST=ST/L=City/O=Domain/OU=Office/CN=SERVER/name=Company/emailAddress=tech.support@domain.com
Sun Jan 08 19:56:05 2012 us=561000 1.2.3.4:56335 VERIFY OK: depth=0, /C=US/ST=ST/L=City/O=Domain/OU=Office/CN=client1/name=client1/emailAddress=tech.support@domain.com
Sun Jan 08 19:56:06 2012 us=102000 1.2.3.4:56335 Note: cannot open ..\tmp\openvpn_up_e2ec6c725741baeeafb271dcdb6fe11f.tmp for WRITE
Sun Jan 08 19:56:06 2012 us=102000 1.2.3.4:56335 TLS Auth Error: could not write username/password to file: ..\tmp\openvpn_up_e2ec6c725741baeeafb271dcdb6fe11f.tmp
Sun Jan 08 19:56:06 2012 us=102000 1.2.3.4:56335 TLS Auth Error: Auth Username/Password verification failed for peer
Sun Jan 08 19:56:06 2012 us=102000 1.2.3.4:56335 SIGTERM[soft,auth-control-exit] received, client-instance exiting
Sun Jan 08 19:56:06 2012 us=102000 TCP/UDP: Closing socket
Sun Jan 08 19:56:11 2012 us=139000 MULTI: multi_create_instance called
Sun Jan 08 19:56:11 2012 us=139000 Re-using SSL/TLS context
Sun Jan 08 19:56:11 2012 us=139000 LZO compression initialized
Sun Jan 08 19:56:11 2012 us=139000 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
Sun Jan 08 19:56:11 2012 us=139000 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
Sun Jan 08 19:56:11 2012 us=139000 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Sun Jan 08 19:56:11 2012 us=139000 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Sun Jan 08 19:56:11 2012 us=139000 Local Options hash (VER=V4): 'c0103fa8'
Sun Jan 08 19:56:11 2012 us=139000 Expected Remote Options hash (VER=V4): '69109d17'
Sun Jan 08 19:56:11 2012 us=139000 TCP connection established with 1.2.3.4:56336
Sun Jan 08 19:56:11 2012 us=139000 TCPv4_SERVER link local: [undef]
Sun Jan 08 19:56:11 2012 us=139000 TCPv4_SERVER link remote: 1.2.3.4:56336
Sun Jan 08 19:56:11 2012 us=139000 1.2.3.4:56336 TLS: Initial packet from 1.2.3.4:56336, sid=3229a090 29bf41da
Sun Jan 08 19:56:12 2012 us=371000 1.2.3.4:56336 VERIFY OK: depth=1, /C=US/ST=ST/L=City/O=Domain/OU=Office/CN=SERVER/name=Company/emailAddress=tech.support@domain.com
Sun Jan 08 19:56:12 2012 us=371000 1.2.3.4:56336 VERIFY OK: depth=0, /C=US/ST=ST/L=City/O=Domain/OU=Office/CN=client1/name=client1/emailAddress=tech.support@domain.com
Sun Jan 08 19:56:12 2012 us=912000 1.2.3.4:56336 Note: cannot open ..\tmp\openvpn_up_9204050cc194f7c14196a5fc56012c65.tmp for WRITE
Sun Jan 08 19:56:12 2012 us=912000 1.2.3.4:56336 TLS Auth Error: could not write username/password to file: ..\tmp\openvpn_up_9204050cc194f7c14196a5fc56012c65.tmp
Sun Jan 08 19:56:12 2012 us=912000 1.2.3.4:56336 TLS Auth Error: Auth Username/Password verification failed for peer
Sun Jan 08 19:56:12 2012 us=912000 1.2.3.4:56336 SIGTERM[soft,auth-control-exit] received, client-instance exiting
Sun Jan 08 19:56:12 2012 us=912000 TCP/UDP: Closing socket
Sun Jan 08 19:56:17 2012 us=949000 MULTI: multi_create_instance called
OpenVPN Directory Structure:
C:\>dir C:\Program Files\OpenVPN /a:d /s /o /b
C:\Program Files\OpenVPN\bin
C:\Program Files\OpenVPN\config
C:\Program Files\OpenVPN\driver
C:\Program Files\OpenVPN\easy-rsa
C:\Program Files\OpenVPN\log
C:\Program Files\OpenVPN\sample-config
C:\Program Files\OpenVPN\tmp
C:\Program Files\OpenVPN\config\ccd
C:\Program Files\OpenVPN\easy-rsa\keys
C:\>
Registry Settings:
C:\>REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN"
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN
<NO NAME> REG_SZ C:\Program Files\OpenVPN
config_dir REG_SZ C:\Program Files\OpenVPN\config
config_ext REG_SZ ovpn
exe_path REG_SZ C:\Program Files\OpenVPN\bin\openvpn.exe
log_dir REG_SZ C:\Program Files\OpenVPN\log
priority REG_SZ NORMAL_PRIORITY_CLASS
log_append REG_SZ 0
C:\>
When the client tries to logon, the server generates tmp files in the specified tmp-dir location, but the files are created as read-only files, thus preventing the username and password from being written to the file. This is not a directory/file security issue, as Everyone has Full Control on the tmp directory, and the .tmp files that are being created are correctly inheriting the Full Control NTFS permission.
Tmp File Attributes:
C:\>attrib "C:\Program Files\OpenVPN\tmp\*"
A R C:\Program Files\OpenVPN\tmp\openvpn_up_9204050cc194f7c14196a5fc56012c65.tmp
A R C:\Program Files\OpenVPN\tmp\openvpn_up_e2ec6c725741baeeafb271dcdb6fe11f.tmp
C:\>
NTFS File Attributes:
C:\>cacls "C:\Program Files\OpenVPN\tmp\openvpn_up_9204050cc194f7c14196a5fc56012c65.tmp"
C:\Program Files\OpenVPN\tmp\openvpn_up_9204050cc194f7c14196a5fc56012c65.tmp Everyone:F
BUILTIN\Users:R
BUILTIN\Power Users:C
BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
C:\>
What would cause the files be created with the read-only bit set?
P.S. - I also tried the simple batch file described in thread "problem with auth-user-pass-verify option" [
http://forums.openvpn.net/topic8523.html], but it appears the read-only problem is preventing the script from running, so it didn't write the test output to the log.
-Jeff