OpenVPN is a virtual private network (VPN) system that implements techniques to create secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities.
It uses the OpenSSL encryption library extensively, as well as the TLS protocol, and contains many security and control features.
[12] It was written by James Yonan and is free software, released under the terms of the GNU General Public License version 2 (GPLv2).
OpenVPN's use of common network protocols (TCP and UDP) makes it a desirable alternative to IPsec in situations where an ISP may block specific VPN protocols in order to force users to subscribe to a higher-priced, "business grade" service tier.
For example, Comcast previously declared that their @Home product was, and had always been, designated as a residential service and did not allow the use of commercial applications.
Their argument was that conducting remote work via a VPN can adversely affect the network performance of their regular residential subscribers.
[21] When OpenVPN uses Transmission Control Protocol (TCP) transports to establish a tunnel, performance will be acceptable only as long as there is sufficient excess bandwidth on the un-tunneled network link to guarantee that the tunneled TCP timers do not expire.
OpenVPN runs a custom security protocol based on SSL and TLS,[11] rather than supporting IKE, IPsec, L2TP or PPTP.
OpenVPN can be extended with third-party plug-ins or scripts, which can be called at defined entry points.
[26][27] The purpose of this is often to extend OpenVPN with more advanced logging, enhanced authentication with username and passwords, dynamic firewall updates, RADIUS integration and so on.
Several third-party plug-ins also exist to authenticate against LDAP or SQL databases such as SQLite and MySQL.
[29] It is available on Solaris, Linux, OpenBSD, FreeBSD, NetBSD, QNX, macOS and Windows XP and later.
OpenVPN is also integrated into Vyos, an open-source routing operating system forked from the Vyatta software router.