On Mon, 16 May 2005, Melis van Deelen wrote:
> Hello,
>
> My OpenVPN connection on Windows works perfect if it is started by an
> administrator or system (=service) user. When i try to start the program
> by a non-administrator is gives the error:
>
> CreateFile failed on TAP device:
> \\.\Global\{5B277664-435A-420B-97A3-454BC5A65CB0}.tap
>
> This i a know problem. See
> http://openvpn.net/archive/openvpn-users/2004-07/msg00484.html
>
> Unfortunately this this is a big problem for the "road warrior vpn"
> solution we try to implement. We cannot give the road warrior
> administrator access, and don't want to use services because passwords
> must be entered.
>
> I did a intensive search to try to solve the problem. As James Yonan
> already found out, this not easy. Then I found a possible solution in a
> post of 25-12-2002 microsoft.public.windowsxp.winlogo of "WHQL, NDIS,
> and IoCreateDeviceSecure and Security (DACL)":
NDIS miniport drivers are not supposed to use IoCreateDeviceSecure, and
won't pass WHQL certification if they do. Microsoft wants you to use
NdisMRegisterDevice instead which doesn't have a DACL argument.
> Try zero access mask, when you call CreateFile. For FILE_ACCESS_ANY
> IOCTL, you don't need neither GENERIC_READ nor GENERIC_WRITE access
> mask. You can also try MAXIMUM_ALLOWED access mask.
>
> I did some testing with MAXIMUM_ALLOWED and i think it can solve the
> CreateFile error problem.
>
> I suggest tying replace GENERIC_READ | GENERIC_WRITE in tun.c by
> MAXIMUM_ALLOWED to solve the non-administrator connection on Windows
Even if you could get around the non-admin userspace <-> kernel space
communication issues, what about routing table modifications. OpenVPN
clients must have sufficient privilege to add and remove routes. This
requires admin privileges.
James