„OpenVPN“ – Versionsunterschied
[ungesichtete Version] | [ungesichtete Version] |
Änderung 161056182 von Schnabeltassentier rückgängig gemacht - Als Nutzer schätze ich diese WP; |
|||
Zeile 69: | Zeile 69: | ||
=== Windows === |
=== Windows === |
||
* [https://openvpn.net/index.php/download/community-downloads.html OpenVPN GUI], offizielle Downloadseite des Projekts. |
|||
* OpenVPN GUI |
|||
* OpenVPN MI GUI, eine Modifikation des Original-GUIs, das die OpenVPN-Managementschnittstelle verwendet und auch ohne Administratorrechte auskommt. |
* [http://openvpn-mi-gui.inside-security.de/ OpenVPN MI GUI], eine Modifikation des Original-GUIs, das die OpenVPN-Managementschnittstelle verwendet und auch ohne Administratorrechte auskommt. |
||
* OpenVPN Admin |
* [http://sourceforge.net/projects/openvpn-admin/ OpenVPN Admin] |
||
* Securepoint OpenVPN Client Windows, kommt ohne Administratorrechte aus und hat einige Komfortfunktionen (Kennwörter speichern, etc.). |
* [http://sourceforge.net/projects/securepoint/ Securepoint OpenVPN Client Windows], kommt ohne Administratorrechte aus und hat einige Komfortfunktionen (Kennwörter speichern, etc.). |
||
* Viscosity (Kommerziell) |
* [http://viscosityvpn.com/ Viscosity] (Kommerziell) |
||
=== Mac OS X === |
=== Mac OS X === |
||
* Tunnelblick |
* [https://tunnelblick.net/ Tunnelblick] |
||
* Viscosity |
* [http://viscosityvpn.com/ Viscosity] |
||
* Shimo |
* [http://www.shimoapp.com/ Shimo] |
||
=== iOS === |
=== iOS === |
||
* GuizmOVPN |
* [http://www.guizmovpn.com/ GuizmOVPN] |
||
* OpenVPN Connect (offizielle Version)<ref>[http://heise.de/-1786006 Heise – Offizieller OpenVPN-Client für iOS]</ref> |
* [https://itunes.apple.com/us/app/openvpn-connect/id590379981 OpenVPN Connect (offizielle Version)]<ref>[http://heise.de/-1786006 Heise – Offizieller OpenVPN-Client für iOS]</ref> |
||
=== Linux === |
=== Linux === |
||
* [[NetworkManager]] |
* [[NetworkManager]] |
||
* [http://freecode.com/projects/kvpnc KVPNC] |
|||
* KVPNC |
|||
* OpenVPN Admin |
* [http://sourceforge.net/projects/openvpn-admin/ OpenVPN Admin] |
||
=== OpenWRT === |
=== OpenWRT === |
||
* OpenVPN HowTo |
* [http://wiki.openwrt.org/inbox/vpn.howto OpenWRT OpenVPN HowTo] |
||
=== Fritz!Box === |
=== Fritz!Box === |
||
* Fritz!Box OpenVPN HowTo |
* [http://www.wehavemorefun.de/fritzbox/OpenVPN Fritz!Box OpenVPN HowTo] |
||
* Freetz OpenVPN HowTo |
* [http://freetz.org/wiki/packages/openvpn Freetz OpenVPN HowTo] |
||
=== Dreambox === |
=== Dreambox === |
||
* OpenVPN Plugin für GP3 |
* [http://wiki.blue-panel.com/index.php/GP3_openvpn OpenVPN Plugin für GP3] |
||
=== Android === |
=== Android === |
||
* OpenVPN Connect (offizielle Version) |
* [https://play.google.com/store/apps/details?id=net.openvpn.openvpn OpenVPN Connect (offizielle Version)] |
||
* OpenVPN für Android ohne Root by Arne Schwabe |
* [https://play.google.com/store/apps/details?id=de.blinkt.openvpn&hl=de OpenVPN für Android ohne Root by Arne Schwabe] |
||
=== Maemo === |
=== Maemo === |
||
* OpenVPN für Maemo 5 |
* [http://maemo.org/downloads/product/Maemo5/openvpn/ OpenVPN für Maemo 5] |
||
== Literatur == |
== Literatur == |
Version vom 29. Dezember 2016, 10:37 Uhr
OpenVPN
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | OpenVPN Technologies, Inc. |
Erscheinungsjahr | 2002[1] |
Aktuelle Version | 2.4.0 (Format invalid) |
Betriebssystem | plattformunabhängig |
Programmiersprache | C[3] |
Kategorie | Virtual Private Network |
Lizenz | GPL (Freie Software) |
openvpn.net |
OpenVPN ist ein Programm zum Aufbau eines Virtuellen Privaten Netzwerkes (VPN) über eine verschlüsselte TLS-Verbindung. Zur Verschlüsselung werden die Bibliotheken des Programmes OpenSSL benutzt. OpenVPN verwendet wahlweise UDP oder TCP zum Transport.
OpenVPN ist freie Software unter der GNU GPL und unterstützt die Betriebssysteme Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X, QNX, Windows Vista/7/8/10, Android, iOS, Maemo und MeeGo sowie das Router-Linux OpenWRT, weiterhin stehen angepasste Implementierungen für eine Vielzahl von Linux-basierten Endgeräten, wie z. B. Settop-Boxen der Firma Dream Multimedia oder für Router der FRITZ!Box-Linie der Firma AVM zur Verfügung.
Hintergrund
Oft soll eine sichere, von Dritten nicht lesbare Kommunikation über ein unsicheres Netzwerk durchgeführt werden. Ein solches unsicheres Netz ist etwa das Internet oder auch ein lokales nicht verschlüsseltes Wireless LAN. Dabei sind zwei Aspekte wesentlich: Eine hinreichende Verschlüsselung der Kommunikationsinhalte und die Authentifizierung der beteiligten Kommunikationspartner.
Diese Sicherheitseigenschaften können durch geeignete Protokolle (z. B. SSH, HTTPS, SFTP) von jeder Anwendung bereitgestellt werden. Alternativ kann diese Sicherheit auch von einer zentralen Stelle, unabhängig von den einzelnen Anwendungen, wünschenswert sein. Die Vorteile dieses zentralen Ansatzes liegen in der nur einmaligen Implementierung der Sicherheitsfunktionen, dem geringeren Wartungsaufwand und der Möglichkeit, auch die Kommunikation von Software anderer Hersteller zu sichern, auf die kein Einfluss besteht.
Eine solche, zentral bereitgestellte Sicherung ist ein Virtual Private Network (VPN). OpenVPN stellt eine von vielen Implementierungen eines VPNs dar.
Funktionsweise
Kommunikationspartner können einzelne Computer sein oder ein Netzwerk von Computern. Typische Anwendungsfälle sind die Verbindung einzelner Außendienstmitarbeiter in das Netzwerk ihrer Firma, die Verbindung einer Filiale mit dem Rechenzentrum oder die Verbindung örtlich verteilter Server oder Rechenzentren untereinander. In jedem Fall baut einer der beiden Kommunikationsteilnehmer die Verbindung auf (Client), und der andere wartet auf eingehende Verbindungen (Server). Dazu muss der Server unter einer festen IP-Adresse oder unter einem festen Hostnamen erreichbar sein. Dies kann für Computer, die aufgrund von Einwählverbindungen mit ständig wechselnden IP-Adressen konfrontiert sind, auch mit Hilfe eines dynamischen DNS-Dienstes erfolgen.
Befindet sich vor dem VPN-Gateway ein Paketfilter oder Proxy, oder wird eine Adressumsetzung (NAT) durchgeführt, so müssen diese Dienste so konfiguriert werden, dass ein in der Konfiguration von OpenVPN zu vergebender UDP- oder TCP-Port durchgelassen wird und zwar für Input, Forward und Output. OpenVPN zog in der Beta-Phase der Version 2.0 vom Port 5000 auf den für OpenVPN registrierten Port 1194 um.[1]
OpenVPN kennt zwei Betriebsmodi: Routing und Bridging.
Routing
Der Routing-Modus ist die einfachste Form der sicheren Kommunikation und stellt einen verschlüsselten Tunnel zwischen zwei Gegenstellen her, über den ausschließlich IP-Pakete geleitet werden (Layer 3). Dazu wird jeder Gegenstelle eine virtuelle IP-Adresse eines fiktiven Subnetzes zugewiesen (z. B. 10.8.0.1 und 10.8.0.2).
Der Zugriff auf das dahinter liegende Netzwerk ist grundsätzlich nicht direkt möglich (Point-to-Point Verbindung). Um die dortigen Adressen zu erreichen, muss die Gegenstelle die Datenpakete mittels IP-Forwarding und Einträgen in der Routingtabelle weitervermitteln oder auf Network Address Translation zurückgreifen.
Bridging
Im Gegensatz zum Routing ist im Bridging-Modus ein vollständiges Tunneln von Ethernet-Frames (Layer 2) möglich. Es erlaubt somit beispielsweise auch den Einsatz von alternativen Protokollen wie IPX und das Senden von Wake-On-LAN-Paketen.
Ein Client integriert sich völlig transparent in das Einwahlnetz und erhält eine IP-Adresse des dortigen Subnetzes zugewiesen, so dass auch Broadcasts weitergeleitet werden. Letzteres ist insbesondere für die automatische Windows-Namensauflösung des SMB-Protokolls nötig.
Um sich in das vorhandene Subnetz einklinken zu können, muss die von OpenVPN verwendete virtuelle Netzwerkkarte, das sog. TAP-Device, über eine Netzwerkbrücke mit dem tatsächlichen Netzwerk verbunden werden.
Bridging ist etwas ineffizienter als Routing (schlechter skalierbar). Außerdem ist eine Beschränkung des Clientzugriffs schwieriger zu bewerkstelligen als beim Routing.
Authentifizierung
Zur Authentifizierung stellt OpenVPN zwei Methoden zur Verfügung:[4]
Pre-shared Key
Bei Austausch eines „pre-shared key“ (ein statischer Schlüssel/Passwort) werden die Daten mit diesem ver- und entschlüsselt. Das Verfahren ist einfach anzuwenden. Es besteht jedoch der Nachteil, dass der Schlüssel nicht abhandenkommen bzw. kompromittiert werden darf. In diesem Fall muss ein neuer Schlüssel an alle Kommunikationspartner verteilt werden. Daher sollte man einen „vertrauenswürdigen“ Installationsort (z. B. PGP-Disk Container) wählen, damit der Schutz der Schlüssel garantiert ist. Der Schlüssel kann über ein automatisiertes Verfahren durch eine laufende Verbindung hindurch ausgetauscht werden.
Zertifikate
Bei der Anwendung einer zertifikatbasierten Authentifizierung über das TLS-Protokoll werden private und öffentliche Schlüsselpaare beziehungsweise X.509-Zertifikate verwendet.
Der Server und die jeweiligen Nutzer besitzen je ein eigenes Zertifikat (öffentlich/privat). Der OpenVPN-Server lässt nur Verbindungen zu, die von einer ihm bekannten Zertifizierungsstelle signiert wurden. OpenVPN enthält Skripte, die die einfache Zertifikatserstellung ohne weitere Vorkenntnisse ermöglichen (easy-rsa).
Um eine Verbindung aufzubauen, schickt der Client Daten an den Server (SSL-Version und zufällige Daten). Der Server schickt die gleichen Daten und sein Zertifikat zurück. Der Client autorisiert das Zertifikat. Bei beidseitiger Authentifizierung schickt der Client auch sein Zertifikat an den Server. Hat die Überprüfung geklappt, erstellt der Client das „pre-master secret“ und verschlüsselt dies mit dem öffentlichen Schlüssel des Servers. Der Server entschlüsselt die Daten mit seinem privaten Schlüssel und erstellt das „master-secret“. Mit diesem werden Sitzungsschlüssel erstellt. Das sind einmalige Schlüssel, mit denen die Daten ver- und entschlüsselt werden. Der Client teilt dem Server mit, dass ab nun alle Daten mit dem Sitzungsschlüssel verschlüsselt werden. Der Server bestätigt dies, der Tunnel ist aufgebaut. Nach einer gewissen Zeitspanne ersetzt OpenVPN den Sitzungsschlüssel automatisch.
Die zertifikatbasierte Authentifizierung gilt als die sicherste Form der Anmeldung. Um die Sicherheit zu erhöhen, empfiehlt es sich, die Zertifikate auf einer Smartcard auszulagern. OpenVPN unterstützt alle Karten, auf die mittels Windows-Crypto-API oder PKCS #11 zugegriffen werden kann.
Frontends
Für OpenVPN gibt es neben der Kommandozeile diverse grafische Frontends. So existieren z.B. das OpenVPN GUI für Windows, das Programm Tunnelblick für Mac OS X, OpenVPN-Admin, ein auf C# basierendes, in Mono geschriebenes Frontend, KVpnc, eine in das K Desktop Environment eingebundene Applikation, sowie eine Einbindung in NetworkManager (GNOME und K Desktop Environment).
Nachfolgend eine Liste der populären Programme für die jeweiligen Betriebssysteme und Geräte:[5]
Windows
- OpenVPN GUI, offizielle Downloadseite des Projekts.
- OpenVPN MI GUI, eine Modifikation des Original-GUIs, das die OpenVPN-Managementschnittstelle verwendet und auch ohne Administratorrechte auskommt.
- OpenVPN Admin
- Securepoint OpenVPN Client Windows, kommt ohne Administratorrechte aus und hat einige Komfortfunktionen (Kennwörter speichern, etc.).
- Viscosity (Kommerziell)
Mac OS X
iOS
Linux
OpenWRT
Fritz!Box
Dreambox
Android
Maemo
Literatur
- Dirk Becker: OpenVPN – Das Praxisbuch, aktualisierte und erweiterte Auflage. Galileo Computing, Bonn 2011, ISBN 978-3-8362-1671-5.
- Johannes Bauer, Albrecht Liebscher, Klaus Thielking-Riechert: OpenVPN. dpunkt, Heidelberg 2006, ISBN 3-89864-396-4.
- Sven Riedel: OpenVPN – kurz & gut. O’Reilly, Köln 2007, ISBN 978-3-89721-529-0.
- Thomas Zeller: OpenVPN kompakt. bomots, Saarbrücken 2008, ISBN 978-3-939316-51-0.
Weblinks
Einzelnachweise
- ↑ a b Protocol Compatibility. OpenVPN Technologies, abgerufen am 17. Februar 2016.
- ↑ OpenVPN Downloads, openvpn.net
- ↑ The openvpn Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
- ↑ Security Overview. OpenVPN Technologies, abgerufen am 17. Februar 2016.
- ↑ Client GUI
- ↑ Heise – Offizieller OpenVPN-Client für iOS