Qu'est-ce que OPNSense® ?

OPNSense est un système d'exploitation orienté routeur et pare-feu dérivé de FreeBSD et basé sur m0n0wall et le logiciel pfSense®. Il constitue d'un point de vue informatique un "fork" du projet logiciel pfSense® (les raisons du fork sont expliqués après).

Synthèse fonctionnelle d'OPNSense®

OPNsense® est un firewall à gestion d'état qui bénéficie des fonctions suivantes (extrait) :

  • un firewall à gestion d'état
    • La table d'état du firewall maintien des informations sur les connexions réseau ouvertes. OPNsense® est un firewall qui gère les états, par défaut toutes les règles prennent cela en compte.
    • La plupart des firewalls ne disposent pas de fonctionnalités qui permettent de gérer de façon très précises ces tables d'état. OPNsense® a de nombreuses fonctionnalités qui permettent un contrôle précis de ces tables d'état.
  • un routeur puissant
  • Filtrage du trafic entrant et sortant pour tout type de trafic IP (ICMP, UDP, TCP...) et sur d'autres protocoles (IGMP, GRE, PIM, OSPF, … et plus d'une cinquantaine d'autres protocoles)
  • un gestionnaire de NAT (network address translation), en entrée et sortie (1:1, transfert de ports, sortie)
    • Forwarding de ports incluant des plages et de multiples IPs publics
    • NAT 1:1 pour des IPs individuelles ou des sous-réseaux entiers.
    • NAT en sortie
  • packet shaping (régulation du trafic avec différents algorithmes)
  • load balancing (équilibrage de charge) en vue d'améliorer les performances
  • multi-WAN (avec définition fine des règles de basculement)
  • support des VLANs en 802.1Q
  • support des interfaces LAGG, QinQ, Bridge, GRE
  • support complet d'IPv6
  • support des VPN IPSec et OpenVPN
  • haute disponibilité via CARP
  • fonction de portail captif permettant aux utilisateurs de s'authentifier ou d'être orientés vers une page web déterminée.
  • gestion de nombreux services standards : DHCP, DNS, NTP, PPPoE
  • IDS / IPS intégré et bénéficiant de l'utilisation de Netmap
  • proxy intégré
  • évaluation du traffic sur les interfaces avec NetFlow

Des systèmes de packages complémentaires sont disponibles d'un click avec les packages suivants :

  • optimisation pour un déploiement virtualisé pour KVM, Xen, VMWare
  • outil de supervision des disques SMART (package)
  • complément de gestion SNMP (via bsnmpd)
  • proxy IGMP
  • déploiement "Let's encrypt" pour une génération de certificat gratuits
  • proxy FTP, Haute disponibilité

Il est basé sur une licence BSD à deux clauses, ce qui permet de l'utiliser comme base afin de l'agrémenter de nouveaux packages.
 

Pourquoi OPNSense® ?

Qualité du logiciel

OPNsense® a été adoubé par de nombreux utilisateurs experts de la solution logiciel pfSense® et il a aujourd'hui atteint un niveau de maturité suffisant pour pouvoir être déployé en production.
Ses fonctionnalités sont nombreuses et il bénéficie d'une intégration meilleur dans le système FreeBSD comme rappelé précédemment. La simplicité de sa maintenance dans ce contexte est donc importante.

OPNsense® offre des avancées importantes par rapport à son homologue le logiciel pfSense® en matière de sécurité, de qualité du code et d'interface.
 

Pour le système d'exploitation : implémentation de HardenBSD

  • HardenBSD-ASLR : permet d'augmenter le niveau de sécurité de FreeBSD en procédant à une répartition aléatoire de données en mémoire et cela à plusieurs niveau :
    • pour PIEs (Position-Independent Executables)
    • pour la pile mémoire complète
    • pour la pile mémoire RTLD
    • pour la pile mémoire mmap
    • pour la pile mémoire VDSO. La VDSO est un endroit de la mémoire qui est partagé entre le noyau et la mémoire utilisée par les process utilisateur (userland).
    • Shared object load order randomization
  • HardenBSD-SafeStack : propose d'implémenter une technique de protection de la mémoire en séparant la mémoire en deux piles, une pile sécurisée pour les données nécessitant d'être protégée (adresse de retour et fonctions de pointeur) et une pile non-sécurisé pour les autres données. Safe Stack opère avec une surcharge processeur très faible (de l'ordre de 0,1%).

 

Pour le code :

  • la ré-écriture d'une bonne partie du code du logiciel pfSense® afin d'assurer une parfaite compatibilité avec FreeBSD et une simplification des montées en version :
    • simplification et ré-organisation du code
    • simplification de l'intégration des logiciels de tierce partie
    • meilleure organisation et utilisation de conventions normalisées pour la production du code

 

Pour la partie graphique :

  • utilisation du module logiciel MVC-Framework dérivé de Phalcon (programme en Python)
  • utilisation de pages avec un rendu "bootstrap" pour un affichage Responsive Design

 

Problématique juridique :

Le logiciel pfSense® est passé en 2014 d'une licence BSD à une licence Apache 2, agrémentée de nombreuses clauses très restrictives sur les modalités de contribution au projet et de re-distribution de ce dernier.
Ces changements ont contribué à une mobilisation des sociétés qui participaient ou finançaient le projet pfSense® (directement ou indirectement) qui ont encouragés le "fork" OPNSense et ont ainsi permis son lancement. ToDoo fait partie de ces sociétés.
 

Réputation du logiciel

OPNSense est un firewall reconnu et utilisé au niveau mondial par plusieurs milliers d'entreprises. Son niveau de notoriété et de fiabilité est très élevé. Grace à son ouverture, il a pu bénéficier de très nombreux supports de la communauté des développeurs (élément essentiel du succès de ce logiciel).
 

Montée en charge et performance du logiciel

OPNSense implémente des techniques de bas niveau visant à permettre une amélioration significative de ses performances. On pourra citer les technologies suivantes :

  • AES-Ni : permettant un support de l'accélération cryptographique en portant la charge sur le processeur
  • Netmap : c'est un ensemble de logiciel permettant un traitement ultra-rapide de paquets, soit au niveau du noyau ou de l'espace des logiciels utilisateurs. Ce type d'implémentation permet d'accélérer considérablement les performances du traitement des paquets. On peut ainsi atteindre un traitement de 15 millions de paquets (Mpps) par seconde avec moins d'un coeur sur une interface 10G.
  • Implémentation des interfaces virtuelles et nombreux mécanismes permettant une optimisation du système dans ses implémentations virtualisées.

Le système peut ainsi atteindre des performance de l'ordre de 8Gb/s sur un hardware d'un prix très réduit par rapport à ce type de performance. C'est particulièrement utile pour des firewalls déployés dans un data-center où dans des réseaux assez gourmands.

Pour les besoins de PME / TPE, OPNSense est compatible avec des équipements d'excellente facture qui permettent un déploiement sur des boitiers basés sur des processeurs AMD quad-coeurs avec des performances de filtrage supérieures à 350Mb/s !

Nous recommandons donc à nos utilisateurs d'essayer ce logiciel pour se faire un idée de ses modalités de fonctionnement.