Guide de configuration de l’obfuscation XOR pour le protocole OpenVPN sur un serveur SoftEther VPN

SoftEther est une solution VPN polyvalente qui prend en charge de multiples protocoles, notamment OpenVPN, WireGuard, L2TP/IPsec, SSTP et bien plus. Dans ce guide, nous nous concentrerons sur la configuration d’OpenVPN avec l’obfuscation XOR sur un serveur SoftEther VPN, en utilisant l’outil vpncmd, qui est actuellement le seul moyen de gérer les paramètres spécifiques à l’XOR.

Note : Ce guide suppose que vous disposez déjà d’un serveur SoftEther VPN fonctionnel en mode autonome (avec au moins un Virtual Hub et un utilisateur) et que vous êtes à l’aise avec les opérations de base de la ligne de commande Linux.

Clause de non-responsabilité : l’obfuscation XOR ne remplace pas le chiffrement fourni par OpenVPN. Elle dissimule plutôt le trafic OpenVPN, le rendant moins facilement détectable par l’inspection approfondie des paquets (DPI) ou d’autres mécanismes de filtrage du trafic.

Qu’est-ce que l’obfuscation XOR ?

L’obfuscation XOR applique une opération binaire XOR aux paquets réseau à l’aide d’un masque ou d’une clé prédéfinie. Bien que cela n’améliore pas la sécurité de la même manière qu’un chiffrement cryptographique, cela permet de masquer les motifs caractéristiques du trafic OpenVPN face aux systèmes de DPI. Si votre réseau local ou votre FAI bloque ou limite activement les connexions VPN standard, l’obfuscation XOR peut vous aider à contourner ces restrictions.

En d’autres termes, l’obfuscation XOR agit comme un déguisement simple pour vos données. Un peu comme un code basique qui réorganise certaines parties d’un message, elle modifie les données de manière réversible grâce à une clé fixe. Ce procédé ne sécurise pas les données comme le ferait un chiffrement robuste, mais il masque les motifs inhérents que les systèmes de surveillance recherchent, rendant le trafic moins identifiable comme un trafic VPN standard.

Pour utiliser l’obfuscation XOR avec OpenVPN, le serveur et le client OpenVPN doivent tous deux être configurés (et parfois patchés) pour la prendre en charge. Sous macOS, par exemple, Tunnelblick peut être utilisé car il gère l’obfuscation XOR nativement.

Étape 1 : Générer un masque d’obfuscation

Le masque d’obfuscation XOR (parfois appelé clé ou mot de passe) est une chaîne utilisée pour réaliser l’opération binaire XOR sur vos paquets VPN. Il peut s’agir d’une chaîne aléatoire ou même basée sur des mots, mais pour une meilleure dissimulation, envisagez d’utiliser une chaîne longue et complexe. Vous pouvez utiliser n’importe quel générateur de jetons pour créer une clé longue et aléatoire.

  • Exemple : 1e8aee72s63f...y2ehdkfa04cb1
  • Conservez cette valeur secrète et ne la réutilisez pas dans plusieurs contextes si la sécurité ou la confidentialité sont en jeu.

Important : Le masque d’obfuscation XOR doit être identique sur le serveur SoftEther VPN et sur tout client OpenVPN qui se connecte en utilisant l’obfuscation XOR.

Étape 2 : Activer et configurer OpenVPN XOR dans SoftEther

Avant de configurer l’obfuscation XOR pour OpenVPN, assurez-vous d’avoir les droits d’administrateur sur le serveur VPN. Commencez par lancer l’outil vpncmd, choisissez l’option #1, puis connectez-vous en tant qu’administrateur :

./vpncmd

Une fois connecté, utilisez ProtoOptionsSet pour configurer les paramètres du protocole OpenVPN. Ci-dessous se trouve un ensemble de commandes permettant d’activer l’obfuscation XOR, de définir le masque d’obfuscation et de configurer les paramètres OpenVPN de base. Exécutez ces commandes une par une :


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

# Remplacez 'YourObfuscationMask' par votre chaîne aléatoire générée
ProtoOptionsSet openvpn /NAME=ObfuscationMask /VALUE="YourObfuscationMask"

# Vérifiez si votre serveur a déjà des écouteurs TCP que vous pouvez utiliser
ListenerList

# Si la liste est vide, veillez à créer un écouteur TCP sur un port choisi (ex. 443)
ListenerCreate 443

# Ou s’il existe déjà, assurez-vous qu’il est activé et affiche "Listening" :
ListenerEnable 443

Étape 3 : Créer une configuration OpenVPN avec obfuscation XOR

