Nous déployons, maintenons et enseignons NixOS, et développons sur mesure autour de Nix. Nos ingénieurs contribuent aux briques NixOS de l'État, Sécurix et Bureautix, ainsi qu'à disko. Nos équipes développent NixWall, un pare-feu libre basé sur NixOS.
NixOS est une distribution Linux libre. Sur Debian ou Ubuntu, l'administrateur installe des paquets et modifie des fichiers machine par machine, et l'état réel d'un serveur finit par s'écarter de sa documentation. Sur NixOS, il décrit l'état voulu dans des fichiers texte (logiciels, services, comptes, réseau) et NixOS construit le système à partir de cette description.
Chaque construction crée une nouvelle génération du système. Les précédentes restent disponibles, et le menu de démarrage permet de revenir à l'une d'elles si une mise à jour pose problème.
Les logiciels viennent de nixpkgs, le dépôt de paquets de Nix. C'est le plus grand toutes distributions confondues, avec environ 119 000 paquets selon Repology.
Notre article Comprendre NixOS compare cette approche à Debian, Ubuntu et RHEL. Flakes Nix présente la façon la plus répandue d'organiser une configuration.
Le bureau GNOME de NixOS.
Pourquoi NixOS en entreprise
Pour une entreprise ou une administration, la configuration de chaque serveur tient dans un dépôt Git. Elle sert de documentation, et un autre prestataire peut reprendre l'infrastructure à partir de ces fichiers.
Extrait d'un fichier configuration.nix : un site web en HTTPS, un compte administrateur et les mises à jour automatiques. Ce fichier suffit à reconstruire le serveur.
Usages courants
NixOS s'utilise sur des serveurs comme sur des postes de travail.
Usage
Avec NixOS
Serveurs web et applicatifs
Le même fichier reconstruit le serveur après une panne ou chez un autre hébergeur.
Postes de travail
Chaque poste reçoit sa configuration d'un dépôt Git, comme dans Sécurix et Bureautix.
Pare-feu et routeurs
Une règle erronée s'annule en revenant à la génération précédente.
Installation par le réseau
Un poste neuf démarre sur le réseau et s'installe sans clé USB.
Environnements de développement
nix-shell ou un flake donne à chaque développeur les mêmes versions d'outils.
Tests avant déploiement
Les tests NixOS vérifient une configuration dans des machines virtuelles avant la mise en production.
Le déroulé d'un projet
Le passage à NixOS se fait par étapes, sans arrêter ce qui fonctionne.
Audit : inventaire des serveurs, des services et de leurs dépendances, puis choix d'un premier service à migrer.
Pilote : ce service passe sous NixOS, avec toute sa configuration dans un dépôt Git. L'ancien serveur reste en place jusqu'à la validation.
Extension : les autres serveurs suivent, avec des modules communs pour les comptes, la supervision, les sauvegardes et le durcissement.
Transfert : formation et documentation de vos équipes, qui modifient ensuite la configuration elles-mêmes.
Prestations NixOS
Nous pouvons prendre en charge tout le projet ou une seule de ces étapes.
Audit et migration
Inventaire du parc, choix du premier service et plan de migration, puis bascule des serveurs et des postes.
Déploiement
Configurations en flakes et en modules, partitionnement et chiffrement avec disko, installation automatique ou par le réseau, secrets chiffrés.
Maintenance et exploitation
Mises à jour suivies, supervision et sauvegardes. Le MCO et l'infogérance s'appliquent aussi aux parcs NixOS.
Postes Sécurix et Bureautix
Pilotes pour les administrations, avec l'inventaire, l'installeur et les clés de sécurité adaptés à votre organisation.
Développement sur mesure
Modules NixOS, paquets, outils de déploiement et intégrations écrits pour vos besoins, publiés sous licence libre quand c'est possible. NixWall, le pare-feu libre que nous développons, en est un exemple.
Formation
Formation NixOS de 3 jours pour les équipes d'administration, en présentiel ou à distance, avec des exercices sur vos propres cas.
Sécurix et Bureautix
Sécurix est une distribution NixOS développée par la DINUM pour des postes sécurisés d'administration système, de bureautique et de développement. Bureautix en est la déclinaison d'exemple pour les postes bureautiques, avec un inventaire des machines, un installeur et des réglages prévus pour une DSI.
Le projet vise d'abord les informations non protégées, puis éventuellement le niveau Diffusion Restreinte. Il suit les recommandations de l'ANSSI avec un noyau durci, le démarrage sécurisé et un disque chiffré qui se déverrouille avec une clé FIDO2. La connexion se fait aussi par clé de sécurité, et le mot de passe n'est qu'un mode de secours. Grâce à NixOS, le même modèle se décline selon les besoins, par exemple un poste partagé entre plusieurs agents ou un poste limité à l'intranet.
Les prochaines étapes annoncées par la DINUM portent sur un durcissement complémentaire, l'envoi des journaux vers un puits de traces, l'enrôlement automatique des nouveaux postes et la rotation des clés Secure Boot.
Nos ingénieurs contribuent activement au projet. Nous voulons continuer à contribuer en amont, en particulier sur l'installation par le réseau et la gestion du parc, et accompagner les administrations qui adoptent Sécurix, du premier pilote jusqu'au déploiement.
Sécurix est publié sous licence MIT. Il reste en alpha, et ses développeurs ne proposent pas encore de support. Nous pouvons en conduire un pilote avec vous.
Le bureau KDE Plasma de Bureautix.
NixWall
NixWall est un pare-feu développé par nos équipes sur NixOS. Il est entièrement libre, sous licence AGPL-3.0, et son code est public sur GitHub.
L'objectif est un pare-feu reproductible. Toute sa configuration tient dans des fichiers, et deux machines construites à partir des mêmes fichiers sont identiques. NixOS garde chaque état précédent du système, et une modification qui coupe le réseau s'annule en revenant à la génération d'avant.
NixWall profite aussi de nixpkgs, le dépôt présenté plus haut. Les logiciels qu'il utilise y sont mis à jour en continu.
Le projet est en alpha et n'est pas encore prêt pour la production. À terme, NixWall se pilotera depuis une interface web, qui passera par son API pour modifier la configuration.
Installer et configurer NixWall
NixWall s'installe depuis une image ISO, sur une machine dédiée ou dans une machine virtuelle.
L'installation
L'image ISO démarre sur un écran qui décrit les étapes. L'administrateur repère les disques et les interfaces réseau, adapte deux fichiers, disko.nix pour le partitionnement et config.toml pour le réseau et les règles, puis lance nixwall-install. Au redémarrage, le pare-feu applique la configuration décrite dans ces fichiers.
Les règles dans un fichier TOML
Zones, adresses, DHCP et règles de filtrage se décrivent dans config.toml, un format lisible par un administrateur réseau qui ne connaît pas Nix. NixWall traduit ce fichier en configuration NixOS. Les rôles restent séparés. L'administrateur modifie les règles, et les développeurs font évoluer les modules NixOS sans toucher à ce fichier. Une erreur dans un fichier TOML se repère à la relecture, sans lire de code Nix. L'API de NixWall lit et modifie ce même fichier.
Nous développons NixWall activement, en interne, et publions chaque version sur GitHub. Les contributions sont les bienvenues, qu'il s'agisse de code, de tests, de documentation ou de signalements de bugs.
Questions fréquentes
Faut-il réécrire toute notre infrastructure ?
Non. NixOS peut arriver serveur par serveur, en commençant par un service isolé. Les autres machines restent sous Debian ou Ubuntu.
NixOS convient-il à la production ?
Oui. Une version stable sort tous les six mois, en mai et en novembre, et reçoit des correctifs de sécurité pendant sept mois.
Pouvez-vous déployer Sécurix ou Bureautix ?
Oui, sous forme de pilote, car ces deux configurations de la DINUM sont encore en alpha.
Un premier échange d'une heureEn visio, avec un ingénieur. Vous présentez votre contexte, vos outils et vos contraintes, et nous vous montrons les logiciels concernés en fonctionnement.
Un audit ou un cadrageDe 2 à 5 jours selon le périmètre. Vous recevez un rapport, un plan d'action et un devis. Le rapport vous appartient, quelle que soit la suite.
Le projet, puis le suiviMigration, installation ou développement, par étapes validées avec vous. Ensuite, support, maintenance ou infogérance, au niveau que vous choisissez.