mirror of https://github.com/OpenVPN/openvpn-gui
				
				
				
			
		
			
				
	
	
		
			355 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
			
		
		
	
	
			355 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
OpenVPN GUI
 | 
						|
#####################################################
 | 
						|
.. image:: https://travis-ci.org/OpenVPN/openvpn-gui.svg?branch=master
 | 
						|
  :target: https://travis-ci.org/OpenVPN/openvpn-gui
 | 
						|
  :alt: TravisCI status
 | 
						|
.. image:: https://ci.appveyor.com/api/projects/status/github/OpenVPN/openvpn-gui?branch=master&svg=true
 | 
						|
  :target: https://ci.appveyor.com/project/mattock/openvpn-gui
 | 
						|
  :alt: AppVeyor status
 | 
						|
 | 
						|
Installation Instructions for OpenVPN GUI for Windows
 | 
						|
#####################################################
 | 
						|
 | 
						|
OpenVPN-GUI has been bundled with OpenVPN installers for a long time, so there
 | 
						|
is rarely a need to install it separately. Bleeding-edge
 | 
						|
versions of OpenVPN-GUI are available in `OpenVPN snapshot
 | 
						|
installers <http://build.openvpn.net/downloads/snapshots/>`_ based on Git master
 | 
						|
branch. OpenVPN-GUI gets installed by default in all OpenVPN installers.
 | 
						|
 | 
						|
Installation using the official OpenVPN installers
 | 
						|
**************************************************
 | 
						|
 | 
						|
* Download an `OpenVPN installer <https://openvpn.net/index.php/download/community-downloads.html>`_
 | 
						|
* If you have a previous version of OpenVPN GUI running, shut it down.
 | 
						|
  Make sure it's closed by ALL logged on users.
 | 
						|
 | 
						|
* Run the OpenVPN installer
 | 
						|
 | 
						|
Manual installation of OpenVPN GUI
 | 
						|
**********************************
 | 
						|
 | 
						|
* First install OpenVPN using an official installer as described above.
 | 
						|
 | 
						|
* Build your own version of OpenVPN GUI from source.  See `BUILD.rst <BUILD.rst>`_
 | 
						|
  for build instructions. From the build tree copy *openvpn-gui.exe*,
 | 
						|
  *libopenvpn_plap.dll*, *openvpn-plap-install.reg* and *openvpn-plap-uninstall.reg*
 | 
						|
  to 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.
 | 
						|
 | 
						|
Configuring OpenVPN GUI to start on Windows logon
 | 
						|
*************************************************
 | 
						|
 | 
						|
OpenVPN GUI can be configured to start automatically on logon to Windows from
 | 
						|
its setting menu. This is default behavior for all users if OpenVPN GUI was
 | 
						|
installed by an OpenVPN 2.4 installer using default installer options.
 | 
						|
 | 
						|
Adding an OpenVPN configuration file
 | 
						|
************************************
 | 
						|
 | 
						|
To launch a VPN connections using OpenVPN GUI you need to add an OpenVPN
 | 
						|
configuration file with .ovpn suffix. Any text editor (e.g. notepad.exe) can be
 | 
						|
used to create a OpenVPN configuration files. Note that *log* and *log-append*
 | 
						|
options are ignored as OpenVPN GUI redirects the normal output to a log file
 | 
						|
itself. There are sample config files in the *sample-config* folder. Please
 | 
						|
refer to the `OpenVPN How To <https://openvpn.net/community-resources/how-to/#creating-configuration-files-for-server-and-clients>`_ for more
 | 
						|
information regarding creating the configuration file.
 | 
						|
 | 
						|
Once the configuration file is ready, you need to let OpenVPN GUI know about it.
 | 
						|
There are three ways to do this:
 | 
						|
 | 
						|
* Place the file into the system-wide location, usually
 | 
						|
  *C:\\Program Files\\OpenVPN\\config\\*, or any of its immediate
 | 
						|
  subdirectories. This VPN connection will be visible for all users of the
 | 
						|
  system.
 | 
						|
