Le seguenti sezioni descrivono i file di configurazione di SELinux insieme ai file system correlati.
Lo pseudo-file system /selinux/ contiene i comandi maggiormente utilizzati dal sottosistema del kernel. Questo tipo di file system è simile allo pseudo-file system /proc/.
In molti casi gli amministratori e gli utenti non hanno bisogno di manipolare il suddetto componente, al contrario di altri file e directory di SELinux.
Il seguente esempio mostra i contenuti della directory /selinux/:
-rw-rw-rw- 1 root root 0 Sep 22 13:14 access dr-xr-xr-x 1 root root 0 Sep 22 13:14 booleans --w------- 1 root root 0 Sep 22 13:14 commit_pending_bools -rw-rw-rw- 1 root root 0 Sep 22 13:14 context -rw-rw-rw- 1 root root 0 Sep 22 13:14 create --w------- 1 root root 0 Sep 22 13:14 disable -rw-r--r-- 1 root root 0 Sep 22 13:14 enforce -rw------- 1 root root 0 Sep 22 13:14 load -r--r--r-- 1 root root 0 Sep 22 13:14 mls -r--r--r-- 1 root root 0 Sep 22 13:14 policyvers -rw-rw-rw- 1 root root 0 Sep 22 13:14 relabel -rw-rw-rw- 1 root root 0 Sep 22 13:14 user |
Per esempio, l'esecuzione del comando cat sul file enforce, può rivelare un valore 1 per la modalità di enforcing, oppure 0 per la modalità permissiva.
Le seguenti sezioni descrivono i file di configurazione e la policy di SELinux, insieme ai file system correlati presenti nella directory /etc/.
Sono presenti due diversi modi per poter configurare SELinux con Red Hat Enterprise Linux: utilizzando Strumento di configurazione del livello di sicurezza (system-config-securitylevel), oppure manualmente modificando il file di configurazione (/etc/sysconfig/selinux).
Il file /etc/sysconfig/selinux rappresenta il file di configurazione primario per l'abilitazione o la disabilitazione di SELinux, e per l'impostazione ed il modo di applicazione della policy da utilizzare sul sistema.
![]() | Nota Bene |
|---|---|
/etc/sysconfig/selinux contiene un link simbolico per il file di configurazione attuale, /etc/selinux/config. |
Di seguito viene riportato un sottoinsieme completo di opzioni, disponibili per la configurazione:
SELINUX=<enforcing|permissive|disabled> — Definisce lo stato superiore di SELinux su di un sistema.
enforcing — La policy di sicurezza di SELinux è stata applicata.
permissive — Il sistema SELinux visualizza alcuni avvertimenti senza applicare tale policy. Questo processo risulta utile per il debugging e per il troubleshooting. In modalità permissiva, verranno registrati un numero maggiore di negazioni, man mano che gli utenti porteranno avanti le proprie azioni, tale permessività è compromessa se si utilizza la modalità enforcing. Per esempio, se si cerca di percorrere tutti i livelli di una directory, tale operazione originerà dei messaggi avc: denied multipli per ogni livello letto, al contrario di un kernel in modalità enforcing che non farà altro che arrestare tale azione, evitando quindi la visualizzazione dei suddetti massaggi.
disabled — SELinux risulta essere completamente disabilitato. Le funzioni di SELinux vengono disabilitate dal kernel e lo pseudo-file system risulta non registrato.
![]() | Suggerimento |
|---|---|
Le azioni eseguite mentre SELinux risulta essere disabilitato, possono causare un annullamento di un contesto sicuro per il file system interessato. L'esecuzione di fixfiles relabel prima di abilitare SELinux, non farà altro che eseguire un relabel del file system, in modo da far funzionare correttamente SELinux una volta abilitato. Per maggiori informazioni consultare la pagina man (8) di fixfiles. |
![]() | Nota Bene |
|---|---|
Se si lasciano spazi aggiuntivi alla fine di una riga di configurazione, oppure righe extra alla fine del file, si possono verificare dei comportamenti inaspettati. Per essere sicuri, rimuoveri tutti gli spazi presenti. |
SELINUXTYPE=<targeted|strict> — Specifica la policy usata da SELinux.
targeted — Solo i demoni di rete selezionati risultano essere protetti.
![]() | Importante |
|---|---|
I seguenti demoni risultano essere protetti usando la policy di default: dhcpd, httpd (apache.te), named, nscd, ntpd, portmap, snmpd, squid, e syslogd. Il resto dei sistemi viene eseguito nel dominio unconfined_t. I file della policy per questi demoni sono disponibili in /etc/selinux/targeted/src/policy/domains/program, e sono soggetti a modifiche a seconda delle versioni disponibili di Red Hat Enterprise Linux. |
L'applicazione della policy per i suddetti demoni, può essere abilitata oppure disabilitata utilizzando i valori Boolean controllati dallo Strumento di configurazione del livello di sicurezza (system-config-securitylevel). Variando un valore Boolean per un determinato demone, si è in grado di disabilitare la transizione della sua policy, la quale previene, per esempio, init di passare su dhcpd dal dominio unconfined_t al dominio specificato in dhcpd.te. Il dominio unconfined_t permette ai soggetti e agli oggetti con quel determinato contesto di sicurezza, di essere eseguiti sotto uno standard di sicurezza di Linux.
strict — Protezione SELinux completa per tutti i demoni. I contesti di sicurezza vengono definiti per tutti i soggetti e gli oggetti, e ogni singola azione viene processata dal server responsabile all'attuazione della policy.
La directory /etc/selinux/ rappresenta il luogo primario per tutti i file della policy, insieme al file di configurazione primario.
Il seguente esempio mostra i contenuti della directory /etc/selinux/:
-rw-r--r-- 1 root root 448 Sep 22 17:34 config drwxr-xr-x 5 root root 4096 Sep 22 17:27 strict drwxr-xr-x 5 root root 4096 Sep 22 17:28 targeted |
Le due directory strict/ e targeted/, sono le directory specifiche dove vengono contenuti i rispettivi file della policy (es. restrittivi e selezionati).
Per maggiori informazioni sulla policy SELinux e sulla sua configurazione, consultate Red Hat SELinux Policy Writing Guide.
Le seguenti sono le utility maggiormente utilizzate con SELinux:
/usr/bin/setenforce — Modifica in tempo reale la modalità eseguita da SELinux. Eseguendo setenforce 1, SELinux viene selezionato in modalità enforcing. Eseguendo setenforce 0, SELinux viene selezionato in modalità permissiva. Per disabilitare SELinux, dovreste impostare il parametro in /etc/sysconfig/selinux, oppure passare il parametro selinux=0 al kernel, sia in /etc/grub.conf oppure al momento dell'avvio.
/usr/bin/sestatus -v — Permette di ottenere lo stato completo di un sistema che esegue SELinux. Il seguente esempio mostra un output sestatus:
SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Policy version: 18 |
/usr/bin/newrole — Esegue una nuova shell in un nuovo contesto o ruolo. La policy deve permettere la transizione al nuovo ruolo.
/sbin/restorecon — Imposta il contesto di sicurezza di uno o più file, segnando gli attributi estesi con il file appropriato o con un contesto di sicurezza.
/sbin/fixfiles — Controlla o corregge il database del contesto di sicurezza sul file system.
Consultate la pagina man associata con queste utility per maggiori informazioni.
Per maggiori informazioni su tutte le utility binarie disponibili, consultate i contenuti dei pacchetti setools o policycoreutils, eseguendo rpm -ql <package-name>, dove <package-name> rappresenta il nome del pacchetto specifico.