Verschiedene OSS VPNs

Es gibt verschiedene offene und Open-Source VPN-Protokolle und Tunneltechnologien, die auch unterschiedliche Eigenschaften, Sicherheit und Einsatzzwecke haben. Ich beschreibe hier die Unterschiede zwischen OpenVPN (mit CA und static keys), WireGuard, IPsec, OpenConnect (SSL VPN), PPtP, IPsec über L2TP usw. sowie L2TP, IPIP und GRE (alles Tunnel) halbwegs detailiert um eine grobe Übersicht der Möglichkeiten zu haben.

OpenVPN (mit CA und static keys)

OpenVPN ist ein Open-Source VPN-Protokoll, das TLS/SSL für die Verschlüsselung nutzt. Es kann mit Zertifikaten (CA) und auch mit statischen Schlüsseln (static keys, veraltet) benutzt werden.

  • Verschlüsselung: In der Regel wird AES verwendet, benutzt OpenSSL, damit kann etwa alles was OpenSSL gerade kann.
  • Authentifizierung: Mit CA (Certificate Authority) für öffentliche/privaten Schlüsselpaar-basierte Authentifizierung.
  • Alternativ: Mit statischen Schlüsseln, bei denen beide Seiten denselben Pre-shared Key nutzen. Alt, sollte nicht mehr verwendet werden.
  • Vorteile: Sehr flexibel und sicher, besonders bei Verwendung von Zertifikaten. Kann UDP oder TCP verwenden.
  • Nachteile: Höhere Komplexität in der Einrichtung (insbesondere CA-basierte Konfiguration). Performance kann durch TLS/SSL-Overhead beeinträchtigt werden. Single-threaded (afaik), damit auch noch schlechte Performance, limitiert durch die einzelne CPU. Relativ wählerisch bezüglich der Kombinationen der Versionsnummern von Server/Client.

Zusätzlich sollte erwähnt werden, dass mit DSO (Data Channel Offload) auch eine kernelbasierte und multi-threaded Option für OpenVPN zur Verfügung steht. Diese ist aber relativ neu und hat noch nicht in alle Implementierungen geschafft.

WireGuard

WireGuard ist ein modernes VPN-Protokoll, das auf einer minimalistischen Codebasis basiert und sich auf Geschwindigkeit und Einfachheit konzentriert.

  • Verschlüsselung: Modernste Kryptographie (u.a. ChaCha20, Poly1305).
  • Authentifizierung: Öffentliche/Private Schlüsselpaar-basierte Authentifizierung (ähnlich wie SSH).
  • Vorteile: Sehr hohe Geschwindigkeit und niedriger Overhead. Einfach zu konfigurieren und zu administrieren. Kleiner Codeumfang, was die langfristige Sicherheit erhöht. Eine App existiert für alle mobilen Betriebssysteme.
  • Nachteile: Kein dynamisches IP-Handling wie bei OpenVPN oder IPSec, und auch kein Config-Push. Relativ junges Protokoll, daher weniger weit verbreitet.

Hierbei muss man noch erwähnen, dass es eins der VPNs ist, das einfach funktioniert und sehr einfach eingerichtet werden kann.

IPsec (Standard)

Ein Standardprotokoll für die Sicherung von IP-Paketen auf Netzwerkebene. Kann entweder im Transport-Modus (verschlüsselt nur den Payload) oder im Tunnel-Modus (verschlüsselt das gesamte IP-Paket) betrieben werden. Viele verschiedene Implementationen, die teilweise nicht miteinander kompatibel sind. Ist am meisten verbreitet in Hardware oder Appliances.

  • Verschlüsselung: AES, 3DES, Blowfish, abhängig von den Proposals.
  • Authentifizierung: Pre-shared Keys oder X.509-Zertifikate.
  • Vorteile: Starke Sicherheit und weit verbreitet. Kann direkt in viele Betriebssysteme und Router integriert werden.
  • Nachteile: Komplexe Einrichtung und Fehlerbehebung, braucht oft NAT-T (NAT traversal) und/oder UDP encapsulation. Hoher Overhead bei der Verwendung von IKE und ESP-Protokollen, dadurch geringe MTU und auch oft MTU-Probleme.
  • Implementierung: Openswan, strongSwan, diverse Hardware wie Cisco oder Juniper.

OpenConnect (SSL VPN)

Ursprünglich als offener Client für Cisco’s AnyConnect SSL VPN entwickelt, unterstützt OpenConnect SSL-verschlüsselte VPN-Tunnel.

  • Verschlüsselung: TLS/SSL-Verschlüsselung (typisch TLS 1.2/1.3).
  • Authentifizierung: Zertifikats-basierte oder Benutzername/Passwort-Authentifizierung.
  • Vorteile: Gute Kompatibilität mit Firewalls, da es das HTTPS-Protokoll nutzt (läuft über TCP, teilweise auch über UDP). Einfach zu konfigurieren, da keine komplexe Zertifikatsinfrastruktur notwendig ist. Eigene CA kann aber natürlich verwendet werden, aber auch simple LE-Zertifikate.
  • Nachteile: Nicht so performant wie UDP-basierte VPNs wie WireGuard oder OpenVPN (im UDP-Modus).
  • Implementierung: z.B. OpenConnect VPN Server (ocserv).

PPTP (Point-to-Point Tunneling Protocol)

PPtP Ist ein älteres VPN-Protokoll, das ursprünglich von Microsoft (hauptsächlcih für Windows) entwickelt wurde.

  • Verschlüsselung: MPPE (Microsoft Point-to-Point Encryption), verwendet oft 128-Bit-Verschlüsselung.
  • Authentifizierung: Benutzername/Passwort, oft mit MS-CHAPv2.
  • Vorteile: Sehr einfach zu konfigurieren und weit verbreitet. Unterstützt auf vielen Plattformen.
  • Nachteile: Sehr unsicher, MS-CHAPv2 ist anfällig für Brute-Force-Angriffe. Veraltet und wird heutzutage kaum noch empfohlen.
  • Impementierung: z.B. Windows-nativ in älteren Windows-Versionen oder unter Linux das native PPP.

IPsec über L2TP

Kombiniert L2TP (Layer 2 Tunneling Protocol) mit IPsec, um sowohl Verschlüsselung als auch Tunneling bereitzustellen.

  • Verschlüsselung: IPsec bietet die Verschlüsselung (meist AES), während L2TP als Tunnelprotokoll dient.
  • Authentifizierung: Pre-shared Keys oder Zertifikate für IPsec.
  • Vorteile: Weit verbreitet und in vielen Betriebssystemen nativ unterstützt. IPsec bietet starke Sicherheit.
  • Nachteile: Höherer Overhead aufgrund der Kombination von L2TP und IPsec. Probleme mit NAT (Network Address Translation), was zusätzliche Konfiguration erfordert.

L2TP (Layer 2 Tunneling Protocol)

L2TP ist ein Tunneling-Protokoll, das keine eigene Verschlüsselung bietet, oft wird es mit IPsec kombiniert, um Sicherheit zu gewährleisten.

  • Verschlüsselung: Keine, es wird in der Regel mit IPsec kombiniert.
  • Authentifizierung: Benutzername/Passwort.
  • Vorteile: Weit verbreitet und einfach zu implementieren.
  • Nachteile: Ohne IPsec ist es nicht sicher, da es keine Verschlüsselung bietet. Komplexität durch Kombination mit IPsec.

IPIP (IP in IP)

Ein einfaches Tunneling-Protokoll, das IP-Pakete innerhalb von anderen IP-Paketen kapselt.

  • Verschlüsselung: Keine native Verschlüsselung.
  • Authentifizierung: Keine Authentifizierungsmechanismen, ausser IP-Adressen.
  • Vorteile: Sehr einfacher Tunnelmechanismus. Geringer Overhead.
  • Nachteile: Keine Sicherheit, da keine Verschlüsselung oder Authentifizierung vorhanden ist.

GRE (Generic Routing Encapsulation)

Ein Tunnelprotokoll, das verwendet wird, um Datenpakete zwischen Netzwerken zu tunneln.

  • Verschlüsselung: Keine native Verschlüsselung, kann mit IPsec kombiniert werden.
  • Authentifizierung: Keine Authentifizierungsmechanismen, ausser IP-Adressen.
  • Vorteile: Flexibel und unterstützt das Tunneln verschiedener Protokolle (nicht nur IP). Weit verbreitet in Routing-Technologien.
  • Nachteile: Keine Sicherheit (muss mit anderen Protokollen kombiniert werden, um Verschlüsselung zu gewährleisten).

Verschiedene Open-Source VPNs

Zusammenfassung:

  • OpenVPN: Flexibel, sicher (insbesondere mit CA), etwas komplex in der Einrichtung.
  • WireGuard: Schnell, einfach, modern, aber limitiert in dynamischen Szenarien.
  • IPsec: Auch sehr sicher, aber komplex einzurichten.
  • OpenConnect (SSL VPN): Einfach einzurichten, gut bei Firewalls, aber weniger performant als UDP-basierte Lösungen.
  • PPTP: Veraltet und unsicher, sollte nicht mehr verwendet werden.
  • IPsec über L2TP: Sicherheit durch IPsec, aber mit NAT-Problemen und Overhead.
  • L2TP: Keine eigene Verschlüsselung, oft mit IPsec verwendet.
  • IPIP: Einfaches Tunneling ohne Verschlüsselung.
  • GRE: Flexibles Tunneling ohne Sicherheit, oft mit IPsec kombiniert.

Jedes dieser Protokolle hat seinen, meist speziellen, Einsatzzweck, abhängig von den Sicherheitsanforderungen, der Komplexität und der Performance, die benötigt werden.

Leave a Reply

Your email address will not be published. Required fields are marked *

Filtered by Akismet. (privacy info).