L'association FSF France vient d'ouvrir le site ufwi.org qui contient le code source libre de mon ancien employeur (EdenWall, anciennement INL). C'est une excellente nouvelle pour les clients d'EdenWall (la société ayant été liquidée en août 2011), pour les anciens développeurs d'EdenWall (qui ont à nouveau accès au code qu'ils ont écrits et vont pouvoir le réutiliser) et pour toute personne proche des projets EdenWall (NuFW, NuFace, NuLog, etc.).

C'est également une excellente nouvelle pour la communauté du libre, c'est une belle démonstration que le logiciel libre survit à la liquidation de son éditeur. Les développeurs et sociétés intéressés au code vont pouvoir en reprendre le développement, et des sociétés de service vont pouvoir proposer du support pour les appliances EdenWall en tout sérénité.

Pour comprendre d'où vient le code source et dans quelle condition il été remis en ligne, voici un historique du code et de son éditeur, la société INL, devenue EdenWall entre temps.

Avant mon arrivée à INL (2003-2005), nufw.org

Logo et mascotte d'INL : nupik le porc-épic

Comme je l'ai écrit dans un article précédent, j'ai choisi de travailler dans la société INL parce qu'elle affichait son implication dans le libre, défendait les valeurs du libre et s'en servait pour vendre ses services. Les dépêches et journaux LinuxFR suivants, écrits par les deux cofondateurs Éric Leblond et Vincent Deffontaines, en témoignent :

Les principaux logiciels étaient le parefeu NuFW et l'éditeur de jeu règles de parefeu NuFace. À cette époque, NuFace était composé d'un backend en Python (nupyf) et un frontend web (PHP4, HTML, Javascript, CSS). Ces logiciels ont été écrits par Éric Leblond, Vincent Deffontaines et Jean Gillaux. Ils ont été indirectement financés par les offres de service Linux (administration système essentiellement).

Le code de NuFW était publié sur le site nufw.org (nom de domaine déposé en août 2003). Le code de NuFace était hébergé sur le site de l'entreprise, inl.fr (nom déposé en mars 2004).

INL 2006-2008, software.inl.fr

Appliance EdenWall 3

Logo de l'appliance EdenWall

J'ai rejoint la société INL en février 2006. L'époque INL (2006-2008) a été prolifique au niveau de la publication de logiciel libres.

Les développements de NuFW et NuFace se poursuivent pendant cette période. Le logiciel NuLog, qui existait déjà avant mais n'était pas mis en avant, a été réécrit et publié. La nouvelle version (NuLog 2) a été écrite par Romain Bignon. J'ai d'abord contribué à NuFW, puis j'ai beaucoup travaillé sur NuFace jusqu'à en écrire une nouvelle version majeure (NuFace 2).

NuFW, NuFace et NuLog ont été inclus de plus en plus régulièrement dans des parefeux conçus spécialement pour des clients. C'est aussi durant cette période que le produit EdenWall 3 est né : une Debian Stable avec les 3 logiciels cités, plus de nombreux outils d'administration (configuration système), de surveillance système (rrdtools) et une petite infrastructure de gestion de clés publiques (PKI, première version de nupki). Les logiciels EdenWall 3 étaient hétérogènes au niveau des langages de programmation (Python, PHP, Perl, bash, Javascript, ...), les logiciels communiquaient peu. L'ensemble fonctionnait bien et a été vendu à plusieurs clients (entre 5 et 10, je ne sais pas trop) sous forme d'une appliance (rackable, format "1U").

Site software.inl.fr

En dehors des logiciels "majeurs", de nombreux petits outils écrits par les différents développeurs étaient diffusés sur le site software.inl.fr. Ce site servait de vitrine technologique pour démontrer les compétences de l'équipe, les développeurs et la direction y trouvaient leur compte. Certains logiciels étaient écrits durant le temps libre des développeurs, mais les développeurs acceptaient d'associer INL à leur projet, parce que ça semblait naturel et que tout le monde y gagnait.

NuFW a 3 ans, joyeux anniversaire