* Place the file into *C:\\Users\\username\\OpenVPN\\config\\*, or any of its
 | 
						|
  immediate subdirectories. The configuration file is only visible for the
 | 
						|
  user in question. If the user is not a member of the built-in "Administrators"
 | 
						|
  group or "OpenVPN Administrators" group and tries to launch such a connection,
 | 
						|
  OpenVPN GUI pops up a UAC, offering to create the latter group (if missing)
 | 
						|
  and to add the user to it. This will only work if admin-level credentials are
 | 
						|
  available.
 | 
						|
* Use the "Import file" function in OpenVPN GUI itself
 | 
						|
* See the section on `Persistent or Pre-started connections`_
 | 
						|
  for how to use OpenVPN GUI to conftrol configurations in
 | 
						|
  *C:\\Program Files\\OpenVPN\\config-auto\\* that are started by the automatic service.
 | 
						|
 | 
						|
Using OpenVPN GUI
 | 
						|
#################
 | 
						|
 | 
						|
When OpenVPN GUI is started your OpenVPN config folders
 | 
						|
(*C:\\Users\\username\\OpenVPN\\config* and
 | 
						|
*C:\\Program Files\\OpenVPN\\config*) will be scanned for .ovpn files and the
 | 
						|
OpenVPN GUI icon will appear in the system tray. Each OpenVPN configuration 
 | 
						|
file shows up as a separate menu item in the OpenVPN GUI tray, allowing you to
 | 
						|
selectively connect to and disconnect to your VPNs. 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. The extension of the config file
 | 
						|
may be optionally included. Example::
 | 
						|
 | 
						|
    openvpn-gui --connect office.ovpn
 | 
						|
    OR
 | 
						|
    openvpn-gui --connect office
 | 
						|
 | 
						|
Starting version 11.34, any connections active when OpenVPN GUI exits or the user
 | 
						|
logs out are automatically reconnected when OpenVPN GUI is restarted.
 | 
						|
 | 
						|
To get help with OpenVPN GUI please use one of the official `OpenVPN support
 | 
						|
channels <https://community.openvpn.net/openvpn/wiki/GettingHelp>`_.
 | 
						|
 | 
						|
Running OpenVPN GUI
 | 
						|
*******************
 | 
						|
 | 
						|
Run OpenVPN-GUI as normal user by double clicking on the icon. No
 | 
						|
administrative privileges or `runas-administrator` options are required.
 | 
						|
It just works as limited user with the help of Interactive Service which
 | 
						|
is enabled by default.
 | 
						|
 | 
						|
Persistent or Pre-started connections
 | 
						|
*************************************
 | 
						|
 | 
						|
Starting release 2.5.8 (GUI version 11.30), OpenVPN GUI can
 | 
						|
control connections started by the "automatic service"
 | 
						|
(OpenVPNService) --- also referred to as persistent connections.
 | 
						|
OpenVPNService, if running, starts all connection profiles
 | 
						|
listed in the `config-auto` directory in the installation path.
 | 
						|
 | 
						|
By default, such connections are scanned for, and attempt is
 | 
						|
made to attach to their management interfaces if available.
 | 
						|
User can then view the status of these connections, and disconnect,
 | 
						|
reconnect, detach or re-attach them using the menu items.
 | 
						|
 | 
						|
It requires that such connections be started with
 | 
						|
`--management 127.0.0.1 port [pw-file]` option in their config file.
 | 
						|
`pw-file` containing a password is optional, but highly recommended.
 | 
						|
The password should be a single line of text, preferably shorter than 128
 | 
						|
characters of plain ascii.
 | 
						|
Further, if `--auth-user-pass` or any such options requiring
 | 
						|
interactive user input are present, the config file must also
 | 
						|
contain `--management-query-passwords`.
 | 
						|
 | 
						|
This feature may be controlled by changing the `Persistent Connections`
 | 
						|
setting in the `General` tab of the `Settings` menu: choose `auto`
 | 
						|
for the default behaviour described above, `manual` to enumerate
 | 
						|
