Browse code

Changes.rst updates in preparation to 2.5_beta1

Signed-off-by: Gert Doering <gert@greenie.muc.de>

Gert Doering authored on 2020/08/12 19:08:21
Showing 1 changed files
... ...
@@ -68,6 +68,106 @@ Faster connection setup
68 68
     significantly reduces the connection setup time by avoiding one
69 69
     extra packet round-trip and 1s of internal event delays.
70 70
 
71
+Netlink support
72
+    On Linux, if configured without ``--enable-iproute2``, configuring IP
73
+    addresses and adding/removing routes is now done via the netlink(3)
74
+    kernel interface.  This is much faster than calling ``ifconfig`` or
75
+    ``route`` and also enables OpenVPN to run with less privileges.
76
+
77
+    If configured with --enable-iproute2, the ``ip`` command is used
78
+    (as in 2.4).  Support for ``ifconfig`` and ``route`` is gone.
79
+
80
+Wintun support
81
+    On Windows, OpenVPN can now use ``wintun`` devices.  They are faster
82
+    than the traditional ``tap9`` tun/tap devices, but do not provide
83
+    ``--dev tap`` mode - so the official installers contain both.  To use
84
+    a wintun device, add ``--windows-driver wintun`` to your config
85
+    (and use of the interactive service is required as wintun needs
86
+    SYSTEM privileges to enable access).
87
+
88
+IPv6-only operation
89
+    It is now possible to have only IPv6 addresses inside the VPN tunnel,
90
+    and IPv6-only address pools (2.4 always required IPv4 config/pools
91
+    and IPv6 was the "optional extra").
92
+
93
+Improved Windows 10 detection
94
+    Correctly log OS on Windows 10 now.
95
+
96
+Linux VRF support
97
+    Using the new ``--bind-dev`` option, the OpenVPN outside socket can
98
+    now be put into a Linux VRF.  See the "Virtual Routing and Forwarding"
99
+    documentation in the man page.
100
+
101
+TLS 1.3 support
102
+    TLS 1.3 support has been added to OpenVPN.  Currently, this requires
103
+    OpenSSL 1.1.1+.
104
+    The options ``--tls-cipher-suites`` and ``--tls-groups`` have been
105
+    added to fine tune TLS protocol options.  Most of the improvements
106
+    were also backported to OpenVPN 2.4 as part of the maintainance
107
+    releases.
108
+
109
+Support setting DHCP search domain
110
+    A new option ``--dhcp-option DOMAIN-SEARCH my.example.com`` has been
111
+    defined, and Windows support for it is implemented (tun/tap only, no
112
+    wintun support yet).  Other platforms need to support this via ``--up``
113
+    script (Linux) or GUI (OSX/Tunnelblick).
114
+
115
+per-client changing of ``--data-cipher`` or ``data-ciphers-fallback``
116
+    from client-connect script/dir (NOTE: this only changes preference of
117
+    ciphers for NCP, but can not override what the client announces as
118
+    "willing to accept")
119
+
120
+Handle setting of tun/tap interface MTU on Windows
121
+    If IPv6 is in use, MTU must be >= 1280 (Windows enforces IETF requirements)
122
+
123
+Add support for OpenSSL engines to access private key material (like TPM).
124
+
125
+HMAC based auth-token support
126
+    The ``--auth-gen-token`` support has been improved and now generates HMAC
127
+    based user token. If the optional ``--auth-gen-token-secret`` option is
128
+    used clients will be able to seamlessly reconnect to a different server
129
+    using the same secret file or to the same server after a server restart.
130
+
131
+Improved support for pending authentication
132
+    The protocol has been enhanced to be able to signal that
133
+    the authentication should use a secondary authentication
134
+    via web (like SAML) or a two factor authentication without
135
+    disconnecting the OpenVPN session with AUTH_FAILED. The
136
+    session will instead be stay in a authenticated state and
137
+    wait for the second factor authentication to complete.
138
+
139
+    This feature currently requires usage of the managent interface
140
+    on both client and server side. See the `management-notes.txt`
141
+    ``client-pending-auth`` and ``cr-response`` commands for more
142
+    details.
143
+
144
+VLAN support
145
+    OpenVPN servers in TAP mode can now use 802.1q tagged VLANs
146
+    on the TAP interface to separate clients into different groups
147
+    that can then be handled differently (different subnets / DHCP,
148
+    firewall zones, ...) further down the network.  See the new
149
+    options ``--vlan-tagging``, ``--vlan-accept``, ``--vlan-pvid``.
150
+
151
+    802.1q tagging on the client side TAP interface is not handled
152
+    today (= tags are just forwarded transparently to the server).
153
+
154
+Support building of .msi installers for Windows
155
+
156
+Allow unicode search string in ``--cryptoapicert`` option (Windows)
157
+
158
+Support IPv4 configs with /31 netmasks now
159
+    (By no longer trying to configure ``broadcast x.x.x.x'' in
160
+    ifconfig calls, /31 support "just works")
161
+
162
+New option ``--block-ipv6`` to reject all IPv6 packets (ICMPv6)
163
+    this is useful if the VPN service has no IPv6, but the clients
164
+    might have (LAN), to avoid client connections to IPv6-enabled
165
+    servers leaking "around" the IPv4-only VPN.
166
+
167
+``--ifconfig-ipv6`` and ``--ifconfig-ipv6-push`` will now accept
168
+    hostnames and do a DNS lookup to get the IPv6 address to use
169
+
170
+
71 171
 Deprecated features
