Ceci est indiqué dans la page de manuel de systemd-nspawn
Notez que même si ces précautions de sécurité sont prises, systemd-nspawn ne convient pas aux configurations de conteneurs sécurisées. De nombreuses fonctionnalités de sécurité peuvent être contournées et sont donc principalement utiles pour éviter des modifications accidentelles du système hôte à partir du conteneur. L'utilisation prévue de ce programme est le débogage et les tests ainsi que la construction de packages, de distributions et de logiciels impliqués dans le démarrage et la gestion des systèmes.
Cette question a été posée par la suite sur la liste de diffusion en 2011 , mais la réponse semble être dépassée.
systemd-nspawn contient du code à exécuter en CLONE_NEWNET
utilisant l' --private-network
option maintenant. Cela semble couvrir le AF_UNIX
problème de l'espace de noms privé , et je suppose que les problèmes CAP_NET_RAW
et CAP_NET_BIND
mentionnés.
Quels problèmes restent à ce stade et que fait par exemple LXC en plus de ce qui systemd-nspawn
peut actuellement faire?
CLONE_NEWNET
: sockets abstraites - séparées, basées sur un système de fichiers - unies (sauf s'il n'y a pas de systèmes de fichiers partagés entre l'hôte et le conteneur). Cela rend pratique le démarrage des applications X à l'exception du réseau pour une application particulière (car Xorg ouvre à la fois le socket UNIX abstrait et le système de fichiers).Réponses:
LXC est un peu mieux car il peut exécuter des conteneurs en tant qu'utilisateurs non autorisés . Cela est possible avec systemd-nspawn, mais uniquement pour les scénarios où vous n'avez besoin que d'un seul utilisateur (au lieu de plusieurs), ce qui peut être difficile ou moins sécurisé pour les processus multiples dans des scénarios de conteneur. Si vous voulez savoir pourquoi docker, lxc et systemd-nspawn ne sont pas intrinsèquement un mécanisme de sécurité solide, lisez ceci: https://opensource.com/business/14/7/docker-security-selinux . Fondamentalement, les conteneurs ont toujours accès au noyau et tout exploit du noyau prend le contrôle de la machine entière. Sur un noyau monolithique comme Linux, les exploits du noyau ne sont pas rares.
la source