Come disattivare SELinux in Red Hat e CentOS
SELinux (Security-Enhanced Linux) è una caratteristica inclusa dal kernel 2.6.x sviluppata per aumentare la sicurezza dei sistemi Linux. Rimandando ad altri approfondimenti, qui mi limito a citare che il funzionamento di base di SELinux è il Mandatory Access Control, che fa sì che ogni processo venga eseguito con i permessi dell’utente proprietario, facendo in modo che il sistema venga protetto dai processi che mirano a destabilizzare la sicurezza.
SELinux è accessibile solo agli amministratori, che hanno modo di impostarne le policy. In pratica ogni volta che un’applicazione crea un oggetto, SELinux verifica le regole impostate e stabilisce i permessi di ogni elemento coinvolto.
Quindi SELinux è uno strumento per la sicurezza del sistema, che troviamo automaticamente attivo nelle recenti release di Red Hat e CentOS. Ma come fare a disattivarlo, se non si desidera usarlo ?
Modalità
SELinux dispone di 3 modalità:
disabled, in cui non è attivo
enforcing, in cui è attivo e applica le policy
permissive, in cui non vengono applicate restrizioni, ma le policy vengono verificate e le eccezioni sono registrate
Verifica della modalità
In questa sede prendo in considerazione solo l’interfaccia a linea di comando. E’ anche possibile usare l’interfaccia grafica, anche se qui non ne parlo.
Il comando getenforce permette di verificare la modalità attiva
# /usr/sbin/getenforce
restituisce uno dei 3 valori descritti sopra
Modificare la modalità
Il file /usr/selinux/config contiene la configurazione di SELinux, ed è modificabile con un normale editor di testo
# 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=enforcing # SELINUXTYPE= can take one of these two values: # targeted – Targeted processes are protected, # mls – Multi Level Security protection. SELINUXTYPE=targeted
Nel caso mostrato la modalità attiva è enforcing e può essere modificata semplicemente cambiando il valore.
Ad esempio per disattivarlo basterà scrivere SELINUX=disabled
Questa modifica non è subito attiva, ma verrà attivata al successivo riavvio della macchina.
E’ anche possibile applicare una variazione temporanea (solo per enforcing e permissive), che non viene mantenuta al successivo reboot, tramite il comando setenforce
# setenforce enforcing
setenforce accetta 4 valori per 2 modalità:
enforcing o 0
permissive o 1
Per disabilitare SELinux occorre necessariamente seguire il metodo precedente