Ci sono differenze notevoli tra le LXC (container Linux) e le jail di FreeBSD in termini di sicurezza, stabilità e prestazioni?
A prima vista, entrambi gli approcci sembrano molto simili.
Ci sono differenze notevoli tra le LXC (container Linux) e le jail di FreeBSD in termini di sicurezza, stabilità e prestazioni?
A prima vista, entrambi gli approcci sembrano molto simili.
Risposte:
Indipendentemente dal nome di fantasia usato qui, entrambi sono soluzioni a un problema specifico: una soluzione di segregazione migliore del chroot Unix classico . Virtualizzazione a livello di sistema operativo, container, zone o persino "chroot with steroids" sono nomi o titoli commerciali che definiscono lo stesso concetto di separazione dello spazio utente, ma con caratteristiche diverse.
Chroot fu introdotto il 18 marzo 1982, mesi prima del rilascio di 4.2 BSD , come strumento per testare la sua installazione e costruire sistema, ma oggi ha ancora i suoi difetti. Poiché il primo obiettivo di chroot era solo quello di fornire un percorso newroot , sono stati scoperti altri aspetti del sistema che dovevano essere isolati o controllati (rete, vista del processo, throughput I / O). È qui che sono comparsi i primi contenitori (virtualizzazione a livello di utente).
Entrambe le tecnologie (FreeBSD Jails e LXC) utilizzano l'isolamento dello spazio utente per fornire un altro livello di sicurezza. Questa compartimentazione assicurerà che un determinato processo comunicherà solo con altri processi nello stesso contenitore sullo stesso host e, se si utilizza qualsiasi risorsa di rete per ottenere una comunicazione "mondo esterno", tutto verrà inoltrato all'interfaccia / canale assegnato a questo contenitore ha.
Jail di FreeBSD:
allow.mount.zfs
per ottenere più potenza e altre variabili come children.max
definiscono max jail children.vnet
, consentendo a ciascuna jail di avere il proprio stack di rete, interfacce, tabelle di indirizzamento e routing;nullfs
per aiutare a collegare le cartelle a quelle che si trovano sul server reale all'interno di una jail;sysctl
). security.jail.allow.*
i parametri limiteranno le azioni dell'utente root di quella jail.Linux Containers (LXC):
Docker non utilizza più lxc. Ora hanno una lib specifica chiamata libcontainer che gestisce direttamente l'integrazione con lo spazio dei nomi del kernel di basso livello e le funzionalità dei cgroups.
Nessuna delle due tecnologie è una panacea della sicurezza, ma entrambe sono dei modi piuttosto validi per isolare un ambiente che non richiede la virtualizzazione completa a causa dell'infrastruttura dei sistemi operativi misti. La sicurezza arriverà dopo molta lettura della documentazione e l'implementazione di parametri sintonizzabili del kernel, MAC e isolamenti che quei virt a livello di sistema operativo ti offrono.
Guarda anche:
root
(e quindi situati nella posizione dell'intero sistema per i contenitori).