Update URLs in README
Rip out information in INSTALL that is already in PORTS, or is
printed by "./configure --help"
Update tun/tap driver information where outdated or incomplete.
Update build prerequisites, add new linux libraries, add git and
libtool to developer tools needed, etc.
Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Message-Id: <20221128164932.14252-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg25566.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
Installation instructions for OpenVPN, a Secure Tunneling Daemon |
| 2 | 2 |
|
| 3 |
-Copyright (C) 2002-2019 OpenVPN Inc. This program is free software; |
|
| 3 |
+Copyright (C) 2002-2022 OpenVPN Inc. This program is free software; |
|
| 4 | 4 |
you can redistribute it and/or modify |
| 5 | 5 |
it under the terms of the GNU General Public License version 2 |
| 6 | 6 |
as published by the Free Software Foundation. |
| ... | ... |
@@ -52,45 +52,39 @@ Also see the man page for more information. |
| 52 | 52 |
|
| 53 | 53 |
************************************************************************* |
| 54 | 54 |
|
| 55 |
-SUPPORTED PLATFORMS: |
|
| 56 |
- (1) Linux (kernel 2.6+) |
|
| 57 |
- (2) Solaris |
|
| 58 |
- (3) OpenBSD 5.1+ |
|
| 59 |
- (4) Mac OS X Darwin 10.5+ |
|
| 60 |
- (5) FreeBSD 7.4+ |
|
| 61 |
- (6) NetBSD 5.0+ |
|
| 62 |
- (7) Windows Vista or later for OpenVPN 2.4 |
|
| 63 |
- (8) Windows XP or later for OpenVPN 2.3 |
|
| 64 |
- |
|
| 65 |
-SUPPORTED PROCESSOR ARCHITECTURES: |
|
| 66 |
- In general, OpenVPN is word size and endian independent, so |
|
| 67 |
- most processors should be supported. Architectures known to |
|
| 68 |
- work include Intel x86, Alpha, Sparc, Amd64, and ARM. |
|
| 69 |
- |
|
| 70 |
-REQUIRES: |
|
| 55 |
+For a list of supported platforms and architectures, and for |
|
| 56 |
+instructions how to port OpenVPN to a yet-unsupported architecture, |
|
| 57 |
+see the file "PORTS". |
|
| 58 |
+ |
|
| 59 |
+************************************************************************* |
|
| 60 |
+ |
|
| 61 |
+SYSTEM REQUIREMENTS: |
|
| 71 | 62 |
(1) TUN and/or TAP driver to allow user-space programs to control |
| 72 |
- a virtual point-to-point IP or Ethernet device. See |
|
| 73 |
- TUN/TAP Driver Configuration section below for more info. |
|
| 74 |
- (2) OpenSSL library, necessary for encryption, version 1.0.2 or higher |
|
| 63 |
+ a virtual point-to-point IP or Ethernet device. |
|
| 64 |
+ See TUN/TAP Driver References section below for more info. |
|
| 65 |
+ (2a) OpenSSL library, necessary for encryption, version 1.0.2 or higher |
|
| 75 | 66 |
required, available from http://www.openssl.org/ |
| 76 | 67 |
or |
| 77 |
- (3) mbed TLS library, an alternative for encryption, version 2.0 or higher |
|
| 68 |
+ (2b) mbed TLS library, an alternative for encryption, version 2.0 or higher |
|
| 78 | 69 |
required, available from https://tls.mbed.org/ |
| 70 |
+ (3) on Linux, "libnl-gen" is required for kernel netlink support |
|
| 71 |
+ (4) on Linux, "libcap-ng" is required for Linux capability handling |
|
| 79 | 72 |
|
| 80 | 73 |
OPTIONAL: |
| 81 |
- (3) LZO real-time compression library, required for link compression, |
|
| 74 |
+ (5) LZO real-time compression library, required for link compression, |
|
| 82 | 75 |
available from http://www.oberhumer.com/opensource/lzo/ |
| 83 |
- OpenBSD users can use ports or packages to install lzo, but remember |
|
| 84 |
- to add CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" |
|
| 85 |
- directives to "configure", since gcc will not find them otherwise. |
|
| 76 |
+ (most supported operating systems have LZO in their installable |
|
| 77 |
+ packages repository. It might be necessary to add LZO_CFLAGS= |
|
| 78 |
+ and LZO_LIBS= to the configure call to make it find the LZO pieces) |
|
| 79 |
+ (6) LZ4 compression library |
|
| 86 | 80 |
|
| 87 | 81 |
OPTIONAL (for developers only): |
| 88 |
- (1) Autoconf 2.59 or higher + Automake 1.9 or higher |
|
| 89 |
- -- available from http://www.gnu.org/software/software.html |
|
| 90 |
- (2) Dmalloc library |
|
| 91 |
- -- available from http://dmalloc.com/ |
|
| 82 |
+ (1) Autoconf 2.59 or higher |
|
| 83 |
+ Automake 1.9 or higher |
|
| 84 |
+ Libtool |
|
| 85 |
+ Git |
|
| 86 |
+ (2) cmocka test framework (http://cmocka.org) |
|
| 92 | 87 |
(3) If using t_client.sh test framework, fping/fping6 is needed |
| 93 |
- -- Available from http://www.fping.org/ |
|
| 94 | 88 |
Note: t_client.sh needs an external configured OpenVPN server. |
| 95 | 89 |
See t_client.rc-sample for more info. |
| 96 | 90 |
|
| ... | ... |
@@ -106,7 +100,7 @@ CHECK OUT SOURCE FROM SOURCE REPOSITORY: |
| 106 | 106 |
|
| 107 | 107 |
Check out stable version: |
| 108 | 108 |
|
| 109 |
- git checkout release/2.4 |
|
| 109 |
+ git checkout release/2.6 |
|
| 110 | 110 |
|
| 111 | 111 |
Check out master (unstable) branch: |
| 112 | 112 |
|
| ... | ... |
@@ -119,7 +113,7 @@ BUILD COMMANDS FROM TARBALL: |
| 119 | 119 |
|
| 120 | 120 |
./configure |
| 121 | 121 |
make |
| 122 |
- make install |
|
| 122 |
+ sudo make install |
|
| 123 | 123 |
|
| 124 | 124 |
************************************************************************* |
| 125 | 125 |
|
| ... | ... |
@@ -128,7 +122,7 @@ BUILD COMMANDS FROM SOURCE REPOSITORY CHECKOUT: |
| 128 | 128 |
autoreconf -i -v -f |
| 129 | 129 |
./configure |
| 130 | 130 |
make |
| 131 |
- make install |
|
| 131 |
+ sudo make install |
|
| 132 | 132 |
|
| 133 | 133 |
************************************************************************* |
| 134 | 134 |
|
| ... | ... |
@@ -175,98 +169,17 @@ you can install cmocka with these commands: |
| 175 | 175 |
|
| 176 | 176 |
OPTIONS for ./configure: |
| 177 | 177 |
|
| 178 |
- --disable-lzo disable LZO compression support [default=yes] |
|
| 179 |
- --disable-lz4 Disable LZ4 compression support |
|
| 180 |
- --enable-comp-stub Don't compile compression support but still allow limited interoperability with compression-enabled peers |
|
| 181 |
- --disable-crypto disable crypto support [default=yes] |
|
| 182 |
- --disable-ofb-cfb disable support for OFB and CFB cipher modes |
|
| 183 |
- [default=yes] |
|
| 184 |
- --enable-x509-alt-username |
|
| 185 |
- enable the --x509-username-field feature |
|
| 186 |
- [default=no] |
|
| 187 |
- --disable-server disable server support only (but retain client |
|
| 188 |
- support) [default=yes] |
|
| 189 |
- --disable-plugins disable plug-in support [default=yes] |
|
| 190 |
- --disable-management disable management server support [default=yes] |
|
| 191 |
- --enable-pkcs11 enable pkcs11 support [default=no] |
|
| 192 |
- --disable-fragment disable internal fragmentation support (--fragment) |
|
| 193 |
- [default=yes] |
|
| 194 |
- --disable-multihome disable multi-homed UDP server support (--multihome) |
|
| 195 |
- [default=yes] |
|
| 196 |
- --disable-port-share disable TCP server port-share support (--port-share) |
|
| 197 |
- [default=yes] |
|
| 198 |
- --disable-debug disable debugging support (disable gremlin and verb |
|
| 199 |
- 7+ messages) [default=yes] |
|
| 200 |
- --enable-small enable smaller executable size (disable OCC, usage |
|
| 201 |
- message, and verb 4 parm list) [default=no] |
|
| 202 |
- --enable-iproute2 enable support for iproute2 [default=no] |
|
| 203 |
- --disable-def-auth disable deferred authentication [default=yes] |
|
| 204 |
- --disable-pf disable internal packet filter [default=yes] |
|
| 205 |
- --disable-plugin-auth-pam |
|
| 206 |
- disable auth-pam plugin [default=platform specific] |
|
| 207 |
- --disable-plugin-down-root |
|
| 208 |
- disable down-root plugin [default=platform specific] |
|
| 209 |
- --enable-pam-dlopen dlopen libpam [default=no] |
|
| 210 |
- --enable-strict enable strict compiler warnings (debugging option) |
|
| 211 |
- [default=no] |
|
| 212 |
- --enable-pedantic enable pedantic compiler warnings, will not generate |
|
| 213 |
- a working executable (debugging option) [default=no] |
|
| 214 |
- --enable-werror promote compiler warnings to errors, will cause |
|
| 215 |
- builds to fail if the compiler issues warnings |
|
| 216 |
- (debugging option) [default=no] |
|
| 217 |
- --enable-strict-options enable strict options check between peers (debugging |
|
| 218 |
- option) [default=no] |
|
| 219 |
- --enable-selinux enable SELinux support [default=no] |
|
| 220 |
- --enable-systemd enable systemd support [default=no] |
|
| 221 |
- --enable-async-push enable async-push support for plugins providing |
|
| 222 |
- deferred authentication [default=no] |
|
| 178 |
+ To get an overview of all the configure options, run "./configure --help" |
|
| 223 | 179 |
|
| 224 | 180 |
ENVIRONMENT for ./configure: |
| 225 | 181 |
|
| 226 |
- PLUGINDIR Path of plug-in directory [default=LIBDIR/openvpn/plugins] |
|
| 227 |
- IFCONFIG full path to ipconfig utility |
|
| 228 |
- ROUTE full path to route utility |
|
| 229 |
- IPROUTE full path to ip utility |
|
| 230 |
- NETSTAT path to netstat utility |
|
| 231 |
- GIT path to git utility |
|
| 232 |
- SYSTEMD_ASK_PASSWORD |
|
| 233 |
- path to systemd-ask-password utility |
|
| 234 |
- SYSTEMD_UNIT_DIR |
|
| 235 |
- Path of systemd unit directory [default=LIBDIR/systemd/system] |
|
| 236 |
- TMPFILES_DIR |
|
| 237 |
- Path of tmpfiles directory [default=LIBDIR/tmpfiles.d] |
|
| 238 |
- RST2MAN Path to rst2man utility |
|
| 239 |
- RST2HTML Path to rst2html utility |
|
| 240 |
- |
|
| 241 |
-ENVIRONMENT variables adjusting parameters related to dependencies |
|
| 242 |
- |
|
| 243 |
- TAP_CFLAGS C compiler flags for tap |
|
| 244 |
- LIBPAM_CFLAGS |
|
| 245 |
- C compiler flags for libpam |
|
| 246 |
- LIBPAM_LIBS linker flags for libpam |
|
| 247 |
- PKCS11_HELPER_CFLAGS |
|
| 248 |
- C compiler flags for PKCS11_HELPER, overriding pkg-config |
|
| 249 |
- PKCS11_HELPER_LIBS |
|
| 250 |
- linker flags for PKCS11_HELPER, overriding pkg-config |
|
| 251 |
- OPENSSL_CFLAGS |
|
| 252 |
- C compiler flags for OpenSSL |
|
| 253 |
- OPENSSL_LIBS |
|
| 254 |
- linker flags for OpenSSL |
|
| 255 |
- MBEDTLS_CFLAGS |
|
| 256 |
- C compiler flags for mbedtls |
|
| 257 |
- MBEDTLS_LIBS |
|
| 258 |
- linker flags for mbedtls |
|
| 259 |
- LZO_CFLAGS C compiler flags for lzo |
|
| 260 |
- LZO_LIBS linker flags for lzo |
|
| 261 |
- LZ4_CFLAGS C compiler flags for lz4 |
|
| 262 |
- LZ4_LIBS linker flags for lz4 |
|
| 263 |
- libsystemd_CFLAGS |
|
| 264 |
- C compiler flags for libsystemd, overriding pkg-config |
|
| 265 |
- libsystemd_LIBS |
|
| 266 |
- linker flags for libsystemd, overriding pkg-config |
|
| 267 |
- P11KIT_CFLAGS |
|
| 268 |
- C compiler flags for P11KIT, overriding pkg-config |
|
| 269 |
- P11KIT_LIBS linker flags for P11KIT, overriding pkg-config |
|
| 182 |
+ For more fine-grained control on include + library paths for external |
|
| 183 |
+ components etc., configure can be called with environment variables on |
|
| 184 |
+ the command line, e.g. |
|
| 185 |
+ |
|
| 186 |
+ ./configure OPENSSL_CFLAGS="-I/usr/local/include" ... |
|
| 187 |
+ |
|
| 188 |
+ these are also explained in "./configure --help", so not repeated here. |
|
| 270 | 189 |
|
| 271 | 190 |
************************************************************************* |
| 272 | 191 |
|
| ... | ... |
@@ -302,13 +215,13 @@ For more details: |
| 302 | 302 |
* Ubuntu |
| 303 | 303 |
https://packages.ubuntu.com/search?keywords=openvpn |
| 304 | 304 |
|
| 305 |
-In addition, the OpenVPN community provides a best-effort APT repository |
|
| 306 |
-for Debian and Ubuntu: |
|
| 305 |
+In addition, the OpenVPN community provides best-effort package |
|
| 306 |
+repositories for CentOS/Fedora, Debian and Ubuntu: |
|
| 307 | 307 |
https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos |
| 308 | 308 |
|
| 309 | 309 |
************************************************************************* |
| 310 | 310 |
|
| 311 |
-TUN/TAP Driver Configuration: |
|
| 311 |
+TUN/TAP Driver References: |
|
| 312 | 312 |
|
| 313 | 313 |
* Linux 2.6 or higher (with integrated TUN/TAP driver): |
| 314 | 314 |
|
| ... | ... |
@@ -322,17 +235,17 @@ TUN/TAP Driver Configuration: |
| 322 | 322 |
|
| 323 | 323 |
FreeBSD ships with the TUN/TAP driver, and the device nodes for tap0, |
| 324 | 324 |
tap1, tap2, tap3, tun0, tun1, tun2 and tun3 are made by default. |
| 325 |
- However, only the TUN driver is linked into the GENERIC kernel. |
|
| 326 | 325 |
|
| 327 |
- To load the TAP driver, enter: |
|
| 326 |
+ On FreeBSD versions prior to 12.0-RELEASE, there were independent |
|
| 327 |
+ TUN and TAP drivers, and the TAP driver needed to be loaded manually, |
|
| 328 |
+ using the command: |
|
| 328 | 329 |
|
| 329 |
- kldload if_tap |
|
| 330 |
+ # kldload if_tap |
|
| 330 | 331 |
|
| 331 |
- See man rc(8) to find out how you can do this at boot time. |
|
| 332 |
+ For recent FreeBSD versions, TUN/TAP are integrated and always loaded. |
|
| 332 | 333 |
|
| 333 |
- The easiest way is to install OpenVPN from the FreeBSD ports system, |
|
| 334 |
- the port includes a sample script to automatically load the TAP driver |
|
| 335 |
- at boot-up time. |
|
| 334 |
+ FreeBSD 14 contains the ovpn(4) for kernel-level OpenVPN acceleration |
|
| 335 |
+ (DCO) which will be used by OpenVPN 2.6 and up if available. |
|
| 336 | 336 |
|
| 337 | 337 |
* OpenBSD: |
| 338 | 338 |
|
| ... | ... |
@@ -354,31 +267,14 @@ TUN/TAP Driver Configuration: |
| 354 | 354 |
recent Windows versions it is recommended to use the NDIS 6 driver |
| 355 | 355 |
(tap-windows6) instead. |
| 356 | 356 |
|
| 357 |
+ Windows 10 and Server 2016 and up can use the dco-win driver for |
|
| 358 |
+ kernel-level acceleration for OpenVPN client setups. This is also |
|
| 359 |
+ included in the community-provided OpenVPN installers. |
|
| 360 |
+ |
|
| 357 | 361 |
************************************************************************* |
| 358 | 362 |
|
| 359 | 363 |
CAVEATS & BUGS: |
| 360 | 364 |
|
| 361 |
-* I have noticed cases where TCP sessions tunneled over the Linux |
|
| 362 |
- TAP driver (kernel 2.4.21 and 2.4.22) stall when lower --mssfix |
|
| 363 |
- values are used. The TCP sessions appear to unstall and resume |
|
| 364 |
- normally when the remote VPN endpoint is pinged. |
|
| 365 |
- |
|
| 366 |
-* If run through a firewall using OpenBSDs packet filter PF and the |
|
| 367 |
- filter rules include a "scrub" directive, you may get problems talking |
|
| 368 |
- to Linux hosts over the tunnel, since the scrubbing will kill packets |
|
| 369 |
- sent from Linux hosts if they are fragmented. This is usually seen as |
|
| 370 |
- tunnels where small packets and pings get through but large packets |
|
| 371 |
- and "regular traffic" don't. To circumvent this, add "no-df" to |
|
| 372 |
- the scrub directive so that the packet filter will let fragments with |
|
| 373 |
- the "dont fragment"-flag set through anyway. |
|
| 374 |
- |
|
| 375 |
-* Mixing OFB or CFB cipher modes with static key mode is not recommended, |
|
| 376 |
- and is flagged as an error on OpenVPN versions 1.2.1 and greater. |
|
| 377 |
- If you use the --cipher option to explicitly select an OFB or CFB |
|
| 378 |
- cipher AND you are using static key mode, it is possible that there |
|
| 379 |
- could be an IV collision if the OpenVPN daemons on both sides |
|
| 380 |
- of the connection are started at exactly the same time, since |
|
| 381 |
- OpenVPN uses a timestamp combined with a sequence number as the cipher |
|
| 382 |
- IV for OFB and CFB modes. This is not an issue if you are |
|
| 383 |
- using CBC cipher mode (the default), or if you are using OFB or CFB |
|
| 384 |
- cipher mode with SSL/TLS authentication. |
|
| 365 |
+* see the bug tracker on https://community.openvpn.net/openvpn/report |
|
| 366 |
+ and the wiki on https://community.openvpn.net/wiki for more detailed |
|
| 367 |
+ caveats on operating systems, and for open and resolved bug reports. |
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
OpenVPN -- A Secure tunneling daemon |
| 2 | 2 |
|
| 3 |
-Copyright (C) 2002-2018 OpenVPN Inc. This program is free software; |
|
| 3 |
+Copyright (C) 2002-2022 OpenVPN Inc. This program is free software; |
|
| 4 | 4 |
you can redistribute it and/or modify |
| 5 | 5 |
it under the terms of the GNU General Public License version 2 |
| 6 | 6 |
as published by the Free Software Foundation. |
| ... | ... |
@@ -9,7 +9,7 @@ as published by the Free Software Foundation. |
| 9 | 9 |
|
| 10 | 10 |
To get the latest release of OpenVPN, go to: |
| 11 | 11 |
|
| 12 |
- https://openvpn.net/index.php/download/community-downloads.html |
|
| 12 |
+ https://openvpn.net/community-downloads/ |
|
| 13 | 13 |
|
| 14 | 14 |
To Build and Install, |
| 15 | 15 |
|
| ... | ... |
@@ -30,7 +30,7 @@ For a sample VPN configuration, see |
| 30 | 30 |
http://openvpn.net/howto.html |
| 31 | 31 |
|
| 32 | 32 |
To report an issue, see |
| 33 |
- https://community.openvpn.net/openvpn/report |
|
| 33 |
+ https://community.openvpn.net/openvpn/newticket |
|
| 34 | 34 |
|
| 35 | 35 |
For a description of OpenVPN's underlying protocol, |
| 36 | 36 |
see the file ssl.h included in the source distribution. |
| ... | ... |
@@ -64,7 +64,7 @@ Note that easy-rsa and tap-windows are now maintained in their own subprojects. |
| 64 | 64 |
Their source code is available here: |
| 65 | 65 |
|
| 66 | 66 |
https://github.com/OpenVPN/easy-rsa |
| 67 |
- https://github.com/OpenVPN/tap-windows |
|
| 67 |
+ https://github.com/OpenVPN/tap-windows6 |
|
| 68 | 68 |
|
| 69 | 69 |
The old cross-compilation environment (domake-win) and the Python-based |
| 70 | 70 |
buildsystem have been replaced with openvpn-build: |