Liste des logiciels libres hébergés sur software.inl.fr :

  • GvGen : bibliothèque de génération de graphiques (utilisant Graphviz)
  • HAL-GK : Fork du parefeu NSM, un "proxy multi protocoles"
  • IPy
  • lagfactory : Script simulant une lenteur réseau ou la perte de paquets vers une cible donnée
  • macfly : bibliothèque modifiant l'horloge d'un programme. Projet que j'ai développé pour le CNES et publié sous licence libre (avec l'accord du CNES).
  • nf3d : Outil de visualisation 3D des logs Netfilter, voir aussi la présentation au SSTIC 2008 (diaporama)
  • nflog-bindings : Binding haut niveau de la bibliothèque libnetfilter_log
  • nfqueue-bindings : Binding haut niveau de la bibliothèque libnetfilter_queue
  • NuCentral : Framework de gestion de modules
  • NuConntrack : Monitoring et manipulation du suivi de connexion (conntrack) Netfilter
  • NuFW : Le parefeu authentifiant, accompagné de modules SSO pour Apache et Squid (squid_nufw_helper, mod_auth_nufw) et d'un client graphique (NuApplet2)
  • NuFace : interface de gestion de jeux de règles du parefeu
  • NuLog : Analyse et reporting des logs réseaux
  • NuPHP : Bibliothèque PHP utilisée par NuFace et autres projets PHP
  • Ouadjet : Généateur de règles modsecurity pour un proxy web inverse
  • pynetfilter_conntrack : Binding Python de la bibliothèque libnetfilter_conntrack
  • spamstats : Analyse et graphiques de logs spamassassin
  • Valpyk : Parseur de logs Valgrind
  • Wolfotrack : Gestion du suivi de connexion Netfilter avec le jeu Wolfenstein 3D (voir la vidéo sur youtube). Les ennemis étant des connexions réseaux. Tuer un enemi tuait effectivement les connexions actives du parefeu. Cette modification a été écrite par Sébastien Tricaud et Laurent Defert dans leur temps libre, et publiée sur le site software.inl.fr.

Le site software.inl.fr ayant fermé, j'ai indiqué le nouvel hébergement de chaque projet, pour les projets qui ont eu la chance d'avoir un nouvel hébergement. Le code source des projets HAL-GK, Ouadjet, spamstats, Valpyk et Wolfotrack a été perdu lors de la fermeture de software.inl.fr. Les projets NuCentral, NuConntrack, NuFW, NuFace et NuLog sont maintenant hébergés sur ufwi.org (voir plus bas).

software.inl.fr contenait également un miroir public du dépôt Subversion d'INL. Certaines parties n'étaient pas publiées, mais pour les projets publics : le code était en ligne en moins de 24h. INL était donc très transparent et ouvert. Cette ouverture a été récompensée par plusieurs contributions externes, plus ou moins importantes, aux différents projets.

Communication LinuxFR

Logo du site LinuxFR

Le site d'information LinuxFR a été utilisé pour la communication d'INL avec la communauté du libre :

Contributions au libre et packaging

Logo de la distribution Debian

Une page listait également les contributions au libre réalisées par les employés d'INL, faites dans leur temps de travail ou dans leur temps libre. Logiciels ayant reçu des contributions sous forme de patch dans le désordre : noyau Linux, Netfilter, ulogd2, Prelude, Apache, SquidGuard, gcrypt, gnutls, Python, PHP, DIA, Layer7, Dia, glibc, centreon, afterglow.

Une autre forme de contribution était le packaging de logiciels et bibliothèques : Pierre Chifflier pour Debian, Jérôme Soyer et Michael Scherer pour Mandriva et Fedora. Bien sûr, ils ont packagé les logiciels INL, mais également un grand nombre d'autres projets. Là aussi, les contributions étaient à la fois faites dans leur temps libre et dans leur temps de travail.

Quelques exemples de paquets :

EdenWall 2009-2011, nufirewall.org

Nouvelle version de la mascotte Nupik à le mode EdenWall

Une levée de fonds et le changement de métier a entrainé le changement de nom de la société : INL devient EdenWall. La majorité des logiciels INL qui composent l'appliance EdenWall 3 vont être réécrits pour donner un nouveau produit : EdenWall 4. Le développement des nouvelles versions de logiciel est confidentiel.

Sur la période 2009-2011, il y aura deux annonces LinuxFR :

NuFirewall est la version libre du produit EdenWall. Le code est alors hébergé sur un nouveau site, nufirewall.org (nom de domaine déposé en décembre 2009).

N'ayant pas réussi à s'imposer dans le secteur concurrentiel des parefeux, la société EdenWall se voit forcée de déposer le bilan en août 2011.

FSF France et UFWI, ufwi.org

Logo du projet UFWI

Novembre 2011, la FSF France réagit à la fermeture des sites hébergeant le code libre (software.inl.fr, nufw.org et nufirewall.org) en lançant un appel pour récupérer le code dans l'objectif de le remettre en ligne.

Cet appel est couronné d'un succès : le code est remis en ligne sur un nouveau site, ufwi.org : Nouvel hébergement du projet NuFW sur ufwi.org.

Le site UFWI héberge 3 dépôts git contenant le code source libre d'EdenWall 4 : ew4-updates, edw-svn, nufw. Le dépôt edw-svn est le plus gros (4 Go contre 9 Mo pour nufw et 430 Mo pour ew4-updates).

