Ci sono diversi modi in cui SELinux può operare. Questo è definito dalla policy di SELinux. In questa guida imparerai di più sulle policy di SELinux e su come impostare una policy in SELinux.
Panoramica delle policy di SELinux
Facciamo un rapido riassunto di SELinux e delle sue politiche. SELinux è l'acronimo di “Security-Enhanced Linux.” Comprende una serie di patch di sicurezza per il kernel Linux. SELinux è stato originariamente sviluppato dalla National Security Agency (NSA) e rilasciato alla comunità di sviluppo open source nel 2000 sotto licenza GPL. È stato unito al kernel Linux principale nel 2003.
SELinux fornisce MAC (Mandatory Access Control) piuttosto che DAC (Discretionary Access Control) predefinito. Ciò consente l'implementazione di alcune politiche di sicurezza che non sarebbe possibile implementare altrimenti.
Le policy di SELinux sono insiemi di regole che guidano il motore di sicurezza di SELinux. Una politica definisce i tipi per gli oggetti file e i domini per i processi. I ruoli vengono utilizzati per limitare l'accesso ai domini. Le identità degli utenti determinano quali ruoli possono essere raggiunti.
Sono disponibili due policy SELinux:
- Mirato: la politica predefinita. Implementa il controllo degli accessi ai processi mirati. I processi vengono eseguiti in un dominio limitato in cui il processo ha accesso limitato ai file. Se un processo limitato è compromesso, il danno è mitigato. Nel caso dei servizi, in questi domini vengono inseriti solo servizi specifici.
- MLS: sta per sicurezza multilivello. Consulta la documentazione di Red Hat sulla policy MLS di SELinux.
I processi non mirati verranno eseguiti in un dominio non confinato. I processi in esecuzione in domini non confinati godono di un accesso quasi completo. Se un tale processo è compromesso, SELinux non offre alcuna mitigazione. L'aggressore può ottenere l'accesso all'intero sistema e alle risorse. Tuttavia, le regole DAC si applicano ancora per i domini non confinati.
Di seguito è riportato un breve elenco di esempi di domini non confinati:
- initrc_t dominio: programmi init
- dominio kernel_t: processi del kernel
- dominio unconfined_t: utenti che hanno effettuato l'accesso al sistema Linux
Modifica della politica di SELinux
I seguenti esempi vengono eseguiti in CentOS 8. Tutti i comandi in questo articolo vengono eseguiti come utente root. Per altre distribuzioni, consulta il tutorial appropriato su come abilitare SELinux.
Per modificare una policy in SELinux, inizia controllando lo stato di SELinux. Lo stato predefinito dovrebbe essere SELinux abilitato nella modalità "Enforcing" con la policy "mirata".
Per modificare la policy di SELinux, apri il file di configurazione di SELinux nel tuo editor di testo preferito.
Qui, il nostro obiettivo è la variabile "SELINUXTYPE" che definisce la politica SELinux. Come puoi vedere, il valore predefinito è "mirato."
Tutti i passaggi mostrati in questo esempio vengono eseguiti in CentOS 8. Nel caso di CentOS, la politica MLS non viene installata per impostazione predefinita. È probabile che questo sia il caso anche in altre distro. Scopri come configurare SELinux su Ubuntu qui. Assicurati di installare prima il programma. Nel caso di Ubuntu, CentOS, openSUSE, Fedora, Debian e altri, il nome del pacchetto è "selinux-policy-mls."
$ dnf installa selinux-policy-mls
In questo caso, passeremo la politica a MLS. Modificare di conseguenza il valore della variabile.
Salva il file ed esci dall'editor. Per rendere effettive queste modifiche, è necessario riavviare il sistema.
$ rebootVerificare la modifica emettendo quanto segue.
$ sestatusModifica delle modalità di SELinux
SELinux può operare in tre diverse modalità. Queste modalità determinano come viene applicata la policy.
- Enforced: qualsiasi azione contro la policy viene bloccata e segnalata nel registro di audit.
- Permissivo: qualsiasi azione contro la politica è riportata solo nel registro di controllo.
- Disabilitato: SELinux è disabilitato.
Per cambiare temporaneamente la modalità in SELinux, usa il comando setenforce. Se il sistema viene riavviato, il sistema tornerà alle impostazioni predefinite default.
$ setenforce Applicazione$ setenforced Permissivo
Per cambiare in modo permanente la modalità in SELinux, devi modificare il file di configurazione di SELinux.
Salva e chiudi l'editor. Riavvia il sistema per rendere effettive le modifiche.
Puoi verificare la modifica usando il comando sestatus.
Conclusione
SELinux è un potente meccanismo per far rispettare la sicurezza. Si spera che questa guida ti abbia aiutato a imparare come configurare e gestire il comportamento di SELinux.
Buon calcolo!