Fedora Silverblue

Publié par Edouard le

Ce billet vise à démystifier la version Silverblue de Fedora (ex Atomic Workstation), en abordant de manière rapide ses concepts.

Entre temps un excellent article (en anglais) est sorti chez FedoraMagazine.

Le site officiel : https://silverblue.fedoraproject.org/

Qu’est-ce que le projet Silverblue ?

L’équipe Silverblue chez Fedora tente de proposer une approche moderne pour une distribution plus robuste, plus sûre, tourner vers la conteneurisation.

Qu’est-ce que la conteneurisation ?

Il s’agit d’une solution permettant d’isoler plus fortement les programmes, et des les rendre plus indépendants.

Un programme tourne dans une enveloppe, appelé conteneur, embarquant le stricte nécessaire pour le bon fonctionnement de l’application.

Pour cela, le conteneur s’appuie sur des méthodes d’isolation et de sécurité proposées par le noyau Linux. Pour les connaisseurs, il s’agit d’une solution entre un chroot évolué et une machine virtuelle.

La solution de conteneurisation la plus connue étant Docker. Mais il en existe beaucoup d’autres, dont la plus part sont compatibles entres elles (du moins sur les images). Fedora met plutôt en avant podman, qui est transparent pour les habitués de Docker (podman run, podman pull etc). Il est bien sûr possible de basculer sur Docker si c’est souhaité.

Comment rendre le système plus robuste ?

En proposant un moyen d’être sûr que tout le monde dispose du même système. Ce dernier devient alors inaltérable (immutable en anglais).

Pour simplifier, la partie système, l’ensemble des outils bas niveau, n’est plus vraiment un ensemble de RPM, mais une image, c’est à dire un tout.

A chaque mise à jour, cette image est refaite sur les serveurs, et téléchargée sur votre machine.

Une arborescence spécifique permet tout de même de personnaliser cette image. Ajouter des logiciels, et de la configuration, est tout de même possible (heureusement).

Ce mécanisme d’image est géré via l’outil rpm-ostree.

La mise à jour de l’image sur votre machine se fait via flip/flop. C’est à dire que l’image en cours d’utilisation n’est jamais modifiée. Disons qu’il s’agit de la partition A. En cas de mise à jour, c’est une copie de A, appelée partition B, qui sera modifiée. Cette méthode est du coup très sûr, et permet l’atomicité des mises à jour (c’est à dire qu’en cas d’échec par ex, votre partition A n’a pas été modifiée). L’inconvénient c’est que pour activer la bascule vers la partition B, disposant des mises à jour, il faut redémarrer.

Comment rendre le système plus sûr ?

Via l’utilisation de conteneur.

Pour rappel, un conteneur est une isolation autour d’un programme, qui lui aussi est basé sur des images. Ces images de conteneurs contiennent le minimum nécessaire pour que l’application fonctionne.

Un conteneur, avec toutes les isolations misent en œuvre, dépend beaucoup moins du système sur lequel il tourne. Cela permet de rendre l’application plus indépendante des mises à jour du système par exemple. De plus un conteneur ne modifie rien sur ce système vu qu’il reste confiné dans son image, ce qui est un gage de sécurité.

En terme d’intégrité, c’est donc une bonne solution. Surtout que les conteneurs peuvent se voir restreindre en permission lors de leur exécution (via seccomp ou cgroup etc).

Le moteur de conteneur ici utilisé dans Silverblue est par défaut podman. Ce dernier est compatible avec les images OCI de Docker par ex, mais à l’énorme avantage de ne pas avoir besoin d’un démon qui tourne en permanence (et avec les droits root, le mode rootless étant encore bien expérimental), comme c’est le cas avec Docker.

En plus de podman, il est toujours possible comme sur n’importe quelle Fedora, d’utiliser des applications FlatPak.

Pour finir, un outil rendant encore plus facile la création et l’utilisation à la volée de conteneur est fournit, il s’agit de Toolbox.

Fedora dans cette histoire ?

Un système plus robuste, plus sûr, mais si cela devient trop lourd en ressources, ou trop complexe à utiliser, à quoi bon ?

C’est donc ici que l’excellent travail de l’équipe SilverBlue intervient.

Bien sûr, ce degré d’isolation pouvait déjà être atteint depuis des décennies, avec les chroot, jails ou autres mécanismes de virtualisation. Mais ce qui est bien nouveau ici, c’est le degré d’intégration, qui rend tout cela transparent pour l’utilisateur.

Fedora SilverBlue a encore sûrement un peu de chemin à faire, pour remplacer sa grande sœur historique. Mais déjà aujourd’hui, elle est pleinement utilisable au quotidien. Pourquoi ne pas faire l’essai ?


0 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *