Un serveur Ubuntu héberge 3 applications, toutes sur des domaines distincts.
Chaque application a ses propres développeurs.
Les développeurs d'applications appartiennent au groupe linux "sftp".
chroot
permet un accès sftp par mot de passe pour chaque développeur d'application.
/home/app1/prod
/home/app2/prod
/home/app3/prod
Dans sshd_config
Match Group sftp
PasswordAuthentication yes
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Notre préoccupation est une vulnérabilité de programmation dans une application causant des problèmes dans les 2 autres applications.
Faut-il utiliser le conteneur lxc au lieu de chroot? Pourquoi? La modification des conteneurs lxc sera-t-elle transparente pour les développeurs d'applications?
chroot
faire est de changer le répertoire racine d'un processus. Il n'offre aucun isolement ni rien d'autre.Réponses:
Les conteneurs Linux (LXC) sont une méthode de virtualisation au niveau du système d'exploitation pour exécuter plusieurs installations de serveurs isolés (conteneurs) sur un seul hôte de contrôle. LXC ne fournit pas de machine virtuelle, mais fournit plutôt un environnement virtuel qui a son propre espace de processus et de réseau. Il est similaire à un chroot, mais offre beaucoup plus d'isolement.
Les conteneurs Linux ont plusieurs fonctionnalités / avantages:
Avantages:
Meilleur isolement par rapport à un chroot (prison chroot). Frais généraux faibles. LXC utilise des ressources minimales en termes de RAM et d'espace sur le disque dur sans avoir à installer un OS invité sur une machine virtuelle (VMWare / VirtualBox / KVM).
Les applications et services (serveurs) fonctionnent à la vitesse native.
Il existe un support pour les conteneurs Linux dans libvirt.
Les conteneurs Linux fonctionnent bien avec btrfs.
Mais il y a aussi un inconvénient:
Les conteneurs Linux exécutent des processus Linux sur un noyau Linux. Cela signifie que vous pouvez exécuter Linux (conteneur Fedora sur un hôte Ubuntu) mais pas d'autres systèmes d'exploitation (pas BSD / OSX / Windows).
Il n'y a pas d'interface graphique (graphique) pour configurer ou gérer les conteneurs.
Il y a peu de documentation sur la façon d'installer et de configurer un conteneur. La configuration d'un conteneur nécessite une connaissance et des compétences techniques modestes (et un gros grain de patience).
la source