Perché usare lxc invece di chroot?


10

Un server Ubuntu ospita 3 app tutte su domini separati.
Ogni app ha i suoi sviluppatori.
Gli sviluppatori di app appartengono al gruppo "sftp" di linux.
chrootconsente l'accesso sftp con password per ogni sviluppatore di app.

/home/app1/prod
/home/app2/prod
/home/app3/prod

In sshd_config

Match Group sftp  
  PasswordAuthentication yes
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no

La nostra preoccupazione è una vulnerabilità della programmazione in un'app che causa problemi nelle altre 2 app.

Dovremmo usare il contenitore lxc invece di chroot? Perché? Il passaggio ai contenitori lxc sarà trasparente per gli sviluppatori di app?


2
L'unica cosa che chrootfa è cambiare la directory principale per un processo. Non offre isolamento o altro.
Zoredache,

Risposte:


14

Linux Containers (LXC) sono un metodo di virtualizzazione a livello di sistema operativo per l'esecuzione di più installazioni di server isolate (container) su un singolo host di controllo. LXC non fornisce una macchina virtuale, ma piuttosto un ambiente virtuale che ha il proprio processo e spazio di rete. È simile a un chroot, ma offre molto più isolamento.

I contenitori Linux hanno diverse caratteristiche / vantaggi:

vantaggi:

Migliore isolamento rispetto a un chroot (chroot jail). Spese generali basse. LXC utilizza risorse minime in termini di RAM e spazio sul disco rigido senza il sovraccarico di installare un SO guest in una macchina virtuale (VMWare / VirtualBox / KVM).

Applicazioni e servizi (server) vengono eseguiti a velocità nativa.

C'è supporto per i contenitori Linux in libvirt.

I contenitori Linux funzionano bene con btrfs.

Ma c'è anche un aspetto negativo:

I container Linux eseguono processi Linux su un kernel Linux. Ciò significa che è possibile eseguire Linux (contenitore Fedora su un host Ubuntu) ma non altri sistemi operativi (non BSD / OSX / Windows).

Non ci sono interfacce GUI (grafiche) per configurare o gestire i contenitori.

Vi è una scarsità di documentazione su come installare e configurare un contenitore. La configurazione di un contenitore richiede una conoscenza e abilità tecniche modeste (e un gran numero di pazienza).


1
quale kernel viene utilizzato all'interno di LXC? (quello dell'ospite o dell'ospite?)
Francesco,

4
Molti vantaggi e svantaggi confrontano LXC con la virtualizzazione completa, il che è irrilevante per la domanda posta e forse anche fuorviante.
Roger Dueck,

@Francesco, con LXC, (e container Linux in generale), esiste un solo kernel: il kernel host. Alcune eccezioni a questo sono, ad esempio, Docker in esecuzione su MacOS o Windows, in quanto utilizzano un kernel Linux in esecuzione in una macchina virtuale; comunque, tutti i container Linux su queste piattaforme usano ancora lo stesso kernel.
rabbia
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.