Administration
Sécurité

Isolation avancée des services Linux avec systemd-nspawn

22 juillet 2025

2 min de lecture

systemd-nspawn1 est l'outil natif de systemd pour lancer des conteneurs Linux légers, offrant isolation et intégration système sans nécessiter de daemon supplémentaire. Ce guide fournit une démarche détaillée pour installer, configurer et sécuriser vos services dans des conteneurs systemd-nspawn. Pour les fondamentaux de systemd, consultez notre guide sur les services systemd.

Prérequis

Avant de commencer, assurez-vous d’avoir :

  • Un serveur Linux avec systemd ≥ 240
  • Accès root ou sudo
  • Le paquet systemd-container
  • Un espace dédié (/var/lib/machines)
sudo apt update
sudo apt install -y systemd-container debootstrap

Création d'un conteneur

1. Création du système de fichiers racine
sudo mkdir -p /var/lib/machines/webapp
sudo debootstrap --arch=amd64 bookworm /var/lib/machines/webapp http://deb.debian.org/debian

Cette commande télécharge et installe un système Debian minimal dans le répertoire spécifié.

2. Création du fichier container.nspawn

Créez le fichier /etc/systemd/nspawn/webapp.nspawn :

[Exec]
Boot=true
3. Démarrage du conteneur
sudo systemd-nspawn -D /var/lib/machines/webapp
Sécurisation avec capabilities
sudo systemd-nspawn -D /var/lib/machines/webapp --drop-capability=ALL
Configuration du réseau et du stockage
sudo systemd-nspawn -D /var/lib/machines/webapp --network-veth --bind=/data
Sauvegarde des données

Montez un volume externe pour les données :

sudo mount /dev/sdb1 /var/lib/machines/webapp/data
Gestion avec machinectl
# Lister les conteneurs
machinectl list

# Démarrer/arrêter un conteneur enregistré
machinectl start webapp
machinectl stop webapp

# Ouvrir un shell dans le conteneur
machinectl shell webapp

Comparaison avec d'autres solutions

Fonctionnalitésystemd-nspawnDockerLXC
Daemon externeNonOuiOui
Intégration systemdTotaleLimitéeTotale
Simplicité de configurationÉlevéeMoyenneMoyenne

Avantages de systemd-nspawn

  1. Intégration native : utilise les unités systemd2.
  2. Légèreté : pas de couche d’abstraction supplémentaire.
  3. Sécurité renforcée : isolation fine des namespaces.

Quand choisir une alternative ?

  • Docker : si vous avez besoin d’un écosystème riche (registries, Swarm).
  • LXC : pour des conteneurs lourds avec gestion complexe.

Conclusion

systemd-nspawn permet d’isoler efficacement vos services Linux, avec une configuration simple et une sécurité native, sans dépendre de solutions tierces.

Footnotes

  1. https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html

  2. https://www.freedesktop.org/software/systemd/man/systemd.html

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires