15.3 Introduzione

Dato che l'amministrazione di sistema è un compito difficile e gravoso, sono stati sviluppati molti strumenti potenti per rendere la vita più semplice per l'amministratore. Questi strumenti forniscono aiuti di vario genere nel modo in cui i sistemi sono installati, configurati e quindi manutenuti. Parte dei compiti che un amministratore dovrebbe fare riguarda la corretta configurazione nell'ambito della sicurezza di un sistema, in modo tale da continuare a servire il suo vero intento, senza permettere violazioni di sistema.

Uno degli strumenti che possono essere usati per migliorare la sicurezza di FreeBSD sono le jail. Le jail furono introdotte con FreeBSD 4.X da Poul-Henning Kamp , ma furono notevolmente migliorate in FreeBSD 5.X per renderle un sottosistema potente e flessibile. Il loro sviluppo continua per migliorare la loro utilità, le prestazioni e la sicurezza.

15.3.1 Cosa è una Jail

I sistemi operativi BSD-like hanno avuto il chroot(2) dai tempi di 4.2BSD. L'utility chroot(2) può essere usata per cambiare la directory root di un insieme di processi, creando un ambiente sicuro e separato dal resto del sistema. I processi creati nell'ambiente chroot non possono accedere a file o risorse fuori da questo. Per questa ragione, compromettere un servizio che viene eseguito in un ambiente chroot non dovrebbe permettere all'attaccante di compromettere l'intero sistema. L'utility chroot(2) è utile per compiti semplici, che non richiedono molta flessibilità o caratteristiche complesse e avanzate. Tuttavia, dall'inizio del concetto di chroot, sono stati trovati diversi modi per uscire da un ambiente chroot, e, benchè siano stati fixati nelle versioni moderne del kernel di FreeBSD, è diventato chiaro che chroot(2) non era la soluzione ideale per rendere sicuri i servizi. Un nuovo sottosistema doveva essere implementato.

Queste sono alcune delle ragioni principali per cui le jail sono state sviluppate.

Le jail migliorano il concetto dell'ambiente chroot(2) tradizionale, in molti modi. In un ambiente chroot(2) tradizionale, i processi sono limitati solo nella porzione di file system che possono accedere. Il resto delle risorse di sistema (come l'insieme di utenti di sistema, i processi in esecuzione, o il sotto-sistema di rete) sono condivise dai processi in chroot e dai processi del sistema host (quelli non inseriti in un ambiente chroot). Le jail espandono questo modello virtualizzando non solo l'accesso al file system, ma anche l'insieme di utenti, il sotto-sistema di rete del kernel di FreeBSD e alcune altre cose. Un più completo insieme di controlli disponibili per calibrare l'accesso ad un ambiente jail è descritto nella Sezione 15.5.

Una jail è caratterizzata da quattro elementi:

Oltre a queste caratteristiche, le jail possono avere il loro insieme di utenti ed il loro utente root. Naturalmente, i poteri dell'utente root sono limitati all'interno dell'ambiente jail e, dal punto di vista del sistema host, l'utente root della jail non è il superuser. Inoltre, l'utente root di una jail non potrà eseguire operazioni critiche sul sistema al di fuori del suo ambiente jail(8). Altre informazioni sui poteri e sulle restrizioni dell'utente root saranno discusse nella Sezione 15.5.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.