Vai al paragrafo

Cos'è SELinux?

Copia URL

Security Enhanced Linux (SELinux) è un'architettura di sicurezza per i sistemi Linux®, che offre agli amministratori un livello di controllo superiore sugli utenti autorizzati ad accedere al sistema. Originariamente sviluppato dall'Agenzia di sicurezza nazionale statunitense (NSA) come serie di patch per il kernel Linux, tale sistema di controllo utilizza i moduli di sicurezza Linux (LSM).  

SELinux è stato condiviso con la community open source nel 2000 e integrato nel kernel Linux upstream nel 2003.

Ottieni il massimo dall'ambiente operativo Linux

Leggi l'ebook per scoprire in che modo Red Hat Enterprise Linux permette di accelerare e ottimizzare la creazione, la distribuzione e la gestione delle applicazioni e dei carichi di lavoro.

SELinux definisce i controlli di accesso per le applicazioni, i processi e i file su un sistema. Si basa su controlli di sicurezza, ovvero una serie di regole che indicano a SELinux gli elementi a cui è possibile accedere o meno, in modo da applicare il criterio di accesso consentito. 

Quando un'applicazione o un processo, che prende il nome di soggetto, effettua una richiesta di accesso a un oggetto, ad esempio un file, SELinux consulta una cache dei vettori di accesso (AVC) in cui sono memorizzate le autorizzazioni per soggetti e oggetti.

Se, basandosi sulle autorizzazioni nella cache, non è possibile determinare l'accesso, SELinux invia la richiesta al server di sicurezza che verifica il contesto di sicurezza dell'app o del processo e quello del file. Il contesto di sicurezza applicato è quello disponibile nel database dei criteri di SELinux e, a questo punto, l'autorizzazione viene concessa o negata. 

Se l'autorizzazione è negata, in /var/log.messages viene registrato un messaggio "avc: denied".

Configurazione di SELinux 

Puoi configurare SELinux in vari modi per proteggere il sistema. I più comuni sono costituiti da criteri mirati e dalla sicurezza multilivello (MLS).

I criteri mirati costituiscono l'opzione predefinita, che copre una vasta gamma di processi, attività e servizi. La sicurezza multilivello può essere complessa e in genere viene utilizzata solamente dalle organizzazioni governative. 

Per determinare le applicazioni che il sistema è autorizzato a eseguire, puoi consultare il file /etc/sysconfig/selinux, che include una sezione in cui è specificato se SELinux è in modalità permissive, enforcing, o disabilitato, indicando anche i criteri caricati.

Etichettatura e applicazione del tipo di etichetta in SELinux 

L'assegnazione di etichette e l'applicazione del tipo di etichetta sono i due concetti cardine in SELinux.

SELinux opera come sistema di etichettatura, associando un'etichetta SELinux a ciascun file, processo e porta di un sistema. Le etichette costituiscono un metodo logico per raggruppare gli oggetti e vengono gestite dal kernel durante la fase di avvio.

Le etichette sono in formato utente:ruolo:tipo:livello (livello è facoltativo). Utente, ruolo e livello vengono utilizzati nelle implementazioni più avanzate di SELinux, ad esempio quelle che utilizzano la sicurezza multilivello. Per i criteri mirati, il tipo di etichetta è l'elemento imprescindibile. 

Sulla base dell'applicazione del tipo di etichetta, SELinux applica un criterio definito nel sistema. L'applicazione del tipo è la parte di un criterio SELinux che specifica se un processo in esecuzione con un determinato tipo può accedere a un file etichettato con un altrettanto tipo specifico.

Abilitazione di SELinux

Se nel tuo ambiente SELinux è stato disabilitato, puoi abilitarlo modificando /etc/selinux/config e impostando SELINUX=permissive. Dal momento che SELinux al momento non è abilitato, non è consigliabile impostare subito la modalità enforcing, perché probabilmente le etichette degli oggetti nel sistema non sono corrette e questo potrebbe impedirne l'avvio.  

Puoi imporre al sistema di riapplicare le etichette nel file system automaticamente, creando un file vuoto denominato .autorelabel nella directory radice e riavviando il sistema. Se nel sistema sono presenti troppi errori, devi eseguire un riavvio mentre è attiva la modalità permissive, al fine di completare correttamente la procedura di avvio. Terminata la riapplicazione di tutte le etichette, imposta SELinux sulla modalità enforcing tramite /etc/selinux/config, quindi riavvia il sistema o esegui setenforce 1. 

Gli amministratori di sistema che non hanno familiarità con la riga di comando possono utilizzare vari strumenti grafici per gestire SELinux. 

SELinux garantisce un ulteriore livello di sicurezza del sistema, integrato nelle distribuzioni di Linux, che dovrebbe rimanere sempre attivo per proteggere il sistema qualora venga compromesso.

Mentre i sistemi Linux e UNIX usano da sempre DAC, SELinux è un esempio di sistema MAC per Linux. 

Con il controllo DAC, i file e i processi hanno un proprietario. Un file può appartenere a un utente, a un gruppo o a qualsiasi altra entità. Gli utenti hanno la possibilità di modificare le autorizzazioni dei propri file.

Con il sistema DAC, l'utente root ha il controllo completo dell'accesso e, con questo tipo di privilegi, può accedere ai file di qualsiasi altro utente o eseguire qualunque altra operazione nel sistema. 

Invece nei sistemi di controllo MAC, come SELinux, l'accesso è gestito da criteri impostati a livello di amministratore. Anche se le impostazioni DAC della home directory vengono modificate, i criteri SELinux impostati per impedire ad altri utenti o processi di accedere alla directory garantiscono la protezione del sistema. 

I criteri SELinux consentono di configurare impostazioni specifiche per numerosi processi. Puoi modificare le impostazioni con SELinux in modo da limitare l'accesso fra utenti, file, directory e altri elementi.

Se in SELinux si verificano degli errori, generalmente indicano uno dei quattro problemi comuni riportati di seguito, che occorre risolvere:

  1. Le etichette sono sbagliate. Se l'etichettatura applicata non è corretta, puoi utilizzare gli strumenti disponibili per correggere le etichette.
  2. È necessario correggere un criterio. Potrebbe essere necessario comunicare a SELinux una modifica che hai apportato oppure correggere un determinato criterio. Per apportare la correzione puoi usare i moduli booleani o quelli dei criteri.
  3. Il criterio contiene un bug. Il criterio potrebbe presentare un bug che deve essere corretto.
  4. Si è verificata una violazione del sistema. Anche se SELinux può proteggere i tuoi sistemi in molti scenari, esiste comunque la possibilità che un sistema venga compromesso. Se sospetti una violazione, devi intervenire immediatamente.

Cosa sono i valori booleani?

I valori booleani sono impostazioni di tipo On/Off per le funzioni di SELinux. Esistono centinaia di impostazioni che consentono di attivare o disattivare le funzionalità di SELinux, e molte sono già predefinite. Per identificare i valori booleani già impostati nel sistema, puoi eseguire getsebool -a.

Red Hat Enterprise Linux è leader mondiale tra le piattaforme Linux open source. Consente di mitigare i rischi, applicare configurazioni e policy di sicurezza e ottimizzare le strategie per soddisfare i requisiti di conformità. 

I ruoli di sistema di Red Hat Enterprise Linux sono un insieme di ruoli Ansible® supportati che forniscono flussi di lavoro coerenti e semplificano l'esecuzione delle attività manuali. I ruoli di sistema supportano i team nell'automazione della sicurezza dei flussi di lavoro e nella manutenzione in modo scalabile, riducendo al minimo l'uso delle risorse e semplificando i requisiti di gestione e conformità. Con il ruolo di sistema SELinux è possibile automatizzare il deployment e la gestione di SELinux. Tra i vantaggi che offre:  

  • attivazione di SELinux attraverso le modalità enforcing o permissive per garantire controlli coerenti;
  • personalizzazione dei valori booleani, dei file context, delle porte e dei login in SELinux al fine di soddisfare i requisiti;
  • utilizzo del ruolo di sistema per riconciliare i file context su file o directory specifici.

Keep reading

Articolo

Che cos'è Linux

Linux è un sistema operativo open source formato da un kernel, ovvero il componente base del sistema operativo, e dagli strumenti, dalle app e dai servizi integrati con il kernel.

Articolo

Cos'è SELinux?

Security-Enhanced Linux (SELinux) è un'architettura di sicurezza per i sistemi Linux®, che offre agli amministratori un livello di controllo superiore sugli utenti autorizzati ad accedere al sistema.

Articolo

Cos'è il kernel Linux?

Il kernel Linux è il componente principale di un sistema operativo Linux e l'interfaccia primaria tra l'hardware di un sistema e i suoi processi.

Scopri di più su Linux

Prodotti

Una base stabile e versatile ideale per rilasciare nuove applicazioni, virtualizzare gli ambienti e ottenere un cloud ibrido più sicuro.

Risorse

Resoconto analitico

Per gli ambienti SAP, la migrazione non si limita affatto a Linux

Ebook

Estendi l'innovazione e l'efficienza operativa con Linux.

Continua a leggere

CHECKLIST

L'azienda tecnologica globale promuove l'utilizzo del 5G all'edge della rete

CHECKLIST

L'importanza del sistema operativo

CHECKLIST

Perché Red Hat Enterprise Linux è meglio di CentOS Stream per l'uso in produzione

CHECKLIST

4 modi con cui Red Hat e Nutanix risolvono le sfide dell'IT moderno

INFOGRAFICA

Red Hat Enterprise Linux su Microsoft Azure

SCHEDA INFORMATIVA

Guida alle sottoscrizioni Red Hat Enterprise Linux

SCHEDA TECNICA

Automazione e gestione con Red Hat Enterprise Linux

SCHEDA TECNICA

Red Hat Enterprise Linux per i carichi di lavoro all'edge

SCHEDA TECNICA

Passa da CentOS Linux a Red Hat Enterprise Linux

SCHEDA TECNICA

Red Hat Edge

SINTESI

Prestazioni di Red Hat Enterprise Linux

SINTESI

Sicurezza e conformità con Red Hat Enterprise Linux

SINTESI

Incrementa la sicurezza e la coerenza del cloud ibrido

SINTESI

Percorso per l'acquisizione di competenze per Red Hat Enterprise Linux

SINTESI

Incrementa prestazioni e agilità del database

SINTESI

Missione compiuta: edge computing nello spazio

PANORAMICA

Riduci i downtime di SAP HANA con la tecnologia Red Hat

PANORAMICA

Semplifica la transizione al cloud con Red Hat e Google Cloud

EBOOK

Nove motivi per provare Red Hat Enterprise Linux 9

EBOOK

Ottieni il massimo dall'ambiente operativo Linux

EBOOK

Red Hat Enterprise Linux e Microsoft Azure

EBOOK

Un framework IT efficiente come base per il successo dell'impresa moderna

EBOOK

La standardizzazione come strategia per migliorare l'efficienza IT

EBOOK

Apri le porte a nuove possibilità di innovazione e crescita nelle tre aree chiave dell'IT, con Red Hat