OpenVPN Grundlagen

Aus Thomas-Krenn-Wiki
(Weitergeleitet von OpenVPN)
Wechseln zu: Navigation, Suche

OpenVPN ist eine freie Software zum Einrichten eines Virtual Private Networks (VPN) über verschlüsselte TLS/SSL-Verbindungen. Die Verschlüsselung erfolgt dabei durch OpenSSL. Als Transportprotokoll kann wahlweise UDP oder TCP verwendet werden, als Authentifizierungsmethoden bietet OpenVPN aktuell das Pre-shared Key Verfahren oder Zertifikate an.[1] OpenVPN ist unter der GNU GPL (General Public License) lizenziert.[2]

Eigenschaften

OpenVPN bietet folgende Eigenschaften:

  • Tunneln eines beliebigen Subnetzwerkes oder virtuellen Ethernet Adapters über einen einzelnen TCP oder UDP Port.
  • Konfiguration einer skalierbaren, load-balacing VPN Serverfarm für tausende Clientverbindungen.
  • OpenSSL kann auf sämtliche Verschlüsselungs-, Authentifizierungs- und Zertifizierungsfeatures der OpenSSL Bibliothek zurückgreifen.
  • Die Authentifizierung erfolgt über einen konventionellen statischen Schlüssel (Pre-shared Key) oder einer zertifikatsbasierten Public-Key Verschlüsselung.
  • Als Betriebsarten bietet OpenVPN Bridging (tap) und Routing (tun) an.
  • Netzwerktunnel über dynamische Endpunkte (DHCP oder Dial-In), über verbindungs- und zustandsorientierte Firewalls oder NAT-Netzwerken.
  • Steuerung mittels GUI bei Windows und OS X Clients.

Vorteile

Eine Kommunikation über OpenVPN bietet zahlreich Vorteile:[3]

  • Unterstützt eine Vielzahl an Betriebssystemen (z.B.: Linux, Solaris, div. BSD, OS X und Windows sowie iOS und Android)[4]
  • Stabilität
  • Skalierbarkeit (tausende Clients)
  • Relativ einfache Installation
  • Dynamische IP-Adressen und NAT
  • OpenSSL Sicherheitsmodell
  • SSL/TLS und X509 PKI (Public Key Infrastructure) zur Session Authentication
  • IPsec ESP Protokoll für sicheren Tunneltransport über UDP[5]

Authentifizierung

Wie bereits in der Einleitung erwähnt, kann die Authentifizierung über zwei unterschiedliche Arten erfolgen. Zum einen über einen statischen Schlüssel (Pre-shared Key) oder über Zertifikate.

Pre-shared Key

Die Authentifizierung mittels eines Pre-shared Keys (PSK) stellt ein symmetrisches Verfahren dar. Der Schlüssel wird am OpenVPN Server erstellt und an den Client verteilt. Diese Verbindung wird zwischen einem Server und einem Client aufgebaut. Die Daten werden bei der Kommunikation der Clients mit dem Server mittels des PSK ver- und entschlüsselt. Das Verfahren ist dadurch 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.[6][7]

Informationen zur Einrichtung finden Sie im Artikel OpenVPN mit Pre-shared Key.

Zertifikatsbasiert

Die zertifikatsbasierte Authentifizierung über das TLS-Protokoll stellt aktuell das sicherste Verfahren dar. Es beruht auf privaten und öffentlichen Schlüsselpaaren bzw. X.509-Zertifikate. Der OpenVPN Server und die Clients besitzen je ein eigenes öffentliches und privates Zertifikat. OpenVPN liefert mit dem Paket easy-rsa eine Skriptsammlung zur bequemen Erstellung der nötigen Zertifikate. Der Nachteil im Gegensatz zum Pre-shared Key-Verfahren liegt in der höheren Komplexität und Konfigurationsaufwand.[8]

Kommunikation

