Introduzione
Security Enhanced Linux o SELinux è un meccanismo di sicurezza integrato nel kernel Linux utilizzato dalle distribuzioni basate su RHEL.
SELinux aggiunge un ulteriore livello di sicurezza al sistema consentendo agli amministratori e agli utenti di controllare l'accesso agli oggetti in base alle regole dei criteri.
Le regole della politica di SELinux specificano come i processi e gli utenti interagiscono tra loro e come i processi e gli utenti interagiscono con i file. Quando non esiste alcuna regola che consenta esplicitamente l'accesso a un oggetto, ad esempio per un processo che apre un file, l'accesso viene negato.
SELinux ha tre modalità di funzionamento:
- Enforcing: SELinux consente l'accesso in base alle regole della politica SELinux.
- Permissive: SELinux registra solo le azioni che sarebbero state negate se eseguite in modalità esecutiva. Questa modalità è utile per il debug e la creazione di nuove regole dei criteri.
- Disabled: nessun criterio SELinux viene caricato e nessun messaggio viene registrato.
Per impostazione predefinita, in CentOS 8, SELinux è abilitato e in modalità di applicazione. Si consiglia vivamente di mantenere SELinux in modalità di applicazione. Tuttavia, a volte può interferire con il funzionamento di alcune applicazioni ed è necessario impostarlo sulla modalità permissiva o disabilitarlo completamente.
In questo tutorial, spiegheremo come disabilitare SELinux su CentOS 8.
Prerequisiti
Solo l'utente root o un utente con privilegi sudo può cambiare la modalità SELinux.
Verifica della modalità SELinux
Utilizzare il comando sestatus
per verificare lo stato e la modalità in cui è in esecuzione SELinux:
sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31
L'output sopra mostra che SELinux è abilitato e impostato in modalità di applicazione.
Modifica della modalità SELinux su Permissive
Se abilitato, SELinux può essere in modalità esecutiva o permissiva. Puoi cambiare temporaneamente la modalità da mirata a permissiva con il seguente comando:
sudo setenforce 0
Tuttavia, questa modifica è valida solo per la sessione di runtime corrente e non persiste tra i riavvii.
Per impostare permanentemente la modalità SELinux su permissiva, seguire i passaggi seguenti:
Apri il /etc/selinux/config
file e imposta la mod SELINUX
su permissive
:
sudo vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Salvare e chiudere il file ed eseguire il comando setenforce 0
per modificare la modalità SELinux per la sessione corrente:
sudo shutdown -r now
Disabilitare SELinux
Invece di disabilitare SELinux, si consiglia di cambiare la modalità in permissiva. Disabilitare SELinux solo quando richiesto per il corretto funzionamento dell'applicazione.
Eseguire i passaggi seguenti per disabilitare SELinux sul sistema CentOS 8 in modo permanente:
Apri il file /etc/selinux/config
e modifica il valore SELINUX
in disabled
:
sudo vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Salvare e chiudere il file e riavviare il sistema:
sudo shutdown -r now
All'avvio del sistema, utilizzare il comando sestatus
per verificare che SELinux sia stato disabilitato:
sestatus
L'output dovrebbe essere simile al seguente:
SELinux status: disabled
Conclusione
SELinux è un meccanismo per proteggere un sistema implementando il controllo di accesso obbligatorio (MAC). SELinux è abilitato di default sui sistemi CentOS 8, ma può essere disabilitato modificando il file di configurazione e riavviando il sistema.