Hardening OpenVPN in 2020: Extra Credit
In my previous article, I laid out a framework for building a modern, hardened OpenVPN server/client configuration. At the end, I noted there were some additional hardening steps that would be nice to take for extra security. In particular: Using an additional static TLS key in the initial TLS handshake to prevent denial-of-service attacks. Storing keys in hardware cryptographic devices to prevent exfiltration. Using multi-factor authentication with time-based one time passwords (TOTP, AKA Google Authenticator) Closing the small security hole created because OpenVPN doesn’t by default check that client certificates match client usernames. Instructing OpenVPN to apply additional exploit mitigation measures to itself after initialization. Like the previous article, this will be slightly complicated by the fact that many installations of OpenVPN don’t use the community edition server directly, but wrap it in some other interface or appliance. It will likely be impossible to apply the latter two hardening steps in that case, and may also be impossible to perform the first or third depending on what options are exposed. If you use a wrapper or appliance and the security benefits of these additional configuration steps seem like something you want and the appliance doesn’t offer the options to do so, check with the support team for the product and see if they’re applying them already or if they can expose the relevant options in their interface. ...