Ein VPN mit OpenVPN kann Clients mit einem Server verbinden (Roadwarrior) oder auch eine Site-to-Site Verbindung zwischen zwei oder mehreren Standorten ermöglichen. Der Router muss entweder über eine feste IP-Adresse verfügen, oder mit Hilfe eines dynamischen DNS-Eintrages erreichbar sein. Standardmäßig wird ein OpenVPN über das zustandslose UDP-Protokoll mit dem Standardport 1194 konfiguriert. Es kann jedoch auch über das TCP Protokoll aktiviert werden. Hier bietet sich der HTTPS-Port 443 an, da er in den meisten Netzwerken geöffnet ist und UDP Ports gesperrt sein könnten.

Netzwerkmodi

OpenVPN bietet aktuell zwei verschiedene Netzwerkmodi an:[9][10][11]

  • Bridging (TAP-Device)
  • Routing (TUN-Device)

Der Routing-Modus (TUN-Device) wird als effizientere und modernere Methode empfohlen.

Bridging (TAP-Device)

Bei dem Bridging-Modus wird ein vollständiges Tunneln von Ethernet-Frames (Layer2) vorgenommen. Hier ist der Einsatz von alternativen Protokollen wie IPX oder auch das Senden von Wake-On-LAN Paketen möglich. Der Client wird transparent in das Einwahlnetz eingewählt und erhält eine IP-Adresse des dortigen Subnetzes. Somit werden auch Broadcasts weitergeleitet, um z.B. die Namensauflösung des SMB-Protokolls zu ermöglichen.

Bridging (TAP-Device)
Vorteile Nachteile
  • Verhält sich wie ein echter Netzwerkadapter
  • Beliebige Netzwerkprotokolle
  • Client transparent im Zielnetz
  • Broadcasts und Wake-On-LAN
  • Ineffizient
  • Hoher Broadcast-Overhead am VPN-Tunnel
  • Schlechte Skalierbarkeit

Routing (TUN-Device)

Der Routing-Modus stellt einen verschlüsselten Tunnel her, in dem ausschließlich IP-Pakete (Layer3) geleitet werden. Es wird jeder Gegenstelle eine virtuelle IP-Adresse eines fiktiven Subnetzes zugewiesen. Ein Zugriff auf das dahinter liegende Netzwerk ist standardmäßig nicht möglich, kann aber mittels IP-Forwarding und Einträgen in der Routingtabelle der Firewall ermöglicht werden.

Routing (TUN-Device)
Vorteile Nachteile
  • Weniger Traffic-Overhead
  • Geringere Bandbreitenbelastung, weil kein Ethernet-Layer
  • Gute Skalierbarkeit
  • Nur IP-Pakete
  • Keine Broadcasts

Einzelnachweise

  1. M 5.148 Sichere Anbindung eines externen Netzes mit OpenVPN (bsi.bund.de)
  2. OpenVPN (openvpn.net)
  3. OpenVPN (wiki.ubuntuusers.de)
  4. Why OpenVPN? (openvpn.net)
  5. IPsec Encapsulating Security Payload (de.wikipedia.org)
  6. Static Key Mini-HOWTO (openvpn.net)
  7. OpenVPN Pre-shared Key (de.wikipedia.org)
  8. OpenVPN Zertifikatsbasiert (de.wikipedia.org)
  9. Determining whether to use a routed or bridged VPN (openvpn.net)
  10. Vergleich TUN/TAP (wiki.openvpn.eu)
  11. Bridging vs. Routing (community.openvpn.net)


Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier, Abteilung Communications / Knowledge Transfer bei Thomas-Krenn, absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich hier vor allem um das TKwiki. Er ist ein begeisterungsfähiger, technisch interessierter Linux und Mac Nutzer, fährt im Winter gerne Ski und geht im Sommer gern ins Schwimmbad.


Das könnte Sie auch interessieren

Apache und OpenSSL für Forward Secrecy konfigurieren
Klonen einer Windows-Installation mit Clonezilla
Linux I/O Latenz messen mit ioping