Amministrazione di SELinux in Oracle Linux
Descrive SELinux e fornisce indicazioni per l'amministrazione di SELinux in Oracle Linux.
La sicurezza Linux tradizionale si basa su un criterio DAC (Discretionary Access Control). Nel modello DAC di sicurezza del sistema, l'accesso a risorse come file e processi si basa esclusivamente sull'identità e sulla proprietà dell'utente. Se il malware o il software rotto è presente sul sistema, può fare qualsiasi cosa con i file e le risorse che l'utente che ha avviato il processo ha l'autorizzazione a fare. Se l'utente è root o l'applicazione è in esecuzione con privilegi elevati (setuid o da setgid a root), il processo dispone del controllo dell'accesso root sull'intero file system.
Per risolvere questo problema, la National Security Agency ha creato Security Enhanced Linux (SELinux) per fornire un maggiore livello di controllo su file, processi, utenti e applicazioni nel sistema operativo Linux. Il miglioramento di SELinux al kernel Linux implementa il criterio di controllo dell'accesso obbligatorio (MAC, Mandatory Access Control), che consente di definire un criterio di sicurezza che configura autorizzazioni granulari per tutti gli utenti, i programmi, i processi, i file e i dispositivi. Le decisioni relative al controllo dell'accesso del kernel si basano sulla sensibilità delle risorse dal punto di vista della sicurezza e non solo sull'identità utente autenticata.
Quando si verifica l'accesso relativo alla sicurezza, ad esempio quando un processo apre un file, SELinux intercetta il funzionamento nel kernel. Se una regola dei criteri MAC consente l'operazione, continua. In caso contrario, SELinux blocca l'operazione e restituisce un errore al processo. Il kernel controlla e applica le regole dei criteri DAC prima delle regole MAC, pertanto non controlla le regole dei criteri SELinux se le regole DAC hanno già negato l'accesso a una risorsa.
Descrizioni dei pacchetti SELinux
SELinux contiene diversi pacchetti, ciascuno dei quali contiene utility specifiche che è possibile utilizzare per amministrare SELinux su sistemi Oracle Linux. Alcuni pacchetti vengono installati per impostazione predefinita, mentre altri sono opzionali.
Nella tabella seguente sono elencati i pacchetti SELinux installati per impostazione predefinita con Oracle Linux.
|
Pacchetto |
Descrizione |
|---|---|
|
|
Fornisce utility quali |
|
|
Fornisce l'API utilizzata dalle applicazioni SELinux per ottenere e impostare contesti di sicurezza di processi e file e per ottenere decisioni sui criteri di sicurezza. |
|
|
Contiene associazioni Python per lo sviluppo di applicazioni SELinux. |
|
|
Fornisce il criterio di riferimento SELinux, che viene utilizzato come base per altri criteri, ad esempio il criterio di riferimento SELinux. |
|
|
Fornisce il criterio di destinazione SELinux, in cui gli oggetti esterni ai domini di destinazione vengono eseguiti in DAC. |
|
|
Fornisce le utility |
Nella tabella seguente sono elencati i pacchetti SELinux utili non installati per impostazione predefinita. Installare tutti i pacchetti richiesti utilizzando il comando dnf.
|
Pacchetto |
Descrizione |
|---|---|
|
|
Traduce i livelli di SELinux, ad esempio |
|
|
Fornisce utility Python per il funzionamento di SELinux, ad esempio |
|
|
Fornisce la utility sandbox per la creazione di sandbox SELinux per l'esecuzione di comandi in un dominio SELinux strettamente limitato. |
|
|
Fornisce un rigoroso criterio di sicurezza multilivello (MLS) in alternativa al criterio di destinazione SELinux. |
selinux-policy-doc
|
Fornisce pagine manuali per molti elementi dei criteri SELinux. |
|
|
Consente di visualizzare i messaggi |
|
|
Traduce i messaggi di negazione dell'accesso da SELinux in descrizioni dettagliate che è possibile visualizzare sulla riga di comando utilizzando il comando |
|
|
Fornisce la distribuzione di strumenti e librerie Tresys Technology SETools, che è possibile utilizzare per analizzare e interrogare i criteri, monitorare e segnalare i log di audit e gestire il contesto dei file. |
Per ulteriori informazioni, vedere SELinux Project Wiki per la documentazione della community e le pagine del manuale dei comandi selinux(8) e di altro tipo su SELinux.
Utility SELinux
Nella tabella seguente sono descritte le utility principali che è possibile utilizzare per amministrare SELinux e i pacchetti che li contengono.
|
Utility |
Pacchetto |
Descrizione |
|---|---|---|
|
|
|
Genera le regole del criterio |
|
|
|
Analizza i log di negazione per spiegare perché l'accesso è stato bloccato e consiglia le modifiche SELinux pertinenti. |
|
|
|
Visualizza le statistiche per la cache vettoriale di accesso SELinux (AVC). |
|
|
|
Modifica o rimuove la categoria di sicurezza per un file o un utente. |
|
|
|
Modifica il contesto SELinux di file e directory. |
|
|
|
Corregge il contesto di sicurezza per i file system. |
|
|
|
Segnala la modalità SELinux corrente. |
|
|
|
Riporta i valori booleani di SELinux. |
|
|
|
Carica un nuovo criterio SELinux nel kernel. |
|
|
|
Esegue una query sul criterio di sistema e visualizza il contesto di sicurezza predefinito associato al percorso del file. |
|
|
|
Reimposta il contesto di sicurezza su uno o più file. |
|
|
|
Daemon che controlla la creazione dei file e imposta il contesto file predefinito. |
|
|
|
Esegue un comando nel contesto specificato. |
|
|
|
Esegue un comando all'interno di una sandbox SELinux. |
|
|
|
Agisce come interfaccia utente al sistema |
|
|
|
Controlla i criteri SELinux. |
|
|
|
Visualizza il contesto SELinux da un file, da un programma o dall'input dell'utente. |
|
|
|
Confronta i criteri SELinux. |
|
|
|
Esegue query sui criteri SELinux. |
|
|
|
Visualizza tutti i contesti SELinux raggiungibili da un utente. |
|
|
|
Visualizza il contesto SELinux predefinito per un utente. |
|
|
|
Indica se SELinux è abilitato. |
|
|
|
Gestisce i criteri SELinux. |
|
|
|
Gestisce i moduli dei criteri SELinux. |
|
|
|
Visualizza le dipendenze tra i package dei criteri SELinux. |
|
|
|
Espande un pacchetto del modulo dei criteri SELinux. |
|
|
|
Collega i package del modulo criteri SELinux. |
|
|
|
Crea un package del modulo criteri SELinux. |
|
|
|
Esegue query sui criteri SELinux. |
|
|
|
Visualizza la modalità SELinux e il criterio SELinux in uso. |
|
|
|
Modifica la modalità SELinux. |
|
|
|
Imposta i valori booleani in SELinux. |
|
|
|
Imposta il contesto di sicurezza per uno o più file. |
Impostazione delle modalità SELinux
SELinux viene eseguito in modalità enforcing o permissive:
-
enforcing -
Il kernel nega l'accesso a utenti e programmi se non gli vengono concesse le autorizzazioni dalle regole dei criteri di sicurezza SELinux. Tutti i messaggi di negazione vengono registrati come negazioni AVC (Access Vector Cache). Questa è la modalità predefinita.
-
permissive -
Il kernel non applica le regole dei criteri di sicurezza, ma SELinux invia messaggi di negazione a un file di log. Ciò consente di vedere quali azioni verranno negate se SELinux è in esecuzione in modalità
enforcing. Utilizzare questa modalità per implementare SELinux in modo efficace in un sistema.
Per visualizzare la modalità SELinux corrente, eseguire il comando seguente:
getenforce
Per impostare la modalità corrente su enforcing, eseguire il comando seguente:
sudo setenforce enforcing
Per impostare la modalità corrente su permissive, eseguire il comando seguente:
sudo setenforce permissive
Il valore impostato per una modalità con setenforce non viene mantenuto tra i reboot. Per configurare la modalità SELinux predefinita, modificare il file di configurazione per SELinux, /etc/selinux/config e impostare il valore della direttiva SELINUX su enforcing o permissive.
Disabilitazione di SELinux
È possibile disabilitare completamente SELinux impostando il parametro kernel selinux su zero.
Oracle sconsiglia di disabilitare SELinux nei sistemi di produzione. Utilizzare invece la modalità permissive.
Installazione della documentazione dei criteri
SELinux è complesso, con molte opzioni per configurare l'accesso, utilizzando i criteri. È possibile ottenere informazioni dettagliate sui criteri disponibili dalle pagine del manuale fornite dal pacchetto selinux-policy-doc. Questo task mostra come accedere a queste informazioni.
La documentazione sui criteri contiene inoltre informazioni su utenti e ruoli. Ad esempio, è possibile leggere ulteriori informazioni sull'utente user_u senza privilegi di SELinux e sul ruolo user_r nella pagina del manuale user_selinux(8). Nella documentazione dei criteri vengono descritte le limitazioni applicabili a diversi contesti di sicurezza e le opzioni booleane disponibili per personalizzare il criterio per un ambiente.