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.
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.
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 :
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 :
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.