Installation Instructions for OpenVPN GUI for Windows ----------------------------------------------------- You can either get my installation package for OpenVPN 2.0.X where I've bundled the gui in the installation package, or you can use the original installation package from OpenVPN, and then manually install OpenVPN GUI. Installation using the bundled OpenVPN package with OpenVPN GUI included ------------------------------------------------------------------------ * Download openvpn-2.0.X-gui-1.0.X-install.exe from http://openvpn.se * If you have a previous version of OpenVPN GUI installed, shut it down. Make sure it's closed by ALL logged on users. * Run the install program. During the installation you can choose if the GUI should be started automatically at system startup. The default is yes. * Create a xxxx.ovpn config-file with your favorite texteditor and save it in: C:\Program files\OpenVPN\config\. You should NOT use the "log" or "log-append" options as OpenVPN GUI redirect the normal output to a log file itself. There is a sample config files in the "sample-config" folder. Please refer to the OpenVPN project homepage for more information regarding creating the configuration file. http://openvpn.net/ Manual installation of OpenVPN GUI ---------------------------------- * Download and install OpenVPN from http://openvpn.net/ * Download openvpn-gui-1.0.X.exe and save it in OpenVPN's bin folder. Default is "C:\Program Files\OpenVPN\bin\". You must put it in this folder because OpenVPN GUI depends on the OpenSSL DLLs installed in this folder by OpenVPN. * Create a xxxx.ovpn config-file with your favorite texteditor and save it in: C:\Program files\OpenVPN\config\. You should NOT use the "log" or "log-append" options as OpenVPN GUI redirect the normal output to a log file itself. There is a sample config files in the "sample-config" folder. Please refer to the OpenVPN project homepage for more information regarding creating the configuration file. http://openvpn.net/ * Put a short-cut to openvpn-gui-1.0-X.exe in your "Start->All Program->StartUp" folder if you want the gui started automatically when you logon to Windows. * Start the GUI by double-clicking the openvpn-gui-1.0.X.exe file. *** You need to be Administrator the first time you run OpenVPN GUI for it to create its registry keys. After that you don't have to be administrator just to run the GUI, however OpenVPN requires the user to be administrator to run! *** Using OpenVPN GUI ----------------- When OpenVPN GUI is started your config folder (C:\Program Files\OpenVPN\config) will be scanned for .ovpn files, and an icon will be displayed in the taskbar's status area. If you do not have any openvpn connection running, the config dir will be re-scanned for new config files every time you open the OpenVPN GUI menu by right-clicking the icon. When you choose to connect to a site OpenVPN GUI will launch openvpn with the specified config file. If you use a passphrase protected key you will be prompted for the passphrase. If you want OpenVPN GUI to start a connection automatically when it's started, you can use the --connect cmd-line option. You have to include the extention for the config file. Example: openvpn-gui --connect office.ovpn Run OpenVPN GUI as a Non-Admin user ----------------------------------- OpenVPN currently does not work as a normal (non-admin) user. OpenVPN GUI 2.0 will solve this by using an enhanced version of the OpenVPN service to start and stop openvpn processes. In the mean time, it is possible to use OpenVPN GUI to control the current OpenVPN Service to start and stop a connection. To use OpenVPN GUI to control the OpenVPN service, set the registry value "service_only" to '1'. See the section about registry values below. Limitations with this way: There is no way for OpenVPN GUI ta hand over a password to the service wrapper, so you can't use passphrase protected private keys or username/password authentication. If you have multiple openvpn configurations, all will be started and stopped at the same time. OpenVPN GUI is not able to retrieve any status info about the connections from OpenVPN, so it will report connected as soon as the service is started regarless of if OpenVPN has really succeded to connect or not. You cannot see the OpenVPN log in real-time. Run Connect/Disconnect/Preconnect Scripts ----------------------------------------- There are three diffrent scripts that OpenVPN GUI can execute to help with diffrent tasks like mapping network drives. Preconnect If a file named "xxx_pre.bat" exist in the config folder where xxx is the same as your OpenVPN config file name, this will be executed BEFORE the OpenVPN tunnel is established. Connect If a file named "xxx_up.bat" exist in the config folder where xxx is the same as your OpenVPN config file name, this will be executed AFTER the OpenVPN tunnel is established. Disconnect If a file named "xxx_down.bat" exist in the config folder where xxx is the same as your OpenVPN config file name, this will be executed BEFORE the OpenVPN tunnel is closed. Registry Values affecting the OpenVPN GUI operation --------------------------------------------------- All OpenVPN GUI reg-values are located below the following key: HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN-GUI\ The follow keys are used to control the OpenVPN GUI config_dir configuration file directory, defaults to "C:\Program Files\OpenVPN\config" config_ext file extension on configuration files, defaults to "ovpn" connectscript_timeout Time in seconds to wait for the connect script to finish. If set to 0 the exitcode of the script is not checked. disconnectscript_timeout Time in seconds to wait for the disconnect script to finish. Must be a value between 1-99. preconnectscript_timeout Time in seconds to wait for the preconnect script to finish. Must be a value between 1-99. exe_path path to openvpn.exe, defaults to "C:\Program Files\OpenVPN\bin\openvpn.exe" log_dir log file directory, defaults to "C:\Program Files\OpenVPN\log" log_append if set to "0", the log file will be truncated every time you start a connection. If set to "1", the log will be appended to the log file. priority the windows priority class for each instantiated OpenVPN process, can be one of: * "IDLE_PRIORITY_CLASS" * "BELOW_NORMAL_PRIORITY_CLASS" * "NORMAL_PRIORITY_CLASS" (default) * "ABOVE_NORMAL_PRIORITY_CLASS" * "HIGH_PRIORITY_CLASS" allow_edit If set to "1", the Edit config menu will be showed. allow_password If set to "1", the Change Password menu will be showed. allow_proxy If set to "1", the Proxy Settings menu will be showed. allow_service If set to "1", the Service control menu will be showed. silent_connection If set to "1", the status window with the OpenVPN log output will not be showed while connecting. service_only If set to "1", OpenVPN GUI's normal "Connect" and "Disconnect" actions are changed so they start/stop the OpenVPN service instead of launching openvpn.exe directly. show_balloon If set to "0" - Never show any connected balloon. "1" - Show balloon after initial connection is established. "2" - Show balloon even after re-connects. log_viewer The program used to view your log files, defaults to "C:\windows\notepad.exe" editor The program used to edit your config files, defaults to "C:\windows\notepad.exe" passphrase_attempts Number of attempts to enter the passphrase to allow. All these registry options is also available as cmd-line options. Use "openvpn-gui --help" for more info about cmd-line options. If you have any problem getting OpenVPN GUI to work you can reach me via email at mathias@nilings.se. Building OpenVPN GUI from source -------------------------------- * Download and install MinGW and MSYS from http://www.mingw.org/ I'm using MinGW-3.2.0-rc-3 and MSYS-1.0.10. * Download and install the binary distribution of OpenSSL from http://www.slproweb.com/products/Win32OpenSSL.html * Download and extract the OpenVPN GUI source archive. * Start a bash shell by running msys.bat. * Run at the OpenVPN GUI source directory: $ autoreconf -i $ ./configure $ make