OpenVPN 3 Linux v14 (beta) The highlights of this release includes: * Security: [CVE-2021-3547] --verify-x509-name overrides certificate checks The OpenVPN 3 Core library got support for --verify-x509-name in commit 583986920236f7e (committed 2019-11-08). This implementation would reset prior certificate checks. If a prior certificate check failed and the --verify-x509-name check passed, the connection would be accepted as valid. This has been fixed in the Core library as of OpenVPN 3 Core library commit febf01ef68b84f. * systemd-resolved - support for DNS zones This is the first step towards a better split-DNS support. It implements the needed configuration settings to properly set up the global or tunnel DNS resolver scopes in systemd-resolved. For the resolv-conf based mode, this setting will be ignored (and logged as a warning) as resolv-conf only supports a single DNS resolver. Currently, the tunnel scope is very simplistic and will only result in systemd-resolved not querying anything than pushed DOMAIN/DOMAIN-SEARCH domains via the DNS servers for the VPN session. It is more a reverse filter, than an explicit filter. All other "global" scopes will also be queried. Domains *not* matching the DOMAIN/DOMAIN-SEARCH settings will be *not* queried via this VPN link. This behaviour is more how systemd-resolved is designed and this behaviour will hopefully be further improved later on. * Improved SELinux policies OpenVPN 3 Linux is now able to be run on CentOS, Fedora and Red Hat Enterprise Linux with DCO enabled on VPN profiles and with SELinux policies being enforced. The openvpn3-service-netcfg and openvpn3-service-client processes will now run in their own confined environment with further restricted access. * The OpenVPN 3 client will report IV_HWADDR When connecting, the client will report back some peer information to the server. Until now, the IV_HWADDR has not been provided. This value is supposed to be a fixed value per connecting host. The reported information is a SHA256 hash of /etc/machine-id and some more OpenVPN 3 Linux specific values. If this machine-id file is not readable, it will generate its own value and store it under /var/lib/openvpn3 for a persistent value. * Support for querying the user for HTTP proxy credentials during connection * Support for inline --http-user-pass values in configuration files * Support for inline --auth-user-pass values in configuration files * DCO support can now be activated with openvpn3 session-start and openvpn2 command line front-ends * DCO device names will now carry the name of --dev in the configuration In addition to several bug fixes and other improvements. Antonio Quartulli (1): ovpn-dco: adapt interfaces to new API format Arne Schwabe (1): Add Coverity to jenkins build David Sommerseth (67): build: Fix out-of-tree builds from git checkouts dbus/signals: Kick out the poor char */std::string "converters" netcfg: Fix incorrect return string in DNS::ResolverSettings::AddNameServers() log: Fix incorrect unsigned int logic log: Clean-up a switch statement client: Add exception safe-guard in BackendClientDBus d'tor netcfg: Fix incorrect IPv6 default gw setup submodules: Update OpenVPN 3 Core and ovpn-dco glib: Improve error message when GLibUtils::checkParams() fails configmgr: Prepare for --dns-scope in configuration profiles netcfg: Implement DNS resolver scope support client: Propagate VPN profile dns-scope setting to netcfg python: Add support for dns-scope setting via openvpn3-autoload client: Delay the forced shutdown on LogFATAL() client: Add ClientException to start improving client error handling cli: Be more friendly with ERR_PROFILE_SERVER_LOCKED_UNSUPPORTED tests/signal_listener: Add support for Log() with session tokens client: Enable DCO configuration override via D-Bus property sessionmgr: Provide access to the DCO flag in a VPN session docs/sessions: Update net.openvpn.v3.sessions D-Bus documentation docs/client: Update net.openvpn.v3.backends.be* D-Bus documentation ovpn3cli: Add --dco support to session-start python: Extend SessionManager.Session with DCO capabilities python: Extend ConfigParser with DCO support python/openvpn2: Add support for enabling/disabling DCO python/openvpn2: Fix stray verb debug print() ovpn3cli/session: Display an indicator on DCO enabled sessions Revert "configmgr: Add DCO device naming hack" ovpn3cli/session-start: Fix incorrect console input truncation dco: Update to latest ovpn-dco vendor: Update to ASIO 1.18.1 core-ext: Fix improper processing of potential inline options selinux: Add policies for netcfg and client processes selinux: Rework the policy build Makefile build: Make netcfg DNS resolver configurable build: Detect Linux distro to configure DNS resolver build: Fix missing distribution of SELinux policy files python: Fix incorrect JSON parsing error message (filename) netcfg: Add method to extract only error message in NetCfgProxyException netcfg/proxy: Try to ensure net.openvpn.v3.netcfg is available cli: Properly catch if net.openvpn.v3.netcfg is unavailable configfile: Add "true" as a valid "present" value build: Save the OpenVPN 3 statedir into config.h common: Implement MachineID for uniquely identifying a host client: Implement passing IV_HWADDR vendor: Update to ASIO 1.18.2 dco: Update to latest ovpn-dco core: Update to latest OpenVPN 3 Core library common: Add missing sstream include in machineid.cpp common,core: Fix compat issues with older OpenSSL common: Use proper OpenSSL EVP SHA256 APIs in MachineID related code netcfg: Only LogCritical when DNS resolver changes failed client: Properly handle device disabling exceptions selinux: Add missing file context transition for resolv.conf client: Improve error handling when interacting with the NetCfg service netcfg: Disable DNS::ResolverSettings for failing resolved updates netcfg/resolved: Catch more error situations client/core: Fix incorrect bool logic for TUN_SETUP/TUN_IFACE events client/core: Improve fatal exception handling in event() netcfg: Use the proper capng_select_t when dropping capabilities dbus: Extend DBusProxy with GetNameOwner() method dbus: Extend DBusProxy with StartServiceByName() method netcfg/resolved: Check if org.freedesktop.PolicyKit1 is available docs: Update README with polkit/policykit dependency requirement netcfg: Catch exceptions related to SystemdResolved init issues netcfg: Catch more exceptions when establishing a virtual interface selinux: Fix proper privileges for netcfg netlink_generic_socket Heiko Hund (4): update .gitignore core-extension: Add support for inline auth-user-pass core-extension: Add support for inline http-proxy-user-pass client: Allow querying HTTP proxy credentials dynamically Romain Loutrel (1): python: Add --mute, --route-delay and --route-method to ignored options