edw-svn

Ce dépôt (au format git-svn) est une copie du dépôt Subversion contenant l'historique de juin 2008 à février 2011 (il manque donc le code de mars à août 2011).

Frontends et backends :

  • nuconf : Configuration système
  • nuconntrack : Suivi de connexion
  • nudpi : Analyse de paquet en profondeur (Deep Packet Inspection, DPI) utilisant la bibliothèque non libre Qosmos
  • nuface3 : Gestion de jeu de règles du parefeu
  • nugraph : graphiques RRD
  • nulog3: Analyseur de logs du parefeu
  • nupki : Interface simple de gestion d'infrastructures de clés publiques (PKIs)

Frontends :

  • edenwall-administration-suite : interface graphique intégrant nucentral-admin, nuface, nuconf, nulog, nudpi, nupki ainsi qu'une page d'accueil
  • edenwall-console-access : gestion des permissions d'accès utilisant le port série (modification du mot de passe)
  • nucentral-admin : gestion du serveur nucentral (utilisateurs, groupes, permissions)

Backends :

  • nnd : interrogation d'annuaires utilisateurs, supporte OpenLDAP, Active Directory, etc.
  • nucentral : serveur "nucentral", Object Request Broker (ORB) utilisant XML-RPC (avec HTTP/1.1 en mode connecté) et SSL/TLS
  • nucentral-edenwall : modules nucentral supplémentaires
  • nucentral-multisite : Gestion de plusieurs parefeux
  • nurestore : import-export de configuration

Autres :

  • edenwall-ezio : gestion du panneau frontal LCD pour afficher des informations et déclencher des actions comme rebooter
  • edenwall-portal : page d'accueil HTML du proxy web
  • edenwall-snmp : sondes SNMP pour nuauth
  • ew4-diag : Analyseur de logs nucentral
  • python-atlee-pam : packaging Debian de la bibliothèque Python PAM (atlee)
  • tools : divers outils pour travailler sur le projet edw-svn

NuFW

Composants :

  • nutcpc : client UNIX en ligne de commande
  • libnuclient : bibliothèque partagée par tous les programmes clients
  • nufw : démon du parefeu
  • nuauth : serveur d'authentification
  • nussl : bibliothèque SSL/TLS utilisant la bibliothèque GnuTLS ou OpenSSL
  • pam_nufw : script PAM lançant nutcpc en arrière plan

Modules du serveur d'authentification (nuauth) :

  • acls : ldap, plaintext
  • logs : MySQL, Prelude, PostgreSQL, script, syslog, ulogd2
  • authentication : ipauth_guest, MySQL, nnd, PAM, plaintext
  • mark : field, flag, group, uid
  • x509 : OCSP, standard (x509_std)
  • autres : multi_mode, script, postauth_localuser, session_authtype, session_expire, xml_defs (durées et périodes de temps)

ew4-updates

Ce dépôt est une copie du dépôt git contenant l'historique de décembre 2009 à mars 2011 (il manque donc le code d'avril à août 2011). Il contient les recettes pour générer les mises à jour de l'appliance parefeu et de l'appliance multisite (Multi-Firewall) :

  • Pare feu : 36 mises à jour (numéro 10 à 48), la mise à jour de développement n°666 (active SSH et le mode debug), 9 mises à jour spéciales (9000xxx) et un modèle de mise à jour
  • Multisite : 2 mises à jour (n°13 et n°14)

Prelude

En 2009, l'éditeur Prelude IDS est racheté par EdenWall et le développement se poursuit dans EdenWall. On peut trouver une version libre de 2010 dans Debian :

La version libre de Prelude était hébergée sur prelude-ids.org (nom de domaine déposé en octobre 2001), puis sur prelude-technologies.com (nom déposé en décembre 2009). Pour les archives, il existe aussi un projet Prelude sur Sourceforge, mais le projet n'a pas été touché depuis 9 ans.

Pour la suite

Je compte reprendre le développement des projets nucentral, nuface, nnd, voir aussi nulog, pour qu'ils soient faciles à installer. Peut-être que nufw nécessite également un peu de nettoyage.

Il ne restera ensuite plus qu'à lancer une grosse campagne de communication pour faire connaître ces logiciels, et peut-être aussi recruter des développeurs.

Bien sûr, si vous êtes intéressés, je vous invite dès à présent à rejoindre le projet !

Note : J'ai cité certains auteurs, mais il ne s'agit sûrement pas d'une liste exhaustive. Consultez le fichier AUTHORS de chaque projet pour une liste plus complète.