Textual fixes for Changes.rst
PATCH 1/1 Textual fixes for Changes.rst
We will likely refer many people to the Changes.rst file once we've released 2.4. This commits tries to polish the language a bit, and adds two real changes:
* Remove duplicate mention of the changes --tls-cipher defaults
* Move the 'redirect-gateway' behavioural change from 'features' to 'behavioural changes'.
I'm not a native speaker, so if you do not agree with some of the changes, feel free to pick-and-choose from this commit as you please.
--- Changes.rst | 134 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 66 insertions(+), 68 deletions(-)
Changes.rst +66 -68
@@ -4,19 +4,22 @@ Version 2.4.0 New features ------------ -Peer ID support - Added new packet format P_DATA_V2, which includes peer-id. If - server and client support it, client sends all data packets in - the new format. When data packet arrives, server identifies peer +Seamless client IP/port floating + Added new packet format P_DATA_V2, which includes peer-id. If both the + server and client support it, the client sends all data packets in + the new format. When a data packet arrives, the server identifies peer by peer-id. If peer's ip/port has changed, server assumes that client has floated, verifies HMAC and updates ip/port in internal structs. + This allows the connection to be immediatly restored, instead of requiring + a TLS handshake before the server accepts packets from the new client + ip/port. -Cipher negotiation - Data channel ciphers are now by default negotiated. If a client advertises - support for Negotiable Crypto Parameters (NCP), the server will choose a - cipher (by default AES-256-GCM) for the data channel, and tell the client - to use that cipher. Data channel cipher negotiation can be controlled - using ``--ncp-ciphers`` and ``--ncp-disable``. +Data channel cipher negotiation + Data channel ciphers (``--cipher``) are now by default negotiated. If a + client advertises support for Negotiable Crypto Parameters (NCP), the + server will choose a cipher (by default AES-256-GCM) for the data channel, + and tell the client to use that cipher. Data channel cipher negotiation + can be controlled using ``--ncp-ciphers`` and ``--ncp-disable``. A more limited version also works in client-to-server and server-to-client scenarios where one of the end points uses a v2.4 client or server and the
@@ -33,29 +36,29 @@ Cipher negotiation AEAD (GCM) data channel cipher support The data channel now supports AEAD ciphers (currently only GCM). The AEAD - packet format has a smaller overhead than the CBC packet format, (e.g. 20 - bytes per packet for AES-128-GCM instead of 36 bytes per packet for - AES-128-CBC + HMAC-SHA1). + packet format has a smaller crypto overhead than the CBC packet format, + (e.g. 20 bytes per packet for AES-128-GCM instead of 36 bytes per packet + for AES-128-CBC + HMAC-SHA1). ECDH key exchange The TLS control channel now supports for elliptic curve diffie-hellmann key exchange (ECDH). -Dualstack client connect +Dualstack round-robin DNS client connect Instead of only using the first address of each ``--remote`` OpenVPN will now try all addresses (IPv6 and IPv4) of a ``--remote`` entry. Support for providing IPv6 DNS servers - A new DHCP sub-options ``DNS6`` is added alongside with the already existing - ``DNS`` sub-option. This is used to provide DNS resolvers available over - IPv6. This will be pushed to clients and `` --up`` scripts and ``--plugin`` - can act upon it through the ``foreign_option_<n>`` environment variables. + A new DHCP sub-option ``DNS6`` is added alongside with the already existing + ``DNS`` sub-option. This is used to provide DNS resolvers available over + IPv6. This will be pushed to clients and `` --up`` scripts and ``--plugin`` + can act upon it through the ``foreign_option_<n>`` environment variables. - Support for the Windows client picking up this new sub-option is added, - however IPv6 DNS resolvers needs to be configured via ``netsh`` which requires - administrator privileges if the new interactive services on Windows is not - being used. If the interactive services is used, this service will execute - ``netsh`` in the background with the proper privileges. + Support for the Windows client picking up this new sub-option is added, + however IPv6 DNS resolvers need to be configured via ``netsh`` which requires + administrator privileges if the new interactive services on Windows is not + being used. If the interactive services is used, this service will execute + ``netsh`` in the background with the proper privileges. New improved Windows Background service The new OpenVPNService is based on openvpnserv2, a complete rewrite of the OpenVPN
@@ -79,50 +82,44 @@ New interactive Windows service files under %USERPROFILE%\\OpenVPN\\config for use with the interactive service. -redirect-gateway - if no flags are given, and the interactive service is used, "def1" - is implicitly set (because "delete and later reinstall the existing - default route" does not work well here). If not using the service, - the old behaviour is kept. - redirect-gateway ipv6 OpenVPN has now feature parity between IPv4 and IPv6 for redirect gateway including the handling of overlapping IPv6 routes with - IPv6 remote VPN server address + IPv6 remote VPN server address. LZ4 Compression and pushable compression Additionally to LZO compression OpenVPN now also supports LZ4 compression. Compression options are now pushable from the server. -pull-filter +Filter pulled options client-side: pull-filter New option to explicitly allow or reject options pushed by the server. May be used multiple times and is applied in the order specified. -push-remove - new option to remove options on a per-client basis from the "push" list - (more fine-grained than ``--push-reset``) +Per-client remove push options: push-remove + New option to remove options on a per-client basis from the "push" list + (more fine-grained than ``--push-reset``). Http proxy password inside config file Http proxy passwords can be specified with the inline file option ``<http-proxy-user-pass>`` .. ``</http-proxy-user-pass>`` -Windows version +Windows version detection Windows version is detected, logged and possibly signalled to server - (IV_PLAT_VER=<nn> if ``--push-peer-info`` is set on client) + (IV_PLAT_VER=<nn> if ``--push-peer-info`` is set on client). Authentication tokens - In situations where it is not suitable to save users passwords on the client - OpenVPN have since v2.3 had support for --auth-token. This option is + In situations where it is not suitable to save user passwords on the client, + OpenVPN has support for pushing a --auth-token since v2.3. This option is pushed from the server to the client with a token value to be used instead of the users password. For this to work, the authentication plug-in would need to implement this support as well. In OpenVPN 2.4 --auth-gen-token is introduced, which will allow the OpenVPN server to generate a random token and push it to the client without any changes to the authentication modules. When the clients need to re-authenticate the OpenVPN server will - instead of sending the re-authentication request to the authentication - module do the authentication internally. This feature is especially - useful in configurations which adds One Time Password (OTP) authentication - schemes, as this allows the tunnel to be renegotiated regularly without + do the authentication internally, instead of sending the re-authentication + request to the authentication module . This feature is especially + useful in configurations which use One Time Password (OTP) authentication + schemes, as this allows the tunnel keys to be renegotiated regularly without any need to supply new OTP codes. keying-material-exporter
@@ -130,12 +127,12 @@ keying-material-exporter derived from existing TLS channel. Mac OS X Keychain management client - added contrib/keychain-mcd which allows to use Mac OS X keychain - certificates with OpenVPN + Added contrib/keychain-mcd which allows to use Mac OS X keychain + certificates with OpenVPN. Android platform support Support for running on Android using Android's VPNService API has been added. - See doc/android.txt for more details. This support is primarily used in + See doc/android.txt for more details. This support is primarily used in the OpenVPN for Android app (https://github.com/schwabe/ics-openvpn) AIX platform support
@@ -150,7 +147,7 @@ Control channel encryption (``--tls-crypt``) Asynchronous push reply Plug-ins providing support for deferred authentication can benefit from a more responsive authentication where the server sends PUSH_REPLY immediately once - the authentication result is ready instead of waiting for the the client to + the authentication result is ready, instead of waiting for the the client to to send PUSH_REQUEST once more. This requires OpenVPN to be built with ``./configure --enable-async-push``. This is a compile-time only switch.
@@ -169,23 +166,23 @@ Deprecated features that would previously be accepted. If this occurs, OpenVPN will log the crypto library's error description. -- ``--tls-remote`` is removed in 2.4, as indicated in the 2.3 man-pages. A similar - functionality is provided via ``--verify-x509-name`` which does the same job in +- ``--tls-remote`` is removed in 2.4, as indicated in the 2.3 man-pages. Similar + functionality is provided via ``--verify-x509-name``, which does the same job in a better way. -- ``--compat-names`` and ``--no-name-remapping`` was deprecated in 2.3 and will +- ``--compat-names`` and ``--no-name-remapping`` were deprecated in 2.3 and will be removed in 2.5. All scripts and plug-ins depending on the old non-standard X.509 subject formatting must be updated to the standardized formatting. See the man page for more information. -- ``--no-iv`` is deprecated in 2.4 and will be remove in 2.5. +- ``--no-iv`` is deprecated in 2.4 and will be removed in 2.5. User-visible Changes -------------------- -- When using ciphers with cipher blocks less than 128-bits +- When using ciphers with cipher blocks less than 128-bits, OpenVPN will complain loudly if the configuration uses ciphers considered weak, such as the SWEET32 attack vector. In such scenarios, OpenVPN will by - default do a renegotiation for each 64MB of transported data (``--reneg-bytes``). + default renegotiate for each 64MB of transported data (``--reneg-bytes``). This renegotiation can be disabled, but is HIGHLY DISCOURAGED. - For certificate DNs with duplicate fields, e.g. "OU=one,OU=two", both fields
@@ -195,18 +192,14 @@ User-visible Changes Note that this breaks setups that rely on the fact that OpenVPN would previously (incorrectly) only export the last occurence of a field. -- proto udp and proto tcp specify to use IPv4 and IPv6. The new - options proto udp4 and tcp4 specify to use IPv4 only. +- ``proto udp`` and ``proto tcp`` now use both IPv4 and IPv6. The new + options ``proto udp4`` and ``proto tcp4`` use IPv4 only. - ``--sndbuf`` and ``--recvbuf`` default now to OS defaults instead of 64k -- OpenVPN exits with an error if an option has extra parameters; +- OpenVPN exits with an error if an option has extra parameters; previously they were silently ignored -- The default of ``--tls-cipher`` is now "DEFAULT:!EXP:!PSK:!SRP:!kRSA" - instead of "DEFAULT" to always select perfect forward security - cipher suites - - ``--tls-auth`` always requires OpenVPN static key files and will no longer work with free form files
@@ -230,11 +223,11 @@ User-visible Changes - mbed TLS builds: minimum RSA key size is now 2048 bits. Shorter keys will not be accepted, both local and from the peer. -- ``--connect-timeout`` specifies now the timeout until the first TLS packet +- ``--connect-timeout`` now specifies the timeout until the first TLS packet is received (identical to ``--server-poll-timeout``) and this timeout now includes the removed socks proxy timeout and http proxy timeout. - In ``--static`` mode connect-timeout specifies the timeout for TCP and + In ``--static`` mode ``connect-timeout`` specifies the timeout for TCP and proxy connection establishment - ``--connect-retry-max`` now specifies the maximum number of unsuccessful
@@ -262,26 +255,31 @@ User-visible Changes capable. The ``--tun-ipv6`` option is ignored (behaves like it is always on). -- On the client side recursively routed packets, which have same destination - as the VPN server, are dropped. This could be disabled with +- On the client side recursively routed packets, which have the same destination + as the VPN server, are dropped. This can be disabled with --allow-recursive-routing option. -- on Windows, when the ``--register-dns`` option is set, OpenVPN no longer +- On Windows, when the ``--register-dns`` option is set, OpenVPN no longer restarts the ``dnscache`` service - this had unwanted side effects, and seems to be no longer necessary with currently supported Windows versions. +- If no flags are given, and the interactive Windows service is used, "def1" + is implicitly set (because "delete and later reinstall the existing + default route" does not work well here). If not using the service, + the old behaviour is kept. + - OpenVPN now reloads a CRL only if the modication time or file size has changed, instead of for each new connection. This reduces the connection setup time, in particular when using large CRLs. -- OpenVPN now ships with more up-to-date systemd unit files which takes advantage +- OpenVPN now ships with more up-to-date systemd unit files which take advantage of the improved service management as well as some hardening steps. The configuration files are picked up from the /etc/openvpn/server/ and /etc/openvpn/client/ directories (depending on unit file). This also avoids these new unit files and how they work to collide with older pre-existing unit files. -- using ``--no-iv`` (which is generally not a recommended setup) will +- Using ``--no-iv`` (which is generally not a recommended setup) will require explicitly disabling NCP with ``--disable-ncp``. This is intentional because NCP will by default use AES-GCM, which requires an IV - so we want users of that option to consciously reconsider.
@@ -299,8 +297,8 @@ Maintainer-visible changes files instead of older ones, to provide a unified behaviour across systemd based Linux distributions. -- With OpenVPN v2.4, the project have moved over to depend on and actively use +- With OpenVPN v2.4, the project has moved over to depend on and actively use the official C99 standard (-std=c99). This may on some older compiler/libc - headers combinations fail. On most of these situations it is recommended to + header combinations fail. In most of these situations it is recommended to do use -std=gnu99 in CFLAGS. This is known to be needed when doing i386/i686 builds on RHEL5.
Signature · 1 line
2.7.4
Hi,
Not a thorough proof read, but some comments:
Support for providing IPv6 DNS servers
Quoted 6 lines
- A new DHCP sub-options ``DNS6`` is added alongside with the already
existing
- ``DNS`` sub-option. This is used to provide DNS resolvers available
over
- IPv6. This will be pushed to clients and `` --up`` scripts and
``--plugin``
Quoted 9 lines
- can act upon it through the ``foreign_option_<n>`` environment
variables.
+ A new DHCP sub-option ``DNS6`` is added alongside with the already
existing
+ ``DNS`` sub-option. This is used to provide DNS resolvers available
over
+ IPv6. This will be pushed to clients and `` --up`` scripts and
``--plugin``
This option could be in the client config or pushed from the server, so "This may be pushed to clients ...." would be better?
+ can act upon it through the ``foreign_option_<n>`` environment
Quoted 12 lines
variables.
- Support for the Windows client picking up this new sub-option is
added,
- however IPv6 DNS resolvers needs to be configured via ``netsh``
which requires
- administrator privileges if the new interactive services on Windows
is not
- being used. If the interactive services is used, this service will
execute(quoted diff) +1
-1- ``netsh`` in the background with the proper privileges. + Support for the Windows client picking up this new sub-option is
Quoted 6 lines
added,
+ however IPv6 DNS resolvers need to be configured via ``netsh`` which
requires
+ administrator privileges if the new interactive services on Windows
is not
if ... not --> unless (?)
services -> service
Quoted 3 lines
+ being used. If the interactive services is used, this service will
execute
services -> service
Quoted 11 lines
-- With OpenVPN v2.4, the project have moved over to depend on and actively use
+- With OpenVPN v2.4, the project has moved over to depend on and actively use
the official C99 standard (-std=c99). This may on some older
compiler/libc
- headers combinations fail. On most of these situations it is recommended to
+ header combinations fail.
Move "fail" up:
"This may fail on some older compiler/libc header combinations."
Selva
Hi,
On 26 Dec 2016 9:36 p.m., "Selva Nair" <[email protected]...> wrote:
Hi,
Not a thorough proof read, but some comments:
Support for providing IPv6 DNS servers
Quoted 6 lines
- A new DHCP sub-options ``DNS6`` is added alongside with the already
existing
- ``DNS`` sub-option. This is used to provide DNS resolvers available
over
- IPv6. This will be pushed to clients and `` --up`` scripts and
``--plugin``
Quoted 9 lines
- can act upon it through the ``foreign_option_<n>`` environment
variables.
+ A new DHCP sub-option ``DNS6`` is added alongside with the already
existing
+ ``DNS`` sub-option. This is used to provide DNS resolvers available
over
+ IPv6. This will be pushed to clients and `` --up`` scripts and
``--plugin``
This option could be in the client config or pushed from the server, so "This may be pushed to clients ...." would be better?
+ can act upon it through the ``foreign_option_<n>`` environment
Quoted 12 lines
variables.
- Support for the Windows client picking up this new sub-option is
added,
- however IPv6 DNS resolvers needs to be configured via ``netsh``
which requires
- administrator privileges if the new interactive services on Windows
is not
- being used. If the interactive services is used, this service will
execute(quoted diff) +1
-1- ``netsh`` in the background with the proper privileges. + Support for the Windows client picking up this new sub-option is
Quoted 6 lines
added,
+ however IPv6 DNS resolvers need to be configured via ``netsh`` which
requires
+ administrator privileges if the new interactive services on Windows
is not
if ... not --> unless (?)
services -> service
Quoted 3 lines
+ being used. If the interactive services is used, this service will
execute
services -> service
Quoted 11 lines
-- With OpenVPN v2.4, the project have moved over to depend on and actively use
+- With OpenVPN v2.4, the project has moved over to depend on and actively use
the official C99 standard (-std=c99). This may on some older
compiler/libc
- headers combinations fail. On most of these situations it is recommended to
+ header combinations fail.
Move "fail" up:
"This may fail on some older compiler/libc header combinations."
Selva
The first one is something I cannot judge immediately, but with all other changes I fully agree.
I won't be near a PC for the coming 12 hours. Feel free to resend the patch with any changes you think are good, or amend when applying.
-Steffan
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
ACK. I have applied these changes, incoroprating Selva's comments and done a couple of additional minor adjustments.
- - In "providing IPv6 DNS servers" section, changed:
... pushed to clients and `` --up`` scripts and ``--plugin``
to
... pushed to clients where `` --up`` scripts and ``--plugin``
- - In "With OpenVPN v2.4, the project has moved" section, changed:
... it is recommended to do use -std=gnu99 in CFLAGS.
to
... it is recommended to use -std=gnu99 in CFLAGS.
Your patch has been applied to the following branches
commit f38942d1440575e23d9f8713db435b434381486e (master) commit 1fd40c781882426c4ed0770725a58d043c000816 (release/2.4)
Author: Steffan Karger Date: Mon Dec 26 20:15:43 2016 +0100
Textual fixes for Changes.rst
Signed-off-by: Steffan Karger <[email protected]...>
Acked-by: David Sommerseth <[email protected]...>
Message-Id: <[email protected]...>
URL: https://www.mail-archive.com/[email protected]/msg13732.html
Signed-off-by: David Sommerseth <[email protected]...>- --
kind regards,
David Sommerseth
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQIcBAEBAgAGBQJYYkRwAAoJEIbPlEyWcf3y9rcQAKxbIStYB/Jjcw4JB6f0w63D /h4UdCnCfc9BGLwQEIU2N34yJxALHHsSJdw/M3LifOM6DVt/bEGNa36hKSl9zYrm pVGAMCC95cq8Q/tgZjgXQXbI5wZeCMHYGRXPNvM7bi6UrQMqP9Fq2QujfXMYI6Zt DbXSmpabUzxqzLNN2/wOmVRkh6AK1IK2PvpT2c2ypZKjx8SlLY1wnQaSlimXPg4s lvaCpCuy1bI8kML+M/loHGT0GUL7SWE0XAKDg5cVF2vbJ46Nw/GZD+snI0nMBv5x uYVHC9tB+KI4GPszjv8KcoWfA+1Fy7UzFjXU2dFVCsh4S5egm/OQX8TU9/5s9Xk8 DmRejvNNNjGAujoq2ldjd/J9Bpvi0ldwZuW8fPD+Ngf0snFXVUz/e+vD5unNvF1w bNLp93ke5wxACZAfBJBcwhOfvmEaNwy6T23uviBTGeIZ6KGskeiE8hgaPmpVcas9 3d1m5PtGHIXQ9c0i4znNVla8Fv9F52iLAcyG4jr61w22mQ6iG+QLa0xofCVrUTm6 wDlk0293W7urB0l6EH+P+A6d3pDnYrjCpaSWnh1wxrrC1W/CJwlIXXmArGeVPZ3o ETZkR7WOzkdFqrPgKHnEP9w/IcYYJTKABRXmIJzXX3kChQu87Vr+Q13NJI1PYZ4K Uogbtwvw7SrmhCNjT+qO
=Scz7
-----END PGP SIGNATURE-----