OpenVPN - OpenVPN

OpenVPN
OpenVPN-logo.svg
Originalautor(en) James Yonan
Entwickler OpenVPN-Projekt / OpenVPN Inc.
Erstveröffentlichung 13. Mai 2001 ; vor 20 Jahren ( 2001-05-13 )
Stabile Version 2.5.3 (17. Juni 2021 ; vor 59 Tagen ) [±] ( 2021-06-17 )
Repository Bearbeite dies bei Wikidata
Geschrieben in C
Plattform
Typ VPN
Lizenz GNU GPLv2
Webseite openvpn .net Bearbeiten Sie dies auf Wikidata

OpenVPN ist ein virtuelles privates Netzwerk (VPN)-System, das Techniken implementiert, um sichere Punkt-zu-Punkt- oder Standort-zu-Standort-Verbindungen in gerouteten oder überbrückten Konfigurationen und Fernzugriffseinrichtungen herzustellen. Es implementiert sowohl Client- als auch Serveranwendungen .

OpenVPN ermöglicht Peers authentifizieren sich gegenseitig mit Pre-Shared geheimen Schlüssel , Zertifikate oder Benutzernamen / Passwort . Bei Verwendung in einer Multiclient-Server-Konfiguration ermöglicht es dem Server, ein Authentifizierungszertifikat für jeden Client mithilfe von Signaturen und Zertifizierungsstellen freizugeben .

Es verwendet die OpenSSL Verschlüsselung Bibliothek ausführlich, sowie das TLS - Protokoll, und enthält viele Sicherheits- und Kontrollfunktionen. Es verwendet ein benutzerdefiniertes Sicherheitsprotokoll, das SSL/TLS für den Schlüsselaustausch verwendet. Es ist in der Lage, Netzwerkadressübersetzer (NATs) und Firewalls zu durchqueren .

OpenVPN wurde portiert und in mehrere Systeme eingebettet. DD-WRT verfügt beispielsweise über die OpenVPN-Serverfunktion. SoftEther VPN , ein Multiprotokoll -VPN-Server, verfügt auch über eine Implementierung des OpenVPN-Protokolls.

Es wurde von James Yonan geschrieben und ist freie Software , veröffentlicht unter den Bedingungen der GNU General Public License Version 2 (GPLv2). Darüber hinaus sind kommerzielle Lizenzen erhältlich.

Die Architektur

Verschlüsselung

OpenVPN verwendet die OpenSSL- Bibliothek, um sowohl die Daten- als auch die Kontrollkanäle zu verschlüsseln . Es lässt OpenSSL die gesamte Verschlüsselungs- und Authentifizierungsarbeit erledigen, sodass OpenVPN alle im OpenSSL-Paket verfügbaren Verschlüsselungen verwenden kann. Es kann auch die HMAC- Paketauthentifizierungsfunktion verwenden, um der Verbindung eine zusätzliche Sicherheitsebene hinzuzufügen (vom Ersteller als "HMAC-Firewall" bezeichnet). Es kann auch Hardwarebeschleunigung verwenden, um eine bessere Verschlüsselungsleistung zu erzielen. Unterstützung für mbed TLS ist ab Version 2.3 verfügbar.

Authentifizierung

OpenVPN bietet mehrere Möglichkeiten, Peers miteinander zu authentifizieren . OpenVPN bietet Pre-Shared Keys , zertifikatbasierte und Benutzername/Passwort-basierte Authentifizierung. Preshared geheimer Schlüssel ist die einfachste und zertifikatsbasierte ist die robusteste und feature-rich . In Version 2.0 können Benutzernamen/Passwort-Authentifizierungen sowohl mit als auch ohne Zertifikate aktiviert werden. Um jedoch Benutzername/Passwort-Authentifizierung zu verwenden, ist OpenVPN von Modulen von Drittanbietern abhängig.

Vernetzung

OpenVPN kann über User Datagram Protocol (UDP) oder Transmission Control Protocol (TCP) -Transporte laufen und erstellte SSL-Tunnel auf einem einzigen TCP/UDP-Port multiplexen (RFC 3948 für UDP).

