Pangolin: un Cloudflare auto hébergé et libre ?
Comment se passer de Cloudflare et réduire sa dépendance a un géant américain qui gère 20% du web ? Et si on essayait Pangolin ?
Au fil des années on le sait Cloudflare est devenu un incontournable pour les professionnels du web mais aussi pour la communauté de l'auto hébergement. On l'a vu récemment c'est un problème surtout quand 20% du web transite par ces services. Le problème c'est que Cloudflare séduit beaucoup de par sa simplicité et sa grande variété de services même avec l'offre gratuite. Au niveau auto hébergement par exemple nombreux sont ceux qui lui font confiance, et pour cause; en quelques clics un Cloudflare Tunnel permet d'exposer ses services sans fouiller dans un reverse proxy ou un firewall (je caricature mais c'est quasi le cas). Au delà de l'aspect technique pour moi Cloudflare n'est pas bien différent d'un GAFAM et il est important dans une démarche d'auto hébergement de ne pas en être trop dépendant.
Les briques essentielles que je cherchais dans une alternative à Cloudflare sont:
- Le filtrage DNS
- Le tunnel
- Une interface unifiée pour tout gérer
Bon, clairement la partie filtrage DNS comme le fait Cloudflare est difficile a remplacer à l'identique. On parle de prendre toutes les requêtes vers un domaine et de les confronter a des listes d'IP malicieuses, douteuses,etc... Je m'en servais principalement pour écarter ce trafic et faire du géoblocking. Ensuite le tunnel c'est vraiment la grosse partie. J'ai toujours exposé mes services sans tunnels Cloudflare en exposant mon reverse proxy à Internet. Cela signifie faire des trous dans le pare feu de la maison et configurer un nouveau vhost a chaque fois et même si c'est faisable sans problème on peut faire mieux. Enfin la force de Cloudflare est aussi de permettre de faire tout cela et bien plus dans une interface propre et fonctionnelle.
C'est là dessus que le projet Pangolin arrive et permet de cocher (en s'arrangeant) toutes les cases. La partie filtrage du trafic malicieux va être déléguée a Crowdsec, j'en parlerais une autre fois et peut être avant l'année prochaine ce coup ci. Tout le reste se gère extrêmement bien dans une belle interface. L'idée principale est d'exposer les services hébergés (via Docker ou pas) au serveur Pangolin via un tunnel chiffré avec l'outil maison basé sur Wireguard: Newt . Une fois que Pangolin accède à votre service il peut le servir et agir comme un reverse proxy en vous permettant d'établir des règles d'accès, du géoblocking, de la haute dispo,etc... Il est aussi possible de mettre en place de l'authentification.
Le résultat c'est un VPS quelconque sur lequel j'ai installé Pangolin, Crowdsec, etc... qui communique avec mon lab via les tunnels Newt (avec Wireguard sous le capot) et mon pare feu à la maison est fermé a 100%. Cela fait presque 6 mois que la solution est en place, des briques sont venues combler quelques lacunes ou ajouter des fonctionnalités mais dans l'ensemble c'est un projet open source robuste assez incroyable.
Je détaillerais l'installation dans un prochain post !