Jump to section

Che cos'è SELinux (Security-Enhanced Linux)?

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. Tale sistema di controllo, che utilizza i moduli di sicurezza Linux (LSM, Linux Security Modules), è stato originariamente sviluppato dall'Agenzia di sicurezza nazionale (NSA) statunitense come serie di patch per il kernel Linux.  

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

SELinux definisce i controlli degli accessi alle applicazioni, ai processi e ai file di un sistema tramite le policy di sicurezza: si tratta di un insieme di regole che indicano a quali elementi è consentito accedere in base a una data policy. 

Quando un'applicazione o un processo, ovvero un soggetto, richiede di accedere a un oggetto (es. un file), SELinux verifica dove sono state salvate le autorizzazioni per i soggetti e gli oggetti tramite un'Access Vector Cache (AVC).

Se non è in grado di prendere una decisione sull'accesso in base alle autorizzazioni salvate nella cache, SELinux invia la richiesta al server di sicurezza, che verifica il file e il contesto di sicurezza dell'app o del processo. Tale contesto viene applicato a partire dal database delle policy di SELinux, e l'autorizzazione viene quindi concessa o negata. 

In quest'ultimo caso, in /var/log.messages comparirà un messaggio "avc: denied".

Come configurare SELinux 

Per proteggere il sistema è possibile scegliere tra diverse opzioni di configurazione di SELinux; le più comuni sono la policy mirata e la sicurezza multilivello (MLS).

La policy mirata è l'opzione predefinita e si può utilizzare con numerosi processi, attività e servizi, mentre l'MLS può essere molto complicata e solitamente viene impiegata solo dalle organizzazioni governative. 

È possibile stabilire quale sia la soluzione migliore per un sistema consultando /etc/sysconfig/selinux: questo file include una sezione che indica se SELinux è disattivato oppure impostato sulla modalità enforcing o permissive, e quale policy deve essere caricata.

Etichettatura e type enforcement in SELinux 

L'etichettatura e il type enforcement sono i concetti più importanti in SELinux.

SELinux funziona come un sistema di etichettatura: ciò significa che tutti i file, i processi e le porte di un sistema sono associati a un'etichetta SELinux. Le etichette sono un modo logico per raggruppare gli elementi, e vengono gestite dal kernel durante la fase di avvio.

Seguono il formato user:role:type:level ("level" è opzionale). "User", "role" e "level" vengono utilizzati nelle implementazioni più avanzate di SELinux, come l'MLS, mentre il "type" dell'etichetta è l'elemento più importante per la policy mirata. 

SELinux adopera il type enforcement per applicare una policy definita sul sistema. Il type enforcement è la componente di una policy SELinux che stabilisce se un processo in esecuzione di un tipo specifico può accedere a un file etichettato di un tipo specifico.

Come attivare SELinux

Se SELinux è stato disattivato nel tuo ambiente, è possibile abilitarlo modificando /etc/selinux/config e selezionando l'opzione SELINUX=permissive. Quando riattiviamo SELinux, è preferibile non selezionare subito la modalità enforcing, poiché è probabile che il sistema applichi le etichette in modo errato, con conseguenti problemi all'avvio del sistema.  

Per forzare la rietichettatura automatica del filesystem da parte del sistema, è necessario creare nella directory principale un file vuoto denominato .autorelabel e poi eseguire il riavvio. Se il sistema presenta troppi errori, il riavvio deve essere effettuato in modalità permissive affinché vada a buon fine. Una volta che la rietichettatura è stata completata, bisogna impostare SELinux in modalità enforcing con /etc/selinux/config e procedere con il riavvio, oppure si deve eseguire setenforce 1. 

Nel caso in cui un amministratore di sistema non abbia molta familiarità con la riga di comando, sono disponibili alcuni strumenti grafici per la gestione di SELinux. 

SELinux offre un livello di sicurezza aggiuntivo per il sistema, già integrato nelle distribuzioni Linux. È consigliabile mantenerlo attivo, in modo che possa proteggere il sistema in caso di compromissione.

Quanto conosci Linux?

Testa le tue conoscenze e ottieni i badge Legends of Linux trivia.

In passato, i sistemi Linux e UNIX hanno utilizzato il DAC, ma SELinux è un esempio di un sistema MAC per Linux. 

Con il DAC, i file e i processi hanno dei proprietari. Un utente, un gruppo o un qualunque altro soggetto può possedere un file e modificarne le autorizzazioni.

Con un sistema DAC, l'utente root ha il controllo totale degli accessi. L'accesso root consente di accedere ai file di qualunque altro utente o eseguire qualsiasi tipo di azione sul sistema. 

Nei sistemi MAC come SELinux, invece, è impostata una policy amministrativa relativa all'accesso. Anche se le impostazioni DAC nella home directory vengono modificate, è possibile proteggere il sistema attivando una policy SELinux che impedisca ad altri utenti o processi di accedere alla directory. 

Le policy SELinux consentono di essere specifici e trattare un ampio numero di processi. Con SELinux si possono implementare modifiche per limitare l'accesso tra utenti, file, directory e altro ancora.

La segnalazione di un errore in SELinux indica la presenza di un problema da risolvere. Le quattro tipologie più comuni sono le seguenti:

  1. Le etichette non sono corrette. In caso di etichettatura errata, è possibile utilizzare gli strumenti di correzione appositi.
  2. Una policy deve essere modificata. Ciò può significare che bisogna informare SELinux di una modifica effettuata, oppure che è necessario correggere una policy utilizzando i moduli specifici o i valori booleani.
  3. La policy presenta un bug. Potrebbe trattarsi di un bug da correggere all'interno della policy.
  4. Si è verificata una violazione del sistema. Malgrado SELinux sia in grado di offrire protezione in molte situazioni, può comunque succedere che un sistema venga compromesso. In caso di sospetta violazione è necessario prendere immediatamente provvedimenti.

Cosa sono i valori booleani?

I valori booleani sono impostazioni che consentono di attivare e disattivare le funzioni in SELinux. Esistono centinaia di impostazioni per abilitare e disabilitare le funzionalità di SELinux, molte delle quali sono già predefinite. Per scoprire i valori booleani preimpostati nel sistema è necessario eseguire getsebool -a.

Sicurezza e compliance secondo Red Hat: obiettivi in primo piano

Le soluzioni open source di Red Hat offrono strumenti e piattaforme per superare le problematiche relative a sicurezza e compliance, grazie alle capacità di sicurezza integrate. Guarda il video per sapere di più. (Sottotitoli in italiano disponibili.)

Red Hat Enterprise Linux è la piattaforma Linux open source leader mondiale, che consente di mitigare i rischi, applicare configurazioni e policy di sicurezza e ottimizzare la tua strategia 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

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

CHECKLIST

5 modi per rinnovare l'ambiente SAP con Red Hat e AWS

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

EBOOK

Le potenzialità di Red Hat Enterprise Linux

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

EBOOK

Come gestire gli ambienti Linux con tecniche e strumenti moderni