wg-obfuscator – Faire passer WireGuard pour de la visioconf
Si vous faites tourner WireGuard depuis un réseau filtré par DPI (Genre en Russie, Iran, Chine, et autres pays défenseurs de la libertéééé (non)), vous avez sans doute remarqué que les tunnels tombent rapidement. En effet, les signatures des protocoles et notamment du protocole WireGuard sont devenues facilement identifiables. Les filtres modernes de censure sont ainsi capable de les bloquer en quelques secondes. C’est pour ça que
wg-obfuscator
, sorti par Alexey Cluster (le dev derrière
le mod hakchi de la NES Classic Mini
dont je vous parlais en 2017), m’a tapé dans l’œil.
Concrètement, c’est un petit proxy en C qui se glisse entre votre WireGuard et le réseau. Vous le lancez aux deux bouts du tunnel, et lui déguise les paquets pour qu’ils ressemblent à du STUN (le protocole utilisé par les outils de visioconf, rarement bloqué) ou à un flux random pas reconnaissable. WireGuard continue ainsi de tourner sans aucune modification…
C’est vraiment bien fichu son truc et surtout, par rapport à
AmneziaWG
(un célèbre fork de WireGuard souvent cité comme référence en obfuscation), hé bien y’a juste un binaire à rajouter, alors que AmneziaWG, lui, modifie TOUT le protocole. Il faut donc remplacer les client ET le serveur ce qui est bien relou.
Comme wg-obfuscator se contente uniquement de faire le proxy, vous gardez votre setup WireGuard classique et donc ça fonctionnera partout… Sur OpenWrt, MikroTik avec RouterOS 7.4+ sur ARM64/x86_64 via Docker, NixOS, Android, ou un simple Raspberry.
Par contre, l’outil utilise une clé symétrique en texte clair donc c’est pas du chiffrement fort, mais du camouflage.
Côté config, on est sur du fichier INI tout simple :
[main]
source-lport = 13255
target = 10.13.1.100:13255
key = votre_secret
masking = STUN
verbose = 2
Après c’est pas dit dans la doc mais je pense que c’est compatible IPv4 seulement… Donc oubliez l’IPv6 pour le moment. Ensuite il faut les deux extrémités sous votre contrôle, donc oubliez les VPN commerciaux type NordVPN ou ProtonVPN tant qu’ils ne déploient pas wg-obfuscator côté serveur.
Ah et un dernier détail qui vaut le coup d’être noté, c’est le mode two-way avec static-bindings. En fait si vos deux peers ont une IP publique, vous pouvez parfaitement configurer à la main vos mappings NAT pour permettre à chacun d’initier la connexion, sans dépendre d’un serveur central.

Leave a Comment