and list such connections but not auto-attach, or `disable` to not scan
 | 
						|
auto-started connection profiles.
 | 
						|
 | 
						|
Interactively starting connections before logon
 | 
						|
***********************************************
 | 
						|
 | 
						|
Starting release 2.6 (GUI version 11.30), "Start Before Logon"
 | 
						|
aka Pre-Logon Access Provider is supported. This feature is not
 | 
						|
enabled by default. It may be enabled during installation or
 | 
						|
through the `General Settings` menu of the GUI via the
 | 
						|
`Start Before Logon` check mark.
 | 
						|
 | 
						|
Only `persistent connection` profiles described in the previous
 | 
						|
section will be listed on the login screen. Ensure that
 | 
						|
connections that may be interactively started from login
 | 
						|
screen are setup in the `config-auto` folder, `OpenVPNService`
 | 
						|
is running, and these connections are visible and controllable
 | 
						|
from the GUI.
 | 
						|
 | 
						|
In addition to that, PLAP profiles must contain::
 | 
						|
 | 
						|
    setenv IV_SSO webauth
 | 
						|
 | 
						|
to indicate that client supports web-based (as QR code for PLAP)
 | 
						|
authentication method.
 | 
						|
 | 
						|
Once those pre-requisites are satisfied, the login screen will
 | 
						|
display an icon for `Pre-Logon Access Providers`, clicking which
 | 
						|
will bring up a list of OpenVPN connection profiles available, and
 | 
						|
allow connecting or disconnecting them interactively.
 | 
						|
 | 
						|
Run Connect/Disconnect/Preconnect Scripts
 | 
						|
*****************************************
 | 
						|
 | 
						|
There are three different scripts that OpenVPN GUI can execute to help
 | 
						|
with different 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.
 | 
						|
 | 
						|
The outputs of these scripts are redirected to "xxx_pre.log",
 | 
						|
"xxx_up.log" and "xxx_down.log" respectively. These log
 | 
						|
files are created in the ``log_dir`` and over-written during
 | 
						|
each evocation.
 | 
						|
 | 
						|
Send Commands to a Running Instance of OpenVPN GUI
 | 
						|
**************************************************
 | 
						|
 | 
						|
When an instance of the GUI is running, certain commands may be sent to
 | 
						|
it using the command line interface using the following syntax::
 | 
						|
 | 
						|
    openvpn-gui.exe --command *cmd* [*args*]
 | 
						|
 | 
						|
Currently supported *cmds* are
 | 
						|
 | 
						|
connect ``config-name``
 | 
						|
     Connect the configuration named *config-name* (excluding the
 | 
						|
     extension .ovpn). If already connected, show the status window.
 | 
						|
 | 
						|
disconnect ``config-name``
 | 
						|
     Disconnect the configuration named *config-name* if connected.
 | 
						|
 | 
						|
reconnect ``config-name``
 | 
						|
     Disconnect and then reconnect the configuration named *config-name*
 | 
						|
     if connected.
 | 
						|
 | 
						|
disconnect\_all
 | 
						|
     Disconnect all active connections.
 | 
						|
 | 
						|
silent\_connection 0 \| 1
 | 
						|
     Set the silent connection flag on (1) or off (0)
 | 
						|
 | 
						|
exit
 | 
						|
     Disconnect all active connections and terminate the GUI process
 | 
						|
 | 
						|
rescan
 | 
						|
     Rescan the config folders for changes
 | 
						|
 | 
						|
import ``path``
 | 
						|
     Import the config file pointed to by ``path``.
 | 
						|
 | 
						|
If no running instance of the GUI is found, these commands do nothing
 | 
						|
except for *--command connect config-name* which gets interpreted
 | 
						|
as *--connect config-name*
 | 
						|
 | 
						|
Registry Values affecting the OpenVPN GUI operation
 | 
						|
***************************************************
 | 
						|
 | 
						|
Parameters taken from the global registry values in
 | 
						|
