Découvert un peu par hasard, Firezone est un moyen simple de créer un serveur VPN WireGuard. Firezone est un projet open source permettant la mise en place d’un serveur VPN, d’un pare-feu ainsi qu’une interface Web de gestion en quelques minutes. Il est très complet et permet en quelques minutes de déployer un serveur Wireguard stable, performant et fonctionnel !
Fonctionnalités de Firezone
🚀 Rapide
Le VPN WireGuard permet d’obtenir des performances jusqu’à 6x plus rapide qu’OpenVPN et on profite également d’une faible latence. Son seul inconvénient, c’est qu’il demande à être exécuté sur une machine avec un noyau Linux récent (Kernel 5.0+).
🤷♂️ Simple
Comme vous pouvez le constater dans l’animation ci-dessous, il est facile à utiliser.
Vous allez pouvoir gérer votre serveur VPN et votre pare-feu via une interface Web moderne et intuitive (ou en ligne de commande si vous préférez).
💻 Auto-hébergé
Vous pourrez déployer Firezone sur votre propre matériel en quelques minutes. Il supporte officiellement + de 15 système d’exploitation, dont pour la majorité leur version AMD64 et ARM64. On retrouve CentOS, Debian, Fedora ou encore Ubuntu (avec pour certaines versions des notes/conseils concernant l’installation).
🛂 Authentification unique (SSO)
Assez facilement, vous vous authentifierez avec n’importe quel fournisseur d’identité compatible OpenID Connect (OIDC). Cela peut être par exemple Okta, Azure Active Directory, Google Workspace…
👌 Open source
FireZone est distribué sous la licence Apache 2.0. Cela signifie qu’il peut être utilisé pour un usage privé ou commercial, qu’il peut être distribué ou même modifié également. Le code source est disponible sur GitHub.
⌛ MFA basé sur TOTP
Il offre également la possibilité d’utiliser l’authentification multifacteurs à l’aide d’un code unique basé sur le temps. L’application vous génère alors un QR code à flasher avec votre application 2FA favorite !
👓 Observabilité
Comme tout bon outil qui se respecte, vous pourrez surveiller l’activité des utilisateurs et de leurs appareils, comme la dernière connexion, ou activité, mais également la consommation de données de chaque appareil.
🔏 Pare-feu inclus
Configurable via l’interface Web et personnalisable pour chaque utilisateur, le pare-feu (nftables Linux) vous permet d’autoriser le trafic dont vous avez besoin et d’empêcher le trafic d’aller aux hôtes indésirables, mais également de bloquer le trafic sortant non souhaité.
Mais aussi …
- Aucune dépendance : Toutes les dépendances sont regroupées via Chef Omnibus.
- Sécurisé : Il s’exécute sans privilège, HTTPS forcé et cookies chiffrés.
Quelques cas d’usage de firezone
Split Tunneling
L’usage le plus courant d’un VPN autohébergé : le split tunneling. Ici, le but est de pouvoir accéder à distance à son réseau local sans avoir à l’exposer directement sur internet (et donc limiter la surface d’attaque), sans pour autant que tout le trafic internet du périphérique de notre utilisateur passe au travers du tunnel. Nous allons donc limiter son accès au tunnel à une certaine plage d’IP (celle de notre réseau local).
Ici, le trafic des utilisateurs est donc soit directement envoyé sur internet, ou passe au travers du tunnel WireGuard afin de permettre l’accès à des ressources protégées.
Reverse Tunnel
Le Reverse Tunnel est une autre utilisation d’un serveur VPN, il permet de connecter 2 ou plusieurs peers ( pairs ) directement entre eux, à travers un tunnel chiffré.
On peut par exemple imaginer que le serveur A et le serveur B ne soient pas sur le même réseaux. Cette connexion leur permet de dialoguer directement entre eux de manière sécurisée ( A peut dialoguer avec B et inversement ). Sur une plus grande échelle, on peut imaginer plusieurs serveurs ( qui seront donc des peers ) géographiquement séparés, mais tous interconnectés de façon sécurisés grâce au VPN sans qu’aucun des serveurs n’ait besoin de s’exposer directement sur internet, seul le serveur VPN l’est.
NAT Gateway
La NAT Gateway (ou passerelle NAT) permet de fournir une adresse IP unique par laquelle tout le trafic de vos utilisateurs doit sortir. Imaginons que vous avez un serveur style VPS ou serveur dédié. Si plusieurs utilisateurs doivent accéder à ce serveur, il faut alors l’exposer sur internet et le réglage du pare-feu n’est pas des plus simple et souvent pas idéal (limitation géographique, ou autorisation seulement des IPs des utilisateurs). Si des utilisateurs se rajoutent, ou si leurs IP changent, il faut reprendre les réglages.
Avec l’utilisation d’un serveur VPN comme passerelle, il est simple de régler le pare-feu. Il suffit de n’autoriser que l’adresse du serveur VPN à se connecter à « Mon Serveur » et interdire tous le reste. Alors tous les utilisateurs avec accès au VPN pourront avoir accès à « Mon Serveur », le reste des connexions seront refusées. Si un utilisateur se rajoute dans la configuration du VPN, ou est enlevé, il n’y a aucune modification du pare-feu a faire sur le serveur distant.
Modèle économique de firezone
Firezone repose sur un modèle économique assez « classique » des logiciels open source. Celui-ci propose des services payants comprenant : l’assistance technique (appels vidéos, e-mails… ), l’intégration et formation des administrateurs qui géreront l’outil, des déploiements sur site ou même influencer la feuille de route de développement, voir des développements personnalisés.
Consommation de ressources
J’ai remplacé mon installation d’accès à distance (une Debian, avec Docker et un conteneur avec l’image docker-wireguard de chez linuxserver, le tout dans une machine virtuelle) par Firezone (également dans une machine virtuelle Debian). La consommation de CPU est légèrement supérieur pour firezone (0,12% / 0,16% ). Par contre, il consomme en moyenne moins de RAM (650Mo / 450 Mo ).
Conclusion
C’est un très bon outil, les personnes cherchant quelque chose de plus simple, s’installant en docker se tourneront plutôt vers WireGuard Easy, mais Firezone a beaucoup plus d’options (gestion d’utilisateurs / pairs multiples) et de sécurisation (pare-feu, 2FA, Single Sign-On… ). Pour ce qui est de la « promesse » faite sur la page d’accueil de Firezone, concernant un déploiement en quelques minutes, c’est vrai et c’est bluffant ! Une seule ligne de commande, on répond à quelques questions simples et c’est tout ! L’installation est entièrement automatisée.
La maintenance est également simplifiée, puisque Firezone est un paquet issu d’un référentiel intégré à la distribution (Debian entre autres) pendant l’installation. La mise à jour de l’outil se fait donc de la même manière / avec la mise à jour des paquets du système d’exploitation.
Attention, l’essayer, c’est l’adopter ! Rendez-vous sur leur site officiel : https://www.firezone.dev/