72 172
 -------------------
73 173
 For an up-to-date list of all deprecated options, see this wiki page:
... ...
@@ -91,7 +191,13 @@ https://community.openvpn.net/openvpn/wiki/DeprecatedOptions
91 91
   ``--verify-client-cert none`` instead.
92 92
 
93 93
 - ``--ifconfig-pool-linear`` has been removed
94
-  This option is removed.  Use ``--topology p2p`` instead.
94
+  This option is removed.  Use ``--topology p2p`` or ``--topology subnet``
95
+  instead.
96
+
97
+- ``--compress xxx`` is considered risky and is warned against, see below.
98
+
99
+- ``--key-method 1`` has been removed
100
+
95 101
 
96 102
 User-visible Changes
97 103
 --------------------
... ...
@@ -107,6 +213,81 @@ User-visible Changes
107 107
   the client configuration almost immediately as result of the
108 108
   faster connection setup feature.
109 109
 
110
+- ``--compression`` is nowadays considered risky, because attacks exist
111
+  leveraging compression-inside-crypto to reveal plaintext (VORACLE).  So
112
+  by default, ``--compression xxx`` will now accept incoming compressed
113
+  packets (for compatibility with peers that have not been upgraded yet),
114
+  but will not use compression outgoing packets.  This can be controlled with
115
+  the new option ``--allow-compression yes|no|asym``.
116
+
117
+- Stop changing ``--txlen`` aways from OS defaults unless explicitly specified
118
+  in config file.  OS defaults nowadays are actually larger then what we used
119
+  to configure, so our defaults sometimes caused packet drops = bad performance.
120
+
121
+- remove ``--writepid`` pid file on exit now
122
+
123
+- plugin-auth-pam now logs via OpenVPN logging method, no longer to stderr
124
+  (this means you'll have log messages in syslog or openvpn log file now)
125
+
126
+- use ISO 8601 time format for file based logging now (YYYY-MM-DD hh:mm:dd)
127
+  (syslog is not affected, nor is ``--machine-readable-output``)
128
+
129
+- ``--clr-verify`` now loads all CRLs if more than one CRL is in the same
130
+  file (OpenSSL backend only, mbedTLS always did that)
131
+
132
+- when ``--auth-user-pass file`` has no password, and the management interface
133
+  is active, query management interface (instead of trying console query,
134
+  which does not work on windows)
135
+
136
+- skip expired certificates in Windows certificate store (``--cryptoapicert``)
137
+
138
+- ``--socks-proxy`` + ``--proto udp*`` will now allways use IPv4, even if
139
+  IPv6 is requested and available.  Our SOCKS code does not handle IPv6+UDP,
140
+  and before that change it would just fail in non-obvious ways.
141
+
142
+- TCP listen() backlog queue is now set to 32 - this helps TCP servers that
143
+  receive lots of "invalid" connects by TCP port scanners
144
+
145
+- do no longer print OCC warnings ("option mismatch") about ``key-method``,
146
+  ``keydir``, ``tls-auth`` and ``cipher`` - these are either gone now, or
147
+  negotiated, and the warnings do not serve a useful purpose.
148
+
149
+- ``dhcp-option DNS`` and ``dhcp-option DNS6`` are now treated identically
150
+  (= both accept an IPv4 or IPv6 address for the nameserver)
151
+
152
+
153
+Maintainer-visible changes
154
+--------------------------
155
+- the man page is now in maintained in .rst format, so building the openvpn.8
156
+  manpage from a git checkout now requires python-docutils (if this is missing,
157
+  the manpage will not be built - which is not considered an error generally,
158
+  but for package builders or ``make distcheck`` it is).  Release tarballs
159
+  contain the openvpn.8 file, so unless some .rst is changed, doc-utils are
160
+  not needed for building.
161
+
162
+- OCC support can no longer be disabled
163
+
164
+- AEAD support is now required in the crypto library
165
+
166
+- ``--disable-server`` has been removed from configure (so it is no longer
167
+  possible to build a client-/p2p-only OpenVPN binary) - the saving in code
168
+  size no longer outweighs the extra maintenance effort.
169
+
170
+- ``--enable-iproute2`` will disable netlink(3) support, so maybe remove
171
+  that from package building configs (see above)
172
+
173
+- support building with MSVC 2019
174
+
175
+- cmocka based unit tests are now only run if cmocka is installed externally
176
+  (2.4 used to ship a local git submodule which was painful to maintain)
177
+
178
+- ``--disable-crypto`` configure option has been removed.  OpenVPN is now always
179
+  built with crypto support, which makes the code much easier to maintain.
180
+  This does not affect ``--cipher none`` to do a tunnel without encryption.
181
+
182
+- ``--disable-multi`` configure option has been removed
183
+
184
+
110 185
 
111 186
 Overview of changes in 2.4
112 187
 ==========================