Ma question concerne la sécurité d'un conteneur LXC.
Si j'exécute plusieurs conteneurs sur ma boîte et que je donne aux utilisateurs un accès ssh distinct à leur conteneur appartenant, l'un de ces conteneurs peut-il pirater les autres conteneurs de cette boîte ou même la machine hôte?
Où sont les limites de sécurité des conteneurs LXC?
Réponses:
Comme je l'ai vu à propos de LXC, il stocke les informations sur les conteneurs et (avec le magasin de sauvegarde par défaut) les systèmes de fichiers racine sous / var / lib / lxc. Les modèles de création de conteneurs ont également tendance à stocker les informations de distribution mises en cache sous / var / cache / lxc.
Donc, généralement, l'accès au système de fichiers racine n'est autorisé qu'à l'administrateur, sauf en cas de mauvaise utilisation ou de mauvais profils utilisateur de configuration lors de leur création.
Mais les développeurs Ubuntu sont peut-être déjà arrivés à ce point et ils ont fourni une solution sécurisée avec l'aide d'AppArmor.
LXC est livré avec un profil Apparmor destiné à protéger l'hôte contre les abus de privilèges accidentels à l'intérieur du conteneur. Par exemple, le conteneur ne pourra pas écrire dans
/proc/sysrq-trigger
ou vers la plupart des/sys
fichiers.Le profil usr.bin.lxc-start est entré en exécutant lxc-start. Ce profil empêche principalement lxc-start de monter de nouveaux systèmes de fichiers en dehors du système de fichiers racine du conteneur. Avant d'exécuter l'initialisation du conteneur, LXC demande un basculement vers le profil du conteneur. Par défaut, ce profil est la stratégie lxc-container-default qui est définie dans
/etc/apparmor.d/lxc/lxc-default
. Ce profil empêche le conteneur d'accéder à de nombreux chemins dangereux et de monter la plupart des systèmes de fichiers.Si vous constatez que lxc-start échoue en raison d'un accès légitime refusé par sa stratégie Apparmor, vous pouvez désactiver le profil lxc-start en procédant comme suit:
Cela rendra lxc-start non confiné, mais continuera à confiner le conteneur lui-même. Si vous souhaitez également désactiver le confinement du conteneur, en plus de désactiver le
usr.bin.lxc-start
profil, vous devez ajouter:dans le fichier de configuration du conteneur. Si vous souhaitez exécuter un conteneur dans un profil personnalisé, vous pouvez créer un nouveau profil sous
/etc/apparmor.d/lxc/
. Son nom doit commencer par lxc- pour que lxc-start puisse passer à ce profil. Après avoir créé la stratégie, chargez-la en utilisant:Le profil sera automatiquement chargé après un redémarrage, car il provient du fichier
/etc/apparmor.d/lxc-containers
. Enfin, pour que le conteneur CN utilise cette nouvellelxc-CN-profile
, ajoutez la ligne suivante à son fichier de configuration:lxc-execute
n'entre pas dans un profil d'Apparmor, mais le conteneur qu'il génère sera confiné.la source
dmesg
on peut appeler depuis n'importe quel conteneur (au moins dans la configuration par défaut). J'ai bien peur que ce ne soit pas le seul risque pour la sécurité ...