Firezone – Serveur VPN et pare-feu open-source performant et léger

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/

  1. Bonjour EVOTk,

    Merci pour cet article et la présentation de ce VPN qui ne demande qu’a être adopté…!

    Petite question : actuellement, j’utilise un reverse-proxy traefik (afin d’accéder un certain service (syno-drive, syno-photo… ) et un container guacamole (accès à certaine machine en ssh sur mon lan), je n’aime pas trop mais pas trop le choix…

    Ne serait-il pas plus judicieux d’ajouter ce vpn (en mode Split Tunneling) afin d’accéder à ces ressources locales (ssh, syno-drive…) ?
    Merci

    1. Salut,
      Merci 🙂

      C’est l’utilisation que j’en ai. J’expose quelques services comme Plex / Nextcloud , … Mais la grande partie de mon serveur n’est accessible que au travers de ce VPN. Mon PC et mon smartphone étant connecté en split tunneling.

  2. Oh ca m’intéresse, je suis actuellement avec un VPS OVH et un PI3 à la maison pour contrer le NAT de ma box 4G. Possible d’utiliser Firezone plutôt que OpenMPTCPRouter ? le but étant de pouvoir héberger mes serveur (web, etc…) depuis ma connexion 4G Free ?

  3. Bonjour, étant nouveau dans le domaine du NAS (ai un DS220+), j’ai pas compris, c’est pour l’installer sur le NAS !? (si oui, où écrire cette ligne de commande svp). ou c’est pour installer sur un ordi (ai un Mac)? (auquel cas un ordi doit toujours être allumé). merci pour ces précisions d’avance.

      1. bonjour,
        – j’ai vu le logiciel VPN par synology, mais il n’a pas Wireguard dans ces réglages ! et comme apparement ce protocole fait la différence avec les autres, j’aimerai celui-ci.

        – ah ok pour Firezone (mais un NAS n’est pas un serveur ?) bref..

        NB: j’ai bien installé sur mon NAS « tailscale » et « Wireguard sur Docker » (et oui les deux héhé, car pour une raison obscure due à mon manque de connaissances, malgré que j’essaye de m’instruire sur Internet, il doit me manquer 1 paramètre (ordi config réseau, firewall NAS ou je ne sais encore..).

        mais quand je suis connecté sur Internet, mon IP ne change pas !!

        cordialement

        1. DSM n’est de base pas compatible Wireguard ( kernel linux trop vieux ). Pour Tailscale, je ne sais pas comment il fonctione 🙂

          Le NAS est un stockage en réseau avant d’etre un serveur, meme si cela s’y rapporche de plus en plus. C’est comme dire qu’une tablette c’est comme une PC portable. Cela deviens de plus en plus le cas, mais il reste des différence de fonctionnement, …

  4. Salut, merci pour cet article.
    J’ai 2 questions:
    – Possiblité de l’installer sur un raspberry ?
    – Comment configurer le serveur VPN derrière un double NAT ? (routeur synology derrière routeur de la livebox) ?

    1. Salut,
      Oui, si tu utilise la version Debian ARM64 ou Raspberry Pi OS ARM 64bits, cela ne devrais pas poser de problème.

      Si tu expose le port 51820 ( par defaut ) alors tu fait un transfert sur la Livebox = Livebox 51820/UDP > Synology 51820/UDP et un transfert sur le Routeur Syno = Syno 51820/UDP > Machine Firezone 51820/UDP

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.