Openvpn

Openvpn
OpenVPN
Entwickler: OpenVPN Solutions LLC
Aktuelle Version: 2.0.9
(1. Oktober 2006)
Aktuelle Vorabversion: 2.1_rc15
(19. November 2008)
Betriebssystem: Windows 2000/XP/Vista und diverse Unix-Derivate (Linux, BSD, Mac OS X, Solaris)
Kategorie: Virtual Private Network
Lizenz: GPL
www.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 und Windows 2000/XP. Unterstützung für Microsoft Windows Vista liefern die Beta-Versionen ab 2.1_rc4, welche am 25. April 2007 veröffentlicht wurde[1].

Inhaltsverzeichnis

Hintergrund

Oftmals besteht der Bedarf, eine sichere, von Dritten nicht lesbare Kommunikation über ein unsicheres Netzwerk durchzuführen. Ein solches unsicheres Netz ist etwa das Internet oder auch ein lokales nicht verschlüsseltes Wireless LAN. Dabei geht es um zwei Aspekte: eine hinreichende Verschlüsselung der Kommunikationsinhalte und eine 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, Datenkommunikation von Dritthersteller-Software einzubinden, auf deren Sicherheitsfunktionen häufig kein Einfluss besteht.

Eine solche, zentral bereitgestellte Sicherung ist ein Virtual Private Network (VPN) und 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 NAT durchgeführt, so müssen diese Dienste so konfiguriert werden, dass ein in der Konfiguration von OpenVPN zu vergebender UDP- oder TCP-Port (zumeist ab 5000 aufwärts, Standard in OpenVPN 2.0 ist 1194/UDP) durchgelassen wird (Input, Forward und Output).

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.

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 ("tap-Device") über eine Netzwerkbrücke mit dem tatsächlichen Netzwerk verbunden werden.

Bridging ist etwas ineffizienter als Routing (schlechter skalierbar) und ist anfällig für IP-Adresskonflikte. Außerdem ist eine Beschränkung des Clientzugriffs schwieriger zu bewerkstelligen als beim Routing.

Authentifikation

Zur Authentifikation stellt OpenVPN mehrere Methoden zur Verfügung:

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.

Username/Password

Über einen individuellen Benutzernamen und ein Passwort wird der Zugang zu dem Netz beschränkt. Dies ist allerdings anfälliger für Man-in-the-middle-Angriffe.

Zertifikatsbasiert

Bei der Anwendung einer zertifikatbasierten Authentifizierung über das TLS-Protokoll werden private/ö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 Session-Keys 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 Session-Key verschlüsselt werden. Der Server bestätigt dies, der Tunnel ist aufgebaut. Nach einer gewissen Zeitspanne ersetzt OpenVPN den Session-Key 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 zugriffen werden kann.

Frontends

Für OpenVPN gibt es diverse grafische Frontends. So existiert z. B. OpenVPN GUI for Windows, Tunnelblick für Mac OS X, OpenVPN-Admin, ein in Mono geschriebenes Frontend, das auf der Sprache C# basiert, KVpnc, eine in das K Desktop Environment eingebundene Applikation sowie eine Einbindung in NetworkManager (Gnome und K Desktop Environment).

Microsoft Windows

Mac OS X

GNU/Linux

Literatur

  • Johannes Bauer, Albrecht Liebscher, Klaus Thielking-Riechert: OpenVPN. dpunkt, Heidelberg 2006, ISBN 978-3-89864-396-2. 
  • 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. 
  • Dirk Becker: OpenVPN – Das Praxisbuch. Galileo Computing, Bonn 2008, ISBN 978-3-8362-1197-0. 

Einzelnachweise

  1. Changelog der Beta-Versionen

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • OpenVPN — ‎ Original author(s) James Yonan Developer(s) OpenVPN project / OpenVPN Technologies, Inc. Initial release 1.1.0 / April 10, 2002 …   Wikipedia

  • OpenVPN — Entwickler OpenVPN Technologies, Inc. Aktuelle Version 2.2.1 (6. Juli 2011) Betriebssystem Windows …   Deutsch Wikipedia

  • OpenVPN — es una solución de conectividad basada en software: SSL (Secure Sockets Layer) VPN Virtual Private Network (red virtual privada), OpenVPN ofrece conectividad punto a punto con validación jerárquica de usuarios y host conectados remotamente,… …   Wikipedia Español

  • OpenVPN — Développeur James Yonan Dernière version 2.2.1 (6 juillet 2011) [ …   Wikipédia en Français

  • OpenVPN — es una solución de conectividad basada en software: SSL (Secure Sockets Layer) VPN Virtal Private Netword (red virtual privada), OpenVPN ofrece conectividad punto a punto con validación, jerárquica de usuarios y host conectados remotamente,… …   Enciclopedia Universal

  • OpenVPN — Для улучшения этой статьи желательно?: Проставив сноски, внести более точные указания на источники. Переработать оформление в соответствии с правилами написания статей …   Википедия

  • OpenVPN ALS — is a web based SSL VPN server written in Java. It has a browser based AJAX UI which allows easy access to intranet services. OpenVPN ALS is a direct descendant of Adito, which was a fork of SSL Explorer.[1] References ^ OpenVPN ALS Project… …   Wikipedia

  • Tunnelblick (Software) — OpenVPN Entwickler: OpenVPN Solutions LLC Aktuelle Version: 2.0.9 (1. Oktober 2006) Aktuelle Vorabversion: 2.1 rc15 (19. November 2008) Betriebssystem: Windows 2000/XP/Vista und diverse …   Deutsch Wikipedia

  • Virtual Private Network — VPN (англ. Virtual Private Network виртуальная частная сеть) логическая сеть, создаваемая поверх другой сети, например Интернет. Несмотря на то, что коммуникации осуществляются по публичным сетям с использованием небезопасных протоколов, за счёт… …   Википедия

  • Виртуальная частная сеть — VPN (англ. Virtual Private Network виртуальная частная сеть) логическая сеть, создаваемая поверх другой сети, например Интернет. Несмотря на то, что коммуникации осуществляются по публичным сетям с использованием небезопасных протоколов, за счёт… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”