Après plus d'un mois de bêta, le protocole VPN Wireguard fait son entrée dans la version 4.5 de Freebox OS, qui vient d'être mise en ligne. On vous explique comment l'utiliser comme client ou serveur.
Depuis l'intégration de Wireguard au noyau Linux, on attendait qu'il soit proposé au sein de la gestion des VPN de Freebox OS. Si l'on savait que ce serait certainement avant la fin de l'année, aucune date n'avait été précisée.
Début août, l'équipe a néanmoins lancé un appel aux testeurs. Ceux voulant participer pouvaient donner l'adresse MAC de leur Freebox (la procédure est terminée désormais) afin d'avoir accès à la version 4.5 de Freebox OS. Elle est désormais disponible pour les boîtiers Server des Révolution, mini 4K, One, Delta et Pop.
L'occasion pour nous de tester cette nouveauté et sa simplicité de mise en œuvre.
Changement de noyau et nouvelle interface
L'accès à Wireguard découle de son intégration au noyau Linux depuis la version 5.6. L'équipe avait précédemment indiqué attendre la 5.10 pour sauter le pas, celle-ci offrant un support à long terme (LTS). Mais ce n'était pas le cas lors des tests, effectués avec un noyau 5.4 via un backport. C'est toujours celui utilisé. Un travail de migration des Freebox Server vers un noyau 5.1x est en cours, mais son calendrier n'est pas encore connu.
L'équipe devait également modifier l'interface de gestion des VPN pour proposer une activation la plus simple possible, s'intégrant aux fonctionnalités existantes. Pour y accéder, il faut pour rappel se rendre dans Freebox OS, ouvrir l'application Paramètres de la Freebox et son Mode avancé. On a alors accès à Client VPN et Serveur VPN.
L'interface Freebox OS se trouve à l'URL suivante (ou l'IP 192.168.1.254 par défaut) :
https://mafreebox.freebox.fr/
Client VPN est présentée comme une manière de faire passer le trafic de certaines applications de la Freebox par un tunnel VPN. En pratique, une seule est concernée : le Gestionnaire de téléchargements. Aucune autre n'a jamais été ajoutée et il est impossible d'en profiter pour l'ensemble de la connexion, bien que certains apprécieraient.
Dans la section Configuration VPN on peut ajouter une connexion via le bouton « + » en haut à droite. Dans la liste des types de serveurs VPN, Wireguard est présent. Lors de la bêta, nous regrettions qu'il soit impossible d'envoyer un fichier de configuration, cela a été corrigé depuis, évitant de taper tous les paramètres à la main :
Les paramètres dans la version bêta (à gauche), simplifiés en version finale (à droite)
Création d'un serveur VPN : simple comme bonjour
Pour déclarer et activer un serveur VPN, c'est encore plus simple. Il faut tout d'abord créer un utilisateur, avec certaines spécificités pour Wireguard. Tout d'abord, l'IP attribuée ne peut être automatique, elle est forcément fixe. Un choix imposé par le protocole qui ne permet pas une configuration différente.
Ensuite, vous aurez accès à deux paramètres : la durée d'un signal Keepalive et l'activation de la clé pré-partagée (PSK). Dans le premier cas, il s'agit d'indiquer en secondes la durée à laquelle vous voulez qu'un paquet spécifique soit envoyé afin de vérifier que la connexion avec le serveur VPN est toujours active, ce qui peut être utile dans certains cas, précise la documentation de Wireguard. Par défaut, cette fonctionnalité est désactivée (0).
Dans le cas de la clé pré-partagée, il s'agit là aussi d'une option du protocole qui utilise une valeur (string, 32 octets) nulle par défaut dans la phase de handshake. Vous pouvez néanmoins renforcer la couche de chiffrement en cochant la case. Chaque utilisateur disposera alors de sa propre clé pré-partagée (PSK).
L'équipe de Free nous précise que « si les algorithmes de crypto utilisés aujourd'hui dans WireGuard venaient à être cassés, un tiers qui aurait capturé du trafic serait en mesure de le déchiffrer à posteriori. L'utilisation d'une clef pré-partagée implique que l'attaquant doit en plus disposer de cette clef, sans quoi il ne sera pas en mesure de dériver les bonnes clefs de session. [Cette option] vient en complément des clefs de session dérivée (et non en remplacement, où un attaquant ayant acquis uniquement la clef serait en mesure de déchiffrer le trafic) ».
Il faut ensuite se rendre dans la nouvelle section dédiée à Wireguard pour activer le serveur et indiquer le port à utiliser. Attention, celui-ci doit forcément être compris entre 512 et 1 420 pour être accepté, un spectre moins large que pendant la bêta (de 6 499 à 16 383). Certains éléments graphiques n'ont par contre pas été corrigés. Ainsi, le logo bleu/rouge de Wireguard n'étant pas très lisible sur le fond noir de l'interface de Freebox OS.
Au final, ça fonctionne bien : un fichier de configuration et un QR code sont générés pouvant être utilisés avec les différents clients Linux, macOS, Windows, Android ou iOS. Lorsque des utilisateurs sont connectés, ils sont visibles avec l'IP source/locale, la date de connexion et la quantité de données transférées dans la section Connexions.
Vous pouvez bien entendu les déconnecter. De son côté, la section État permet de vérifier si le serveur est bien actif et combien d'utilisateurs sont connectés actuellement en simultané.
Un accès au réseau local (sans découverte)
Le serveur VPN Wireguard permet de créer un tunnel entre une machine distante et la Freebox afin d'exploiter la connexion Internet de cette dernière. Par exemple pour disposer d'une IP française lorsque vous êtes à l'étranger. Ou accéder à son réseau local depuis l'extérieur et donc aux appareils qui y sont connectés.
Lors de notre test, l'utilisateur connecté pouvait accéder à un NAS connecté à la Freebox tant depuis l'interface web que via le partage réseau (CIFS/SMB). Il y a néanmoins quelques subtilités à noter. Il n'est pas possible d'attribuer une IP dynamiquement au client, elle doit être choisie, utilisateur par utilisateur. Elle est forcément dans un sous-réseau différent : 192.168.67.x, réservé aux usages internes de la Freebox (192.168.1.x sinon).
La configuration du VPN est faite de manière à laisser un accès au réseau local aux clients, mais les protocoles de découverte ne sont pas routés et vous ne verrez ainsi pas les appareils apparaître dans la section Réseau de l'explorateur de fichier de Windows par exemple. Il faudra ainsi s'y connecter avec leur adresse IP.
L'équipe a précisé sur le bug tracker que le support de l'IPv6 arriverait dans un second temps. Concernant les scénarios de connexions « site-à-site » que certains aimeraient pouvoir activer, ils ne sont pas exploitables en l'état actuel de la configuration. Il n'a pas été précisé si cela était prévu ou non à l'avenir.
Quid des performances ?
Notre test ayant été réalisé sur une ligne VDSL avec un upload à 19 Mb/s (2,4 Mo/s) nos tests en la matière étaient limités. Nous avons néanmoins pu atteindre 1,7 Mo/s pour le téléchargement d'une ISO d'Ubuntu 21.04 Desktop en utilisant le VPN Wireguard, contre 2 Mo/s en récupérant le même fichier sans VPN, mais partagé depuis la Freebox.
Côté latence, voici les chiffres mesurés via ping (connexions RJ45, sans Wi-Fi) :
- Machine sur le réseau de la Freebox > nextinpact.com : 11 ms
- Machine distante (sans VPN) > nextinpact.com : 23 ms
- Machine distante (avec VPN) > nextinpact.com : 37 ms