Maintenant, il est temps de créer une configuration OpenVPN pour votre application cliente. Ci-dessous se trouve un exemple de fichier de configuration client OpenVPN. Copiez-le dans votre environnement client (par exemple en tant que client.ovpn) et modifiez-le selon vos besoins.

Important : Assurez-vous que votre logiciel client (par ex. Tunnelblick) prend en charge la directive scramble obfuscate et, plus généralement, l’obfuscation XOR. Ci-dessous, quelques exemples de clients OpenVPN compatibles XOR :

Voici un exemple de configuration OpenVPN client utilisant l’obfuscation XOR pour se connecter à votre serveur SoftEther :


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

# La ligne cruciale qui active l’obfuscation XOR côté client.
# Le masque doit correspondre à celui que vous avez configuré
# sur le serveur SoftEther via la commande ProtoOptionsSet.
scramble obfuscate 1e8aee72s63f49fjf910skj14d3d0defd40f91y2ehdkfa04cb1

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

Explication des lignes clés :

  • dev tun, proto tcp, remote : Directives OpenVPN standard. « remote 111.112.113.114 443 » indique au client de se connecter à l’adresse IP du serveur SoftEther sur le port TCP 443 (exemple). Remplacez « 111.112.113.114 » par l’IP de votre propre serveur.
  • cipher AES-256-GCM, auth SHA384 : Garantit un chiffrement et une authentification robustes. Ces paramètres doivent correspondre à ceux du serveur SoftEther.
  • scramble obfuscate YourObfuscationMask : La ligne cruciale qui active l’obfuscation XOR côté client. Le masque doit être identique à celui configuré dans SoftEther.
  • <ca> … </ca> : Intègre le certificat CA du serveur pour valider ce dernier.

Important : Assurez-vous que votre configuration VPN correspond précisément aux réglages de votre serveur. En cas de doute, exécutez la commande suivante pour générer une configuration OpenVPN par défaut (que vous pouvez ensuite modifier afin d’inclure votre directive scramble obfuscate) :

OpenVpnMakeConfig

Vous pouvez insérer votre ligne scramble obfuscate dans le fichier généré pour activer l’obfuscation XOR.

Tout est prêt !

En activant l’obfuscation XOR sur votre serveur SoftEther VPN et en configurant la directive scramble obfuscate côté client OpenVPN, vous pouvez camoufler votre trafic OpenVPN. Cela peut aider à contourner les blocages ou les limitations basés sur la DPI. Souvenez-vous que l’obfuscation XOR ne remplace pas un chiffrement robuste ; elle ne fait que cacher la signature caractéristique des paquets OpenVPN.

Si vous rencontrez des problèmes de connectivité, vérifiez que :

  • Votre serveur SoftEther est en mode autonome.
  • Vous utilisez un client OpenVPN patché ou dûment configuré pour l’obfuscation XOR (par ex. Tunnelblick avec des patches Scramble).
  • Le masque d’obfuscation sur le client correspond exactement à la valeur ObfuscationMask sur le serveur.
  • Votre pare-feu autorise le trafic sur les ports configurés (par ex. TCP 443 ou tout autre port TCP défini).

Une fois tous les paramètres correctement définis, votre tunnel OpenVPN devrait se connecter avec succès en utilisant l’obfuscation XOR, vous aidant ainsi à contourner les mécanismes de filtrage basiques.

FAQ

L’obfuscation XOR applique une opération binaire XOR au trafic VPN en utilisant un masque secret, ce qui masque les motifs caractéristiques d’OpenVPN pour les systèmes DPI.
Non. Elle ne fait que déguiser le trafic pour contourner la DPI, mais ne remplace pas la sécurité assurée par le chiffrement d’OpenVPN.
Oui. Le client doit prendre en charge l’option scramble obfuscate. Tunnelblick sur macOS, openvpn-xor sur Linux et d’autres builds similaires intègrent cette fonctionnalité.
Utilisez un générateur de jetons ou tout outil générant des chaînes aléatoires pour créer un masque long et unique. Il doit être identique sur le serveur et le client.
Oui. L’obfuscation XOR ne fonctionne que si le masque (ObfuscationMask) est le même des deux côtés.
Connectez-vous à vpncmd et exécutez la commande ListenerCreate . Si l’écouteur existe déjà, utilisez ListenerEnable pour l’activer.
AES-256-GCM avec authentification SHA384 sont courants. Assurez-vous de faire correspondre les paramètres cipher et auth sur le serveur et le client.
Oui. XOR dissimule les signatures habituelles d’OpenVPN, ce qui rend le trafic plus difficile à détecter ou à bloquer par la DPI.