VPN Wireguard sur Samsung Galaxy S8 Android 8 Oreo (rooté)
Update 27/02, j’ai trouvé un autre kernel et une autre ROM compatible. Je pense cependant que ce kernel est compatible avec 90% des ROM basées sur Oreo (dév/stables)
J’utilise le VPN Wireguard depuis quelques mois maintenant à la place ou en alternance avec mes OpenVPN. Wireguard est le VPN “à la mode” même si pas encore totalement finalisé (pas de client Windows par exemple). Pourquoi à la mode ? Pas pour faire beau mais parce qu’il est plus léger qu’OpenVPN, plus simple à mettre en place (enfin pas plus compliqué du moins), plus rapide (constaté notamment avec ma super ligne ADSL 2.4Mbps… où le moindre octet de vitesse compte !) et plus sécurisé. J’entre pas dans la technique, mais vous pouvez lire cette page concernant son protocole, sa vérification (via le process Tamarin) et des comparaisons de vitesse vs OpenVPN.
Si ce VPN n’est pas encore à adopter en environnement professionnel il est en tous cas en l’état tout à fait viable pour “ses affaires personnelles” :)
Le serveur Wireguard se met sur un serveur dédié ou virtuel (VPS). Attention, du fait que c’est un module du noyau (kernel) de votre machine, tous les kernels ne sont pas compatibles. Si sur dédié vous n’aurez sans doute aucun problème il n’en sera pas de même sur VPS : aucun VPS basé sur OpenVZ (ProxMox < 3.x par exemple) ne sera compatible.
Pour l’installer je vous recommande d’utiliser Streisand. Pour le côté fun, ou pas (mais c’est intéressant), vous pouvez aussi l’installer une fois à la main.
L’installer à la main (Linux, OSX and co). Utiliser Streisand (Linux, OSX and co) / Docker
Une fois votre serveur installé vous obtenez ou ou des fichiers de configuration, comme pour OpenVPN
# "proud-fashion" - Streisand WireGuard Client Profile [Interface] Address = 10.192.122.2/32 # The use of DNS below effectively expands to: # PostUp = echo nameserver 10.192.122.1 | resolvconf -a tun.%i -m 0 -x # PostDown = resolvconf -d tun.%i # If the use of resolvconf is not desirable, simply remove the DNS line # and use a variant of the PostUp/PostDown lines above. # The IP address of the DNS server that is available via the encrypted # WireGuard interface is 10.192.122.1. DNS = 10.192.122.1 PrivateKey = CF/OPI0sqE+LekvMOpA315klh4no0mY2h6+UfDwulGk= [Peer] PublicKey = RAMLZS12aRlVoYj+3xLfAKF+D2QGoI1Md1o7iPEnxjs= AllowedIPs = 0.0.0.0/0 Endpoint = IP_de_votre_serveur/VPS:port_wireguard
Rien de compliqué, il suffit d’installer Wireguard selon votre distribution (module kernel). Bien évidemment ça veut dire pas de Windows. Vous pouvez toujours tricher pour Windows en y installant une VM Linux sur laquelle vous faites tourner votre client Wireguard et vous forcez ensuite Windows à utiliser la VM pour tout le trafic Internet. Ou alors… vous faites tourner une VM avec le client Wireguard et un client Bittorrent ou autre… Où vous investissez dans un Raspi qui sert de relais entre votre PC et votre box FAI. Bref, c’est pas simple j’en conviens mais y’a des solutions.
Il ne reste qu’à charger le fameux fichier client qui se nomme par défaut wg0-client.conf
Et comme Wireguard est un module du kernel vous êtes assuré qu’il tourne du moment que votre machine cliente est allumée. Enfin du moins si vous avez activé le service ^^ Par exemple
sudo systemctl enable wg-quick@wg0
Bref, j’en viens à mon Galaxy S8. Android est basé sur Linux, donc un kernel, donc je devais pouvoir utiliser Wireguard. Sauf que… … …tous les kernels ne sont pas compatibles et si (quasi) tout utilisateur de Linux sait modifier son kernel, sur Android c’est une autre aventure :) J’ai donc cherché un kernel adapté, il en existe 1 ! DEUX \o/
Ensuite il fallait aussi trouver la ROM compatible. Je fais partie de ceux qui modifient leur ROM pour diverses raisons, la 1ère étant pour avoir plus de liberté/fonctionnalités et moins de conneries : root, 0 application Samsung, 0 application Google (où juste le Store), ajout d’Xposed etc.
Pour ceux qui ne savent pas trop comment changer une ROM j’avais donné des explications dans cet article.
- Via TWRP flasher la ROM de Soldier9312 (Oreo stable – détails ici)
- Toujours dans TWRP flasher le kernel TGP
- Rebooter et apprécier !
Update 27/02, j’ai trouvé un autre kernel et une autre ROM compatible. Je pense cependant que ce kernel est compatible avec 90% des ROM basées sur Oreo (dév/stables)
- Via TWRP flasher la ROM d’ambasadii (Oreo stable – v3.3 en ce moment) & rebooter, installer (ou pas) votre smartphone
- Toujours dans TWRP flasher le kernel Notorious (ne contient pas de root)
- rebooter
- lancer Magisk, installé via la ROM, qui dira qu’il n’est pas installé (aka le smartphone n’est pas rooté). Télécharger le .zip & rebooter
- via TWRP flasher Magisk (v16 ce soir) + wipe cache/Dalvik
- Rebooter, installer Wireguard et apprécier !
S8 rooté, sans application Samsung, juste un Store Google, Magisk, Xposed fonctionne et Wireguard tourne au poil :)
|