*HKEY_LOCAL_MACHINE\\SOFTWARE\\OpenVPN\\* key
 | 
						|
 | 
						|
(Default)
 | 
						|
    The installation directory of openvpn (e.g., *C:\\Program Files\\OpenVPN*).
 | 
						|
    This value must be present.
 | 
						|
 | 
						|
config_dir
 | 
						|
    The global configuration file directory. Defaults to
 | 
						|
    *C:\\Program Files\\OpenVPN\\config*
 | 
						|
 | 
						|
exe_path
 | 
						|
    path to openvpn.exe, defaults to *C:\\Program Files\\OpenVPN\\bin\\openvpn.exe*
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
ovpn_admin_group
 | 
						|
    The windows group whose membership allows the user to start any configuration file
 | 
						|
    in their profile (not just those installed by the administrator in the global
 | 
						|
    config directory). Default: "OpenVPN Administrators".
 | 
						|
 | 
						|
disable_save_passwords
 | 
						|
    Set to a nonzero value to disable the password save feature.
 | 
						|
    Default: 0
 | 
						|
 | 
						|
auto_config_dir
 | 
						|
    If persistent connection support is enabled and the so-called automatic
 | 
						|
    service (OpenVPNService) is running, any config files in this folder are
 | 
						|
    scanned and listed in the list of connection profiles.
 | 
						|
 | 
						|
User Preferences
 | 
						|
****************
 | 
						|
 | 
						|
All other OpenVPN GUI registry values are located below the
 | 
						|
*HKEY_CURRENT_USER\\SOFTWARE\\OpenVPN-GUI\\* key. In a fresh
 | 
						|
installation none of these values are present and are not
 | 
						|
required for the operation of the program. These keys are only
 | 
						|
used for persisting user's preferences, and the key names
 | 
						|
and their values are subject to change.
 | 
						|
 | 
						|
The user is not expected to edit any of these values directly.
 | 
						|
Instead, edit all preferences using the settings menu.
 | 
						|
 | 
						|
config_dir
 | 
						|
    The user-specific configuration file directory: defaults to
 | 
						|
    *C:\\Users\\username\\OpenVPN\\config*.
 | 
						|
    The GUI parses this directory for configuration files before
 | 
						|
    parsing the global config_dir.
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
log_dir
 | 
						|
    log file directory, defaults to *C:\\Users\\username\\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.
 | 
						|
 | 
						|
silent_connection
 | 
						|
    If set to "1", the status window with the OpenVPN log output will
 | 
						|
    not be shown while connecting. Warnings such as interactive service
 | 
						|
    not started or multiple config files with same name are also suppressed.
 | 
						|
 | 
						|
show_balloon
 | 
						|
    0: Never show any connected balloon
 | 
						|
 | 
						|
    1: Show balloon after initial connection is established
 | 
						|
 | 
						|
    2: Show balloon even after re-connects
 | 
						|
 | 
						|
config_menu_view
 | 
						|
    0: Use a hierarchical (nested) display of config menu reflecting the directory sturcture of config files if the number of configs exceed 25, else use a flat display
 | 
						|
 | 
						|
    1: Force flat menu
 | 
						|
 | 
						|
    2: Force nested menu
 | 
						|
 | 
						|
disable_popup_messages
 | 
						|
    If set to 1 echo messages are ignored
 | 
						|
 | 
						|
popup_mute_interval
 | 
						|
    Amount of time in hours for which repeated echo messages are not displayed.
 | 
						|
    Defaults to 24 hours.
 | 
						|
 | 
						|
management_port_offset
 | 
						|
    The management interface port is chosen as this offset plus a connection specific index.
 | 
						|
    Allowed values: 1 to 61000, defaults to 25340.
 | 
						|
 | 
						|
All of these registry options are also available as cmd-line options.
 | 
						|
Use "openvpn-gui --help" for more info about cmd-line options.
 | 
						|
 | 
						|
Building OpenVPN GUI from source
 | 
						|
################################
 | 
						|
 | 
						|
See `BUILD.rst <BUILD.rst>`_ for build instructions.
 |