Dieser Beitrag wurde am 23.April 2017 auf die OpenVPN-Version 2.4 aktualisiert, insbesondere Kapitel 4.1 bis 4.3. |
OpenVPN ist ein beliebtes Tool, um verschlüsselte Netzwerkverbindungen herstellen zu können. Dieser BLOG Beitrag beschäftigt sich mit der Härtung des OpenVPN Servers und beschreibt alle Konfigurationsoptionen, die Auswirkungen auf die Sicherheit der OpenVPN Verbindung haben.
Das Verständnis dieses Artikels setzt voraus, dass die grundlegende Arbeitsweise von OpenVPN bekannt ist. Einige nachfolgend beschriebenen Optionen setzen mindestens die OpenVPN Version 2.3 voraus, ein Großteil der Konfigurationsoptionen funktioniert bereits ab OpenVPN Version 2.0.x.
Nicht näher beschrieben werden Optionen, die ausschließlich den "Static key mode" betreffen. Der Fokus liegt auf dem gebräuchlicheren, zertifikatebasiertem "TLS-negotiated key mode". Ausgelassen wurden ebenfalls pkcs11/ pkcs12 Optionen.
1 Allgemeine OpenVPN Grundlagen
1.1 Basics: Control- vs. Data-Channel
OpenVPN stellt zwei unabhängige Datenverbindungen her: Einen Kontroll- und einen Datenkanal.
Der Kontrollkanal hat unter anderem folgende Aufgaben:
- den SSL/TLS Handshake (z.B. Session Start, Schlüsselaustausch, Authentifikation, Cipher-Suite Vereinbarung) durchführen,
- einige Aufräumarbeiten in der finalen Phase der Verbindung zu realisieren und
- bei der Nutzung von UDP die "Nachteile" der UDP Transport Layer Unzuverlässigkeit durch Einführung von Time-Out, Packet Acknowledgement und Transmission Mechanismen auszugleichen.