Sì, SELinux rende Red Hat (e qualsiasi altra distribuzione Linux che lo utilizza effettivamente) più sicura, supponendo che sia effettivamente in uso.
SELinux implementa il controllo di accesso obbligatorio . Le normali autorizzazioni Unix, ACL, ecc. Implementano un controllo di accesso discrezionale . I due si completano a vicenda.
Per funzionare, SELinux richiede una politica, che definisce quali azioni sul sistema possono essere consentite. Sebbene sia possibile creare da zero un intero criterio di sistema, la maggior parte delle distribuzioni Linux distribuisce un criterio basato sulla cosiddetta politica di riferimento . Ciò significa, tra l'altro, che la configurazione di SELinux tra le distribuzioni sarà molto simile. (La maggior parte delle distribuzioni Linux rende disponibile la politica di riferimento SELinux nei loro repository di pacchetti, anche se potrebbe non essere installata per impostazione predefinita.)
SELinux funziona limitando utenti e processi per eseguire solo le azioni consentite nella politica. Per impostazione predefinita, la politica è di negare, quindi se la politica non consente esplicitamente un'azione, ciò non accade. Questo è il motivo per cui così spesso ti trovi nei guai con SELinux che vieta qualcosa che stai cercando di fare.
Sul lato positivo, questo impedisce anche agli exploit, anche agli exploit di 0 giorni, di sfuggire di mano. Ad esempio, se il tuo server Web (Apache) viene sfruttato, il danno è limitato solo alle cose a cui Apache può accedere. Non sarebbe in grado di leggere il tuo /etc/shadow
file, ad esempio, anche con un exploit root remoto. Mentre le autorizzazioni Unix (DAC) consentono a root di leggere il file, SELinux (MAC) non consente al processo compromesso di uscire dai limiti.
Il grande problema è che ci deve essere un modulo di politica SELinux caricato per il servizio. Se installi un servizio sulla tua scatola che non include un modulo di politica SELinux, funzionerà in modo incompleto e sarà in grado di fare quello che vuole. SELinux non si applica ad esso.
Un'altra cosa che dovresti sapere riguarda i booleani . Questi parametri sintonizzabili sono forniti dalle politiche di SELinux per personalizzarli per particolari installazioni e consentire o negare l'accesso in base alle esigenze di configurazione locali. Ad esempio, puoi dare ad Apache l'accesso alle condivisioni Samba, abilitare Samba a condividere le home directory degli utenti e molte altre cose potenzialmente utili che sono necessarie per alcune configurazioni ma non per altre.
La migliore guida a SELinux che ho visto attualmente è la Guida dell'utente di Linux ottimizzata per la sicurezza di Red Hat . Ti aiuterà a metterti in funzione rapidamente e a compilare i dettagli di sfondo di ciò che sta succedendo. Include anche una guida completa alla risoluzione dei problemi che ti aiuta a far funzionare il tuo processo con SELinux.
È utile?
SELinux protegge dai processi (e dagli utenti, se hai limitato i tuoi utenti) facendo cose inaspettate. Limita fortemente il danno che un exploit remoto può fare. Se non hai mai subito un compromesso remoto, sei (1) fortunato e (2) probabilmente nuovo. Se hai lavorato un compromesso remoto, certamente non vogliono che accada mai più.
Non è così utile in un ambiente domestico , a meno che tu non stia eseguendo servizi rivolti a Internet a casa (e alcune persone lo fanno). In tal caso, si applica tutto quanto sopra indicato.
SELinux potrebbe essere l'ultima cosa che si frappone tra i tuoi dati e un attaccante con un exploit di 0 giorni che lo vuole davvero. Se puoi usarlo, perché non dovresti?