Ab der 2.3.x-Serie unterstützt OpenVPN vollständig IPv6 als Protokoll des virtuellen Netzwerks innerhalb eines Tunnels und die OpenVPN-Anwendungen können auch Verbindungen über IPv6 aufbauen. Es hat die Fähigkeit, über die meisten Proxy-Server (einschließlich HTTP ) zu arbeiten und ist gut darin, die Netzwerkadressübersetzung (NAT) zu verarbeiten und durch Firewalls herauszukommen. Die Serverkonfiguration hat die Fähigkeit, bestimmte Netzwerkkonfigurationsoptionen an die Clients zu "pushen". Dazu gehören IP-Adressen, Routing-Befehle und einige Verbindungsoptionen. OpenVPN bietet zwei Arten von Schnittstellen für die Vernetzung über den universellen TUN/TAP-Treiber . Es kann entweder einen Layer-3- basierten IP-Tunnel (TUN) oder einen Layer-2- basierten Ethernet-TAP erstellen , der jede Art von Ethernet-Datenverkehr übertragen kann. OpenVPN kann optional die LZO- Kompressionsbibliothek verwenden, um den Datenstrom zu komprimieren. Port 1194 ist die von der IANA offiziell zugewiesene Portnummer für OpenVPN. Neuere Versionen des Programms verwenden jetzt standardmäßig diesen Port. Eine Funktion in der Version 2.0 ermöglicht es einem Prozess, mehrere Tunnel gleichzeitig zu verwalten, im Gegensatz zu der ursprünglichen Beschränkung "ein Tunnel pro Prozess" bei der 1.x-Serie.

Die Verwendung gängiger Netzwerkprotokolle (TCP und UDP) durch OpenVPN macht es zu einer wünschenswerten Alternative zu IPsec in Situationen, in denen ein ISP möglicherweise bestimmte VPN- Protokolle blockiert , um Benutzer zu zwingen, eine höherpreisige "Business-Grade"-Dienststufe zu abonnieren. Zum Beispiel Comcast zuvor erklärt , dass ihr @Home Produkt war, und hatte schon immer als Wohn Service bezeichnet und hat die Verwendung von kommerziellen Anwendungen nicht zulassen. Ihr Argument war, dass Telearbeit mit hohem Datenverkehr während der Nutzung eines VPN die Netzwerkleistung ihrer regulären Privatkunden beeinträchtigen kann. Sie boten eine Alternative an, @Home Professional, die mehr kosten würde als das @Home-Produkt. Jeder, der VPN verwenden möchte, muss also eine höherpreisige Servicestufe der Unternehmensklasse abonnieren.

Wenn OpenVPN TCP-Transporte ( Transmission Control Protocol ) verwendet, um einen Tunnel aufzubauen, ist die Leistung nur so lange akzeptabel, wie genügend überschüssige Bandbreite auf der ungetunnelten Netzwerkverbindung vorhanden ist, um sicherzustellen, dass die getunnelten TCP-Timer nicht ablaufen. Wenn dies nicht der Fall ist, sinkt die Leistung dramatisch. Dies ist als "TCP-Meltdown-Problem" bekannt.

Sicherheit

OpenVPN bietet verschiedene interne Sicherheitsfunktionen. Es verfügt über eine bis zu 256-Bit-Verschlüsselung über die OpenSSL- Bibliothek, obwohl einige Dienstanbieter möglicherweise niedrigere Tarife anbieten und damit effektiv einige der schnellsten VPNs bieten, die den Verbrauchern zur Verfügung stehen. Es läuft im Userspace, anstatt einen IP-Stack (daher Kernel)-Betrieb zu erfordern. OpenVPN hat die Fähigkeit, Root - Privilegien fallen , verwenden mlockall sensible Daten auf die Festplatte tauschen zu verhindern, eine Eingabe chroot - Gefängnis nach der Initialisierung und eine Anwendung SELinux Kontext nach der Initialisierung.

OpenVPN führt ein benutzerdefiniertes Sicherheitsprotokoll aus, das auf SSL und TLS basiert, anstatt IKE, IPsec, L2TP oder PPTP zu unterstützen .

OpenVPN bietet Unterstützung von Smartcards über PKCS#11- basierte kryptografische Token.

Erweiterbarkeit

OpenVPN lässt sich mit Plug-Ins oder Skripten von Drittanbietern erweitern, die an definierten Einstiegspunkten aufgerufen werden können. Der Zweck davon ist oft, OpenVPN um erweiterte Protokollierung, verbesserte Authentifizierung mit Benutzernamen und Passwörtern, dynamische Firewall-Updates, RADIUS- Integration usw. zu erweitern. Die Plug-Ins sind dynamisch ladbare Module, die normalerweise in C geschrieben sind , während die Skript-Schnittstelle alle für OpenVPN verfügbaren Skripte oder Binärdateien ausführen kann. Im OpenVPN-Quellcode gibt es einige Beispiele für solche Plug-Ins, darunter ein PAM- Authentifizierungs-Plug-In. Es gibt auch mehrere Plug-Ins von Drittanbietern, um sich gegenüber LDAP- oder SQL-Datenbanken wie SQLite und MySQL zu authentifizieren .

Plattformen

Es ist unter Solaris , Linux , OpenBSD , FreeBSD , NetBSD , QNX , macOS und Windows XP und höher verfügbar . OpenVPN ist für Mobiltelefon-Betriebssysteme (OS) verfügbar, einschließlich Maemo , Windows Mobile 6.5 und niedriger , iOS 3GS+-Geräte, iOS 3.1.2 +-Geräte mit Jailbreak , Android 4.0 +-Geräte und Android-Geräte, auf denen die Cyanogenmod- Aftermarket-Firmware geflasht wurde oder haben das richtige Kernelmodul installiert. Es ist mit einigen Mobiltelefon-Betriebssystemen, einschließlich Palm OS, nicht kompatibel . Es handelt sich nicht um ein "webbasiertes" VPN, das als Webseite wie Citrix oder Terminal Services Web Access angezeigt wird ; Das Programm wird unabhängig installiert und konfiguriert, indem Textdateien manuell bearbeitet werden, anstatt über einen GUI-basierten Assistenten. OpenVPN ist nicht kompatibel mit VPN-Clients, die IPsec über L2TP- oder PPTP- Protokolle verwenden. Das gesamte Paket besteht aus einer Binärdatei für Client- und Serververbindungen , einer optionalen Konfigurationsdatei und einer oder mehreren Schlüsseldateien, abhängig von der verwendeten Authentifizierungsmethode.

Firmware-Implementierungen

OpenVPN wurde in mehrere Router- Firmware-Pakete integriert, die es Benutzern ermöglichen, OpenVPN im Client- oder Server-Modus von ihren Netzwerkroutern aus auszuführen. Ein Router, auf dem OpenVPN im Client-Modus ausgeführt wird, ermöglicht beispielsweise jedem Gerät in einem Netzwerk den Zugriff auf ein VPN, ohne dass OpenVPN installiert werden muss.

Bemerkenswerte Firmware-Pakete mit OpenVPN-Integration umfassen:

Bemerkenswerte Firmware-Pakete mit OpenVPN-Integration
Firmware-Paket Kosten Entwickler Verweise
DD-WRT Frei NewMedia-NET GmbH
Wasserspeier Frei Eric Bischof
OpenWrt Frei Community-getriebene Entwicklung
OPNsense Frei Deciso BV
pfSense Frei Rubicon Communications, LLC (Netgate)
Tomate Frei Keith Moyer

OpenVPN wurde auch in Router-Firmware einiger Hersteller implementiert.

Softwareimplementierungen

OpenVPN wurde in SoftEther VPN integriert , einem Open-Source- Multiprotokoll -VPN-Server, damit Benutzer sich von bestehenden OpenVPN-Clients mit dem VPN-Server verbinden können.

OpenVPN ist auch in Vyos integriert , ein Open-Source-Routing-Betriebssystem, das vom Vyatta- Softwarerouter abgezweigt wurde .

Lizenzierung

OpenVPN ist in zwei Versionen verfügbar:

  • OpenVPN Community Edition, eine kostenlose Open-Source-Version
  • OpenVPN Access Server (OpenVPN-AS) basiert auf der Community Edition, bietet jedoch zusätzliche kostenpflichtige und proprietäre Funktionen wie LDAP-Integration, SMB-Server, Web-UI-Verwaltung und bietet eine Reihe von Installations- und Konfigurationstools, die die schnelle Bereitstellung von eine VPN-Remote-Access-Lösung. Die Access Server-Edition verlässt sich stark auf iptables für den Lastenausgleich und war aus diesem Grund nie unter Windows verfügbar. Diese Version ist auch in der Lage, Client-Installationsprogramme ("OpenVPN Connect") dynamisch zu erstellen, die ein Client-Profil für die Verbindung mit einer bestimmten Access Server-Instanz enthalten. Der Benutzer benötigt jedoch keinen Access Server-Client, um eine Verbindung mit der Access Server-Instanz herzustellen. der Client aus der OpenVPN Community Edition kann verwendet werden.

Siehe auch

Verweise

Externe Links