Skip to content

Choix - OPNsense

Au sein de l’infrastructure LoutikCLOUD, j’ai rapidement ressenti le besoin d’extraire le rĂŽle critique de routeur et de pare-feu de mon hyperviseur Proxmox. Virtualiser son routeur principal crĂ©e une dĂ©pendance cyclique complexe (le fameux problĂšme de l’Ɠuf et de la poule lors des redĂ©marrages de l’hyperviseur ou des maintenances matĂ©rielles).

Pour garantir une haute disponibilitĂ© d’accĂšs et une vĂ©ritable sĂ©grĂ©gation physique, j’ai fait le choix d’acquĂ©rir un Ă©quipement bare-metal1 dĂ©diĂ© : un client lĂ©ger HP T730. Ce matĂ©riel est Ă©quipĂ© d’une carte rĂ©seau PCI Express Intel d’1 Gb/s et prĂ©sente l’énorme avantage de consommer trĂšs peu d’électricitĂ©, un critĂšre essentiel pour une machine destinĂ©e Ă  tourner 24h/24 et 7j/7. Il me fallait ensuite choisir le systĂšme d’exploitation (OS) capable d’exploiter cette machine pour sĂ©curiser et router le trafic de mon infrastructure de maniĂšre moderne, automatisable et robuste.

ID Type Exigence Description
[REQ-F01] Fonctionnel Filtrage et IPS2 CapacitĂ© Ă  bloquer activement le trafic illĂ©gitime en local via des listes de contrĂŽle d’accĂšs (ACL3) et un systĂšme de prĂ©vention d’intrusion performant.
[REQ-F02] Fonctionnel GratuitĂ© et pĂ©rennitĂ© La solution doit ĂȘtre 100% gratuite (open-source de prĂ©fĂ©rence) et bĂ©nĂ©ficier de mises Ă  jour de sĂ©curitĂ© trĂšs rĂ©guliĂšres.
[REQ-T01] Technique API REST native PrĂ©sence d’une API4 complĂšte permettant l’automatisation totale des configurations et la gestion des sauvegardes (notamment via Ansible).
[REQ-T02] Technique ObservabilitĂ© Ă©tendue PossibilitĂ© d’exporter facilement des mĂ©triques de performance et de trafic vers des outils de supervision comme Prometheus ou Zabbix.
[REQ-T03] Technique CompatibilitĂ© x86 basse conso L’OS doit ĂȘtre optimisĂ© pour tourner sur une architecture standard (comme le HP T730) sans surcharger inutilement le processeur.
  • PrĂ©sentation gĂ©nĂ©rale : Pare-feu et routeur open-source basĂ© sur HardenedBSD. C’est un fork (une dĂ©rivation) de pfSense créé pour offrir une interface plus moderne et un code plus ouvert.
  • Fonctionnement : Utilise un pare-feu stateful robuste, intĂšgre Suricata pour la partie IPS, et propose une architecture modulaire basĂ©e sur des plugins.
  • Profil : OrientĂ© DevSecOps, administrateurs rĂ©seaux modernes et entreprises cherchant une plateforme ouverte, hautement automatisable via API.
  • PrĂ©sentation gĂ©nĂ©rale : La rĂ©fĂ©rence historique des pare-feux open-source, massivement dĂ©ployĂ©e Ă  travers le monde et soutenue par l’entreprise Netgate.
  • Fonctionnement : ExtrĂȘmement stable et complet, il propose un Ă©cosystĂšme de paquets trĂšs vaste pour Ă©tendre ses fonctionnalitĂ©s (Snort, pfBlockerNG).
  • Profil : Administrateurs rĂ©seaux traditionnels et entreprises cherchant une solution Ă©prouvĂ©e avec une immense base de documentation.
  • PrĂ©sentation gĂ©nĂ©rale : Projet open-source historique, extrĂȘmement lĂ©ger, conçu Ă  l’origine pour remplacer les firmwares propriĂ©taires des routeurs grand public.
  • Fonctionnement : AxĂ© sur la lĂ©gĂšretĂ© et la flexibilitĂ©, il se configure via l’interface web LuCI ou directement en ligne de commande via son systĂšme UCI.
  • Profil : Bidouilleurs, environnements embarquĂ©s, points d’accĂšs Wi-Fi et matĂ©riels avec de trĂšs faibles ressources matĂ©rielles (RAM/CPU).
  • PrĂ©sentation gĂ©nĂ©rale : OS de routage open-source orientĂ© entreprise, entiĂšrement dĂ©pourvu d’interface graphique (GUI).
  • Fonctionnement : Toute la configuration se fait via une ligne de commande unifiĂ©e (CLI) trĂšs puissante, inspirĂ©e du matĂ©riel Juniper.
  • Profil : IngĂ©nieurs rĂ©seaux purs et durs, dĂ©ploiements cloud massifs oĂč le routage BGP/OSPF prime sur l’interface visuelle.
Exigence OPNsense pfSense (CE) OpenWRT VyOS
[REQ-F01 (IPS & ACL)] ValidĂ© (Suricata natif) ValidĂ© (Snort/Suricata) Évaluation (Complexe Ă  intĂ©grer) Évaluation (Moins intuitif)
[REQ-T01 (API & Ansible)] ValidĂ© (API REST riche) Non validĂ© (Pas d’API native gratuite) ValidĂ© (Via SSH/UCI) ValidĂ© (Excellent support)
[REQ-T02 (Supervision)] Validé (Plugins natifs) Validé Validé Validé
[REQ-F02 (Gratuit/À jour)] ValidĂ© Évaluation (ModĂšle vers le payant) ValidĂ© Évaluation (Images LTS payantes)

La solution proposĂ©e pour l’infrastructure est OPNsense.

DĂ©ployĂ© sur le client lĂ©ger HP T730, OPNsense remplit parfaitement son rĂŽle de douanier physique pour l’ensemble du rĂ©seau LoutikCLOUD. Son intĂ©gration native de Suricata me permet d’activer un IPS performant qui inspecte les flux entrants et sortants pour couper net toute tentative de compromission dĂ©tectĂ©e par ses signatures.

Ce qui a dĂ©finitivement fait pencher la balance en sa faveur, c’est son ouverture aux pratiques DevSecOps. GrĂące Ă  son API REST native, je peux orchestrer OPNsense avec Ansible sans avoir Ă  “bidouiller” via SSH. C’est cette mĂȘme API qui me permet d’automatiser l’extraction des sauvegardes de configuration au format XML pour les externaliser de maniĂšre sĂ©curisĂ©e, assurant une reprise d’activitĂ© immĂ©diate en cas de panne du HP T730. L’export des mĂ©triques vers ma stack d’observabilitĂ© locale se fait en quelques clics grĂące aux plugins communautaires rĂ©guliĂšrement mis Ă  jour.

Justification du rejet des solutions alternatives :

  • pfSense : Bien que ce soit une solution lĂ©gendaire, l’absence d’une vĂ©ritable API REST dans sa version communautaire (Community Edition) rendait l’automatisation de mes sauvegardes et configurations via Ansible beaucoup trop lourde et instable. De plus, la trajectoire rĂ©cente de l’éditeur pousse de plus en plus vers la version payante (pfSense Plus).
  • OpenWRT : C’est un OS fantastique pour des routeurs Wi-Fi limitĂ©s en puissance, mais son Ă©cosystĂšme n’est pas pensĂ© en prioritĂ© pour hĂ©berger un moteur IPS complet et lourd (comme Suricata) sur une architecture x86. L’interface aurait demandĂ© trop de personnalisations pour atteindre mes objectifs de sĂ©curitĂ©.
  • VyOS : Bien que son interface en ligne de commande unifiĂ©e soit un rĂ©gal pour l’automatisation rĂ©seau, l’absence d’interface web rend le diagnostic rapide et la gestion visuelle des rĂšgles de pare-feu au quotidien moins pratique dans le cadre d’un homelab polyvalent oĂč je suis le seul mainteneur.

  1. Bare-metal : Fait rĂ©fĂ©rence Ă  un Ă©quipement informatique physique dĂ©diĂ©, sur lequel le systĂšme d’exploitation est installĂ© directement sur le matĂ©riel, sans couche de virtualisation intermĂ©diaire. ↩

  2. IPS (Intrusion Prevention System) : Un systĂšme de sĂ©curitĂ© rĂ©seau qui analyse le trafic en temps rĂ©el pour dĂ©tecter et bloquer automatiquement les activitĂ©s malveillantes (comme les attaques informatiques ou les virus) avant qu’elles n’atteignent leur cible. ↩

  3. ACL (Access Control List) : Une liste de rĂšgles de sĂ©curitĂ© strictes dĂ©finissant trĂšs prĂ©cisĂ©ment qui ou quoi a le droit d’entrer ou de sortir d’un rĂ©seau ou d’accĂ©der Ă  un service (ex: bloquer l’adresse IP X sur le port Y). ↩

  4. API (Application Programming Interface) : Un pont logiciel qui permet Ă  deux applications diffĂ©rentes de communiquer et d’échanger des donnĂ©es entre elles de maniĂšre automatisĂ©e, sans intervention humaine. ↩