Confini di sicurezza di Docker e LXC per servizi domestici privilegiati

Eva Wong è la redattrice tecnica e appassionata di tecnologia di ZimaSpace. Geek da sempre, appassionata di homelab e software open source, è specializzata nel tradurre concetti tecnici complessi in guide pratiche. Eva crede che l’hosting autonomo debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, aiuta la community a comprendere meglio le configurazioni hardware, dalla costruzione del primo NAS alla padronanza dei container Docker.

Docker è la scelta predefinita più sicura quando un servizio domestico privilegiato può restare una singola applicazione dichiarata, con mount limitati. LXC è più lineare quando serve davvero un piccolo sistema Linux, ma nessuna delle due soluzioni crea un confine di kernel separato.

La questione decisiva non è quale nome sembri indicare un maggiore isolamento. Entrambe le soluzioni si basano sul contenimento tramite il kernel dell’host. Confronta i privilegi effettivamente concessi, i dispositivi e i file esposti, l’unità da aggiornare e ripristinare e le conseguenze di un’evasione. Se l’esposizione stessa del kernel condiviso è inaccettabile, smetti di confrontare Docker e LXC e usa una VM o un host separato.

Accetta il confine del kernel condiviso prima di confrontare le funzionalità

Docker normalmente raccoglie un’applicazione e le sue dipendenze in un pacchetto; LXC offre uno user space Linux più completo, con init, account, pacchetti e servizi di sistema. Questa differenza operativa non fornisce a LXC un kernel guest indipendente.

La ricerca sull’isolamento dei container Linux descrive i meccanismi di namespace e di policy come un insieme frammentario, la cui semantica può essere difficile da verificare. Questo limite dell’isolamento con kernel condiviso riguarda entrambe le soluzioni e impedisce di considerare una delle due come risposta quando è obbligatoria la separazione del kernel.

Considerali entrambi solo per carichi di lavoro affidabili o circoscritti. Sposta il codice esposto a Internet, le immagini sconosciute o l’automazione dalle conseguenze gravi in una VM, se un’eventuale compromissione non deve raggiungere direttamente il kernel dell’host.

Lascia che i privilegi richiesti determinino la scelta predefinita

Docker resta una scelta interessante quando il servizio richiede poche capability esplicite, configurazione in sola lettura e uno o due percorsi persistenti. La definizione Compose può rendere visibili queste eccezioni durante la revisione.

LXC è adatto ai servizi che si aspettano un sistema Linux convenzionale, più demoni, un gestore di pacchetti o una rete stabile a livello di sistema. LXC non privilegiato mantiene un’utile mappatura degli UID, ma la modalità privilegiata, il nesting e i bind mount estesi ne riducono il vantaggio.

Conta le eccezioni anziché limitarti a controllare una casella per i privilegi. Se una delle due soluzioni richiede la rete dell’host, il socket di gestione dei container, mount di sistema scrivibili, accesso a tutti i dispositivi o un profilo senza restrizioni, riprogetta il percorso di accesso oppure abbandona il livello con kernel condiviso.

L’accesso ai dispositivi e allo storage determina il raggio d’impatto

Un coordinatore USB, un nodo GPU per il rendering, un'interfaccia UPS o una directory multimediale dovrebbero essere esposti nel modo più circoscritto consentito dal servizio. Percorsi dei dispositivi stabili, mount in sola lettura e proprietà UID/GID esplicite sono misure di contenimento, oltre che impostazioni di praticità.

Un resoconto recente di una distribuzione Proxmox mostra che LXC non privilegiati possono isolare i servizi basati su Docker in unità di ripristino separate, condividendo comunque il kernel dell'host e lo stack di archiviazione. Questo modello LXC con raggio d'impatto ridotto è utile solo se le eccezioni per l'annidamento e i driver di archiviazione sono documentate.

Preferisci Docker quando una singola app richiede un unico confine dati ridotto. Preferisci LXC quando più servizi di sistema devono stare insieme. Rifiuta entrambe le configurazioni se una singola compromissione consente l'accesso in scrittura ai backup, al controllo dell'hypervisor o ai dati di altre persone della famiglia.

Confronta l'unità che aggiorni e ripristini

Il rollback di Docker consiste normalmente nel ripristinare la revisione precedente di Compose e l'immagine, insieme a dati coerenti con l'applicazione. Il rollback di LXC può ripristinare un intero ambiente utente: è comodo, ma può anche riportare in vita pacchetti e credenziali obsoleti, oltre a modifiche manuali non documentate.

Ricrea ogni candidato su un host usa e getta. Per Docker, ripristina definizioni, segreti e volumi; per LXC, ricrea o ripristina il container e verifica lo stato dei pacchetti, della rete, dei dispositivi e dei mount. Un test riuscito con maggiore facilità è una prova più solida rispetto a un minor consumo di memoria a riposo.

Il passo successivo nella valutazione di ZimaSpace, più ampia, dei confini dei servizi VM, LXC e Docker è necessario quando è ancora in gioco un kernel indipendente.

Verdetto condizionale: scegli il confine più ristretto che contenga comunque i guasti

Scegli Docker per una singola applicazione affidabile e ben confezionata, i cui dispositivi, capacità, segreti e percorsi persistenti possano rimanere espliciti e ridotti al minimo.

Scegli LXC per un ambiente di servizi Linux affidabile che tragga un reale vantaggio da init, pacchetti, più daemon o rete a livello di sistema, mantenendolo non privilegiato ove possibile.

Scegli nessuna delle due opzioni quando il carico di lavoro richiede un ampio controllo sull'host, gestisce input ostili con conseguenze gravi o deve resistere alla compromissione del kernel dell'host. A quel punto una VM o una macchina separata non sono eccessi di progettazione: sono il confine di sicurezza mancante.

Confronto tra prodotti

Altre letture

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.