Skip to content
OpenVPN 3 Linux v23 (Stable release)

The v23 release is stable release which expands the distribution target
since v22_dev was released.  The goal for this step was to stabilize the
codebase which was migrated to GDBus++ and the new Meson building system.

This release brings back the OpenVPN 3 AWS-VPC Add-on which was not
ready for the v22_dev release.  This service has also been migrated to
use GDBus++.  The behaviour of this add-on should otherwise be identical
to the service shipped in v21 and older releases.

In addition, a new add-on is included in this release.  The Cloud Connexa
service is being extended with a new functionality, referred to as Device
Posture Checks (DPC).  This feature will enable the VPN server to request
certain checks to be performed on the client side and reported back to
the server.  These checks are restricted to what the new OpenVPN 3 Device
Posture Service (openvpn3-service-devposture) provides.  To enable the
client-side functionality, the VPN client configuration must be pre-
imported and an Enterprise ID must be assigned to the configuration
profile.  That will allow the server to request Device Posture Checks
to be performed.

The currently implemented DPC tests only provides platform information,
like Linux distribution name and version, kernel versions, CPU
architecture and the client's local time.  In future releases, more tests
may be implemented.

Known issues:

  - Shell completion may list duplicated options in some cases

  - openvpn3-admin journal --since has a time zone related issue
    and may not list all log events within the closest hours.

Other changes:

* Improvement: Upgrade to OpenVPN 3 Core Library v3.10.1

  This library update provides the functionality to provide the
  Device Posture Check functionality in the OpenVPN wire
  protocol.  A fix to resolve compilation errors when the
  -Wnon-virtual-dtor compiler flag is enabled is included too.

* Bugfix: Report client and version correctly in IV_GUI_VER

  The v22_dev release unfortunately changed the format of the
  IV_GUI_VER.  It would report: 'openvpn3-linux/v22:dev' when
  it should have been 'OpenVPN3/Linux/v22_dev'.  This has
  been corrected.

* Bugfix: --tag option not working with config-import or config-manage

  A regression bug was introduced in v22_dev which handled the
  available tracking of Configuration Manager features incorrectly
  and ended up disabling this feature in the openvpn3 config-import
  and openvpn3 config-manage commands.  This has been fixed.

* Bugfix: systemd-resolved support rejected IPv6 DNS resolver address

  An oversight in the systemd-resolved implementation refused to accept
  pushed DNS resolver addresses when it was an IPv6 address.  This has
  been fixed and both IPv4 and IPv6 addresses are now fully supported.

* Improvement: Python configuration parser support for --connect-retry{,-max}

  The Python configuration parser in the openvpn3 module did
  not provide a pass-through for --connect-retry and --connect-retry-max
  options.  This would result in configuration profiles containing
  these options would not function when using the Python based tools
  while it would work using the 'openvpn3' command.

Credits
-------

Thanks goes to those continuing testing and reporting issues.  A
special thanks to Grzegorz Gutowski who provided the fix to the
Python module.  He is also the project lead behind the openvpn3-indicator
project, which provides a tray-icon for OpenVPN 3 Linux.  If you
use a graphical desktop, that's a project worth checking out!

Many thanks also goes to Razvan Cojocaru who has stepped in providing
many great improvements and done all the work for the Device Posture
support in OpenVPN 3 Linux.  And Lev Stipakov who migrated the
OpenVPN 3 AWS-VPC add-on service to GDBus++

---- Changes from v22_dev to v23 ---------------------------------------

David Sommerseth (24):
      configmgr: Load configuration profiles before starting the D-Bus service
      netcfg: Make NetCfgNotifSubscriptions use uint32_t as filter bit mask
      codestyle: Fix minor code style deviations
      build: Enable overriding OpenVPN 3 Core Library version string
      scripts: Modify the output of the --gui-version
      addons/devposture: Fix compilation error with older JsonCpp libraries
      addons/devposture: Make devposture-proxy test program more generic
      addons/devposture: Document the Enterprise Profile file format
      build: Install some additional documentation by default
      docs: Clarify a GDBus++ and mbed TLS build dependencies better
      build: Set PACKAGE_NAME to 'OpenVPN3/Linux'
      Some minor #include clean-ups
      configmgr: Cleaning up #include files
      configmgr: Use CoreLog for logging events from the Core library.
      client: Don't stop if devposture service is unavailable
      devposture/test: Improve argument parsing in devposture-proxy
      addon/devposture/proxy: Properly re-throw DevPosture::Proxy::Handler exceptions
      netcfg/resolved: Factor out resolved::Exception to a separate file
      tests/resolved: Extend systemd-resolved proxy test client with IPv6 support
      netcfg/resolved: Add new D-Bus IP Address parser class
      netcfg/resolved: Use GDBus++ glib2 helpers extracting data in SearchDomains::GetGVariant
      netcfg/resolved: Plug-in resolved::IPAddress into ResolverRecord
      netcfg/resolved: Refactor out resolved::ResolverRecord
      core: Update to OpenVPN 3 Core Library v3.10.1

Grzegorz Gutowski (1):
      python: Pass through --connect-retry and --connect-retry-max

Lev Stipakov (5):
      netcfg: use proper C++ base type for NetCfgChangeType
      netcfg/proxy: Check non-response call for nullptr before freeing
      configmgr: remove unused class members
      addons/aws: Switch to GDBus++
      addons/aws: adapt to core RandomAPI changes

Razvan Cojocaru (10):
      core: Update to OpenVPN 3 Core Library releaseprep/3.10
      addons/devposture: Add openvpn3-linux-devposture
      configmgr: Add the enterprise-profile override
      ovpn3cli/config: Add openvpn3 config-manage --enterprise-profile
      client: Plug in Device Posture support
      configmgr: Use a regular expression to determine version number
      configmgr: Accumulate proxy feature flags instead of overwriting
      netcfg: Check stub-resolv.conf before giving up on systemd-resolved
      common: give SingleCommand a virtual destructor
      addons/devposture: Add core_ver and extra_ver to client_info