Un piccolo addendum al whitepaper “Proteggere i files sensibili con SE-Linux”.
Se vi ricordate, uno dei problemi principali era il fatto di non poter concedere attraverso sudo tutti i privilegi di root, perchè il super user poteva disabilitare le protezioni SE-Linux tramite il comando setenforce oppure disabilitare l’audit tramite il comando auditctl.
Dopo alcune prove, ho scoperto che posso proteggere auditctl e setenforce in una maniera analoga a come avevo protetto la directory dei documenti /documents, ovvero l’uso degli stessi MLS. Nel mio caso, ho creato un secondo livello MLS che ho chiamato Serights e l’ho inserito in /etc/selinux/targeted/setrans.conf:
s0:c4=Serights
Poi, tramite chcat, ho protetto i due comandi:
chcat +Serights /usr/sbin/setenforce
chcat +Serights /sbin/auditctl
Ho reso permanenti questi files ad un relabel inserendo nel file “docsecret.fc” le seguenti righe:
/usr/sbin/setenforce gen_context(system_u:object_r:sbin_t,s0,c4)
/sbin/auditctl gen_context(system_u:object_r:auditctl_exec_t,s0,c4)
Ho poi permesso ad un utente, es: l’utente secofr (=security officer), di poter abilitare/disabilitare selinux con:
chcat -l +Serights secofr
Ovviamente, sempre da quello descritto nel paper, l’utente secofr è stato aggiunto nel gruppo wheel. In questo modo solo collegandosi come secofr e poi facendo “su -” si potrà disabilitare selinux, oppure collegandosi a root da console.
Tanto per essere un po’ piu’ paranoici … 🙂