Pourquoi utiliser lxc au lieu de chroot?

10

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".
chrootpermet 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?

csi
la source
2
La seule chose à chrootfaire est de changer le répertoire racine d'un processus. Il n'offre aucun isolement ni rien d'autre.
Zoredache

Réponses:

14

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).

Abhishek Anand Amralkar
la source
1
quel noyau est utilisé dans le LXC? (celui de l'hôte ou celui de l'invité?)
Francesco
4
De nombreux avantages et inconvénients comparent LXC à la virtualisation complète, ce qui n'est pas pertinent pour la question posée, et peut-être même trompeur.
Roger Dueck
@Francesco, avec LXC, (et les conteneurs Linux en général), il n'y a qu'un seul noyau: le noyau hôte. Quelques exceptions à cela sont par exemple, Docker fonctionnant sur MacOS ou Windows, car ils utilisent un noyau Linux fonctionnant sur une machine virtuelle; cependant, tous les conteneurs Linux sur ces plateformes utilisent toujours le même noyau.
rage le