Leitfaden zur Konfiguration der XOR-Obfuskation für das OpenVPN-Protokoll auf einem SoftEther VPN-Server

SoftEther ist eine vielseitige VPN-Lösung, die mehrere Protokolle unterstützt, darunter OpenVPN, WireGuard, L2TP/IPsec, SSTP und mehr. In diesem Leitfaden konzentrieren wir uns darauf, OpenVPN mit XOR-Obfuskation auf einem SoftEther VPN-Server einzurichten, wobei wir das Tool vpncmd verwenden. Dies ist derzeit die einzige Möglichkeit, auf XOR-spezifische Einstellungen zuzugreifen.

Hinweis: Dieser Leitfaden setzt voraus, dass Sie bereits einen funktionierenden SoftEther VPN-Server im Standalone-Modus eingerichtet haben (mit mindestens einem virtuellen Hub und einem Benutzer) und mit grundlegenden Linux-Kommandozeilenoperationen vertraut sind.

Haftungsausschluss: XOR-Obfuskation ersetzt nicht die Verschlüsselung, die OpenVPN bereitstellt. Stattdessen verschleiert (obfuskiert) sie den OpenVPN-Datenverkehr, damit er von Deep Packet Inspection (DPI) oder anderen Traffic-Filtermechanismen weniger leicht erkannt wird.

Was ist XOR-Obfuskation?

XOR-Obfuskation wendet eine bitweise XOR-Operation auf Netzwerkkpakete an, basierend auf einer vordefinierten Maske oder einem Schlüssel. Zwar erhöht sie die Sicherheit nicht im gleichen Ausmaß wie eine echte kryptografische Verschlüsselung, aber sie hilft dabei, die typischen Erkennungsmuster von OpenVPN-Datenverkehr vor DPI-Systemen zu verbergen. Wenn Ihr lokales Netzwerk oder Ihr ISP aktiv Standard-VPN-Verbindungen blockiert oder drosselt, kann Ihnen die XOR-Obfuskation dabei helfen, diese Beschränkungen zu umgehen.

Anders ausgedrückt fungiert die XOR-Obfuskation als eine einfache Tarnung für Ihre Daten. Ähnlich wie ein Grundcode, der Teile einer Nachricht neu anordnet, verändert sie die Daten in einer rückgängig zu machenden Weise mithilfe eines festen Schlüssels. Dieser Vorgang sichert die Daten nicht wie eine starke Verschlüsselung, aber er maskiert die typischen Muster, nach denen Überwachungssysteme suchen, und lässt den Datenverkehr weniger wie typischen VPN-Verkehr aussehen.

Um XOR-Obfuskation mit OpenVPN zu verwenden, müssen sowohl der Server als auch der OpenVPN-Client konfiguriert (und in manchen Fällen gepatcht) sein, damit sie diese Funktion unterstützen. Unter macOS beispielsweise kann Tunnelblick verwendet werden, da es XOR-Obfuskation von Haus aus unterstützt.

Schritt 1: Erstellen einer Obfuskationsmaske

Die XOR-Obfuskationsmaske (manchmal auch Schlüssel oder Passwort genannt) ist eine Zeichenkette, mit der die bitweise XOR-Operation auf Ihre VPN-Pakete angewendet wird. Es kann sich dabei um eine beliebige zufällige oder sogar wortbasierte Zeichenkette handeln, aber für eine bessere Verschleierung ist eine lange und komplexe Zufallszeichenkette zu empfehlen. Sie können beispielsweise einen Token-Generator verwenden, um einen langen und zufälligen Schlüssel zu erstellen.

  • Beispiel: 1e8aee72s63f...y2ehdkfa04cb1
  • Bewahren Sie diesen Wert vertraulich auf und verwenden Sie ihn nicht mehrfach in unterschiedlichen Kontexten, wenn Sicherheit oder Privatsphäre ein Anliegen sind.

Wichtig: Die XOR-Obfuskationsmaske muss sowohl auf dem SoftEther VPN-Server als auch auf jedem OpenVPN-Client, der diese Funktion nutzen soll, übereinstimmen.

Schritt 2: Aktivieren und Konfigurieren der OpenVPN-XOR-Einstellungen in SoftEther

Bevor Sie die XOR-Obfuskation für OpenVPN einrichten, stellen Sie sicher, dass Sie Administratorrechte auf dem VPN-Server besitzen. Starten Sie zunächst das Dienstprogramm vpncmd, wählen Sie Option #1 und melden Sie sich als Administrator an:

./vpncmd

Nach der Anmeldung verwenden Sie ProtoOptionsSet, um die Parameter für das OpenVPN-Protokoll zu konfigurieren. Unten finden Sie eine Reihe von Befehlen, um die XOR-Obfuskation zu aktivieren, die Obfuskationsmaske festzulegen und grundlegende OpenVPN-Parameter einzustellen. Führen Sie die folgenden Befehle nacheinander aus:


ProtoOptionsSet openvpn /NAME=Enabled /VALUE=true
ProtoOptionsSet openvpn /NAME=Obfuscation /VALUE=true

# Ersetzen Sie 'YourObfuscationMask' durch Ihren generierten Zufallsstring
ProtoOptionsSet openvpn /NAME=ObfuscationMask /VALUE="YourObfuscationMask"

# Prüfen Sie, ob Ihr Server bereits TCP-Listener nutzt, die eine Verbindung ermöglichen
ListenerList

# Falls die Liste leer ist, erstellen Sie einen TCP-Listener auf einem gewünschten Port (z.B. 443)
ListenerCreate 443

# Oder falls bereits einer existiert, stellen Sie sicher, dass er aktiviert ist und den Status "Listening" hat:
ListenerEnable 443

Schritt 3: Erstellen einer XOR-obfuskierten OpenVPN-Client-Konfiguration

Nun ist es an der Zeit, eine OpenVPN-Konfiguration für Ihre Client-Anwendung zu erstellen. Im Folgenden finden Sie eine Beispiel-Clientkonfiguration für OpenVPN. Kopieren Sie diese in Ihre Client-Umgebung (z.B. als client.ovpn) und passen Sie sie an Ihre Bedürfnisse an.

Wichtig: Stellen Sie sicher, dass Ihre Client-Software (z.B. Tunnelblick) die Direktive scramble obfuscate sowie die XOR-Obfuskation unterstützt. Nachfolgend einige Beispiele für XOR-kompatible OpenVPN-Clients:

Eine Beispielkonfiguration für OpenVPN, die XOR-Obfuskation zur Verbindung mit Ihrem SoftEther VPN-Server nutzt, könnte folgendermaßen aussehen:


dev tun
proto tcp
remote 111.112.113.114 443
cipher AES-256-GCM
auth SHA384
nobind
client
verb 3
auth-user-pass

# Die entscheidende Zeile, die XOR-basierte Obfuskation auf Client-Seite aktiviert.
# Die Maske muss derjenigen entsprechen, die Sie auf dem SoftEther-Server 
# mit dem Befehl ProtoOptionsSet konfiguriert haben.
scramble obfuscate 1e8aee72s63f49fjf910skj14d3d0defd40f91y2ehdkfa04cb1

<ca>
-----BEGIN CERTIFICATE-----
EludGVybmV0IFNlY3VyaXR5IFJlc2Vh...........
CgdNbOhdjsnvzqvHu7Ur/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
</ca>

Erläuterung wichtiger Zeilen:

  • dev tun, proto tcp, remote: Standard-OpenVPN-Direktiven. „remote 111.112.113.114 443“ gibt an, dass sich der Client mit der IP-Adresse des SoftEther-Servers über TCP-Port 443 verbinden soll (Beispiel). Verwenden Sie hier Ihre eigene Server-IP anstelle von „111.112.113.114“.
  • cipher AES-256-GCM, auth SHA384: Gewährleistet eine starke Verschlüsselung und Authentifizierung. Diese Parameter müssen zu den Einstellungen auf Ihrem SoftEther-Server passen.
  • scramble obfuscate YourObfuscationMask: Die entscheidende Zeile, die XOR-basierte Obfuskation auf dem Client aktiviert. Die Maske muss mit der auf dem SoftEther-Server konfigurierten übereinstimmen.
  • <ca> … </ca>: Bindet das CA-Zertifikat des Servers ein, um diesen zu validieren.

Wichtig: Achten Sie darauf, dass Ihre VPN-Konfiguration exakt zu den Servereinstellungen passt. Falls Sie unsicher sind, können Sie mit dem folgenden Befehl eine Standard-OpenVPN-Konfiguration generieren (die Sie dann um Ihre scramble obfuscate-Zeile ergänzen können):

OpenVpnMakeConfig

Fügen Sie die Zeile scramble obfuscate in die generierte Datei ein, um XOR-Obfuskation zu aktivieren.

Fertig!

Durch das Aktivieren der XOR-Obfuskation auf Ihrem SoftEther VPN-Server und das entsprechende Einfügen der Anweisung scramble obfuscate in den OpenVPN-Client können Sie den OpenVPN-Datenverkehr tarnen. Dies kann helfen, eine Blockierung oder Drosselung durch DPI-basierte Filtermechanismen zu umgehen. Beachten Sie, dass XOR-Obfuskation keinen Ersatz für starke Verschlüsselung darstellt; sie verdeckt lediglich die charakteristischen Merkmale von OpenVPN-Paketen.

Sollten Sie auf Verbindungsprobleme stoßen, achten Sie darauf, dass:

  • Ihr SoftEther-Server sich im Standalone-Modus befindet.
  • Sie einen gepatchten oder entsprechend konfigurierten OpenVPN-Client verwenden, der XOR-Obfuskation unterstützt (z.B. Tunnelblick mit Scramble-Patches).
  • Die konfigurierte Obfuskationsmaske auf dem Client exakt mit dem Wert ObfuscationMask auf dem Server übereinstimmt.
  • Ihre Firewall den Datenverkehr auf den angegebenen Ports zulässt (z.B. TCP 443 oder einen anderen konfigurierten TCP-Listener-Port).

Wenn alle Parameter korrekt eingestellt sind, sollte Ihr OpenVPN-Tunnel erfolgreich mithilfe der XOR-Obfuskation verbunden sein und so einfache Traffic-Filtermechanismen umgehen können.

FAQ

XOR-Obfuskation wendet eine bitweise XOR-Operation auf den VPN-Datenverkehr an, wobei eine geheime Maske verwendet wird. Dadurch werden typische Muster von OpenVPN für DPI-Systeme verborgen.
Nein. Sie tarnt den Datenverkehr, um DPI zu umgehen, ersetzt aber nicht die Sicherheit durch OpenVPN-Verschlüsselung.
Ja. Der Client muss die Option „scramble obfuscate“ unterstützen. Tunnelblick auf macOS, openvpn-xor auf Linux und andere ähnliche Builds bringen XOR-Unterstützung mit.
Verwenden Sie einen Token-Generator oder ein beliebiges Tool für zufällige Zeichenketten, um eine lange, eindeutige Maske zu erzeugen. Diese muss sowohl auf dem Server als auch beim Client identisch sein.
Ja. XOR-Obfuskation funktioniert nur, wenn die ObfuscationMask auf beiden Seiten übereinstimmt.
Melden Sie sich bei vpncmd an und führen Sie „ListenerCreate “ aus. Wenn bereits ein Listener existiert, verwenden Sie „ListenerEnable “, um ihn zu aktivieren.
AES-256-GCM mit SHA384-Authentifizierung ist gängig. Die Cipher- und Auth-Einstellungen sollten auf Server und Client übereinstimmen.
Ja. XOR verschleiert die typischen Signaturen von OpenVPN, sodass DPI-Systeme den Datenverkehr schwieriger erkennen oder blockieren können.
Zu den OpenVPN-Client-Apps mit XOR-Unterstützung gehören: Tunnelblick für macOS, openvpn-windows-xor für Windows, openvpn-xor für Linux, VPN Client Pro für Android und Passepartout für iOS.