GNU/Linux >> Linux Esercitazione >  >> Cent OS

Comprendere l'etichettatura dei file di SELinux e il contesto di SELinux

Etichettatura dei file SELinux

Tutti i file, le directory, i dispositivi e i processi hanno un contesto di sicurezza (o etichetta) ad essi associato. Per i file, questo contesto viene archiviato negli attributi estesi del file system. I problemi con SELinux spesso derivano dall'etichettatura errata del file system. Se visualizzi un messaggio di errore contenente file_t , di solito è un buon indicatore di un problema con l'etichettatura del file system.

Esistono diversi modi per rietichettare il file system:

  • Crea il file /.autorelabel e riavvia.
  • La vista Stato nella GUI di SELinux fornisce un'opzione per rietichettare al prossimo riavvio.
  • Tre utilità della riga di comando, restorecon, setfiles e fixfiles, relabel file.

Contesto SELinux

Il contesto di SELinux contiene informazioni aggiuntive come utente, ruolo, tipo e livello di SELinux. Le decisioni di controllo dell'accesso su processi, utenti Linux e file si basano su queste informazioni di contesto. Il controllo dell'accesso si basa sulle seguenti informazioni:

  • Utente SELinux :gli utenti Linux sono mappati agli utenti SELinux.
  • Ruolo :Un attributo di RBAC che funge da intermediario tra i domini e gli utenti SELinux
  • Digita :Un attributo di TE che definisce un dominio per i processi
  • Livello :Informazioni opzionali; un attributo di MLS e MCS

Visualizzazione delle informazioni sul contesto di SELinux

Visualizza le informazioni sul contesto di SELinux sui file
Per visualizzare le informazioni sul contesto del file system dalla riga di comando, utilizzare "ls –Z ” comando:

# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfg
NOTA :Queste informazioni sono anche memorizzate nella directory /etc/selinux/[SELINUXTYPE]/contexts/files.

Visualizza le informazioni sul contesto di SELinux sui processi
Per visualizzare le informazioni sul contesto di SELinux sui processi, utilizzare "ps –Z ” comando:

# ps -Z
LABEL                              PID TTY          TIME CMD
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6617 pts/0 00:00:00 sudo
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6623 pts/0 00:00:00 su
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6624 pts/0 00:00:00 bash
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 8188 pts/0 00:00:00 ps

Visualizza le informazioni sul contesto di SELinux sugli utenti
Per visualizzare il contesto SELinux associato al tuo utente Linux, usa "id –Z ” comando:

# id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Il contesto di SELinux viene visualizzato utilizzando la seguente sintassi:

user:role:type:level

Modifica del tipo di file di contesto

Le immagini del disco della macchina virtuale KVM vengono create in /var/lib/libvirt/images directory per impostazione predefinita. SELinux richiede che i file di immagine abbiano virt_image_t etichetta ad essi applicata. Puoi usare il comando "ls –dZ" per confermare che questa etichetta sia applicata alla directory /var/lib/libvirt/images:

# ls -dZ /var/lib/libvirt/images
drwx--x--x. root root system_u:object_r:virt_image_t:s0 /var/lib/libvirt/images

È possibile utilizzare una directory diversa per le immagini della macchina virtuale, ma è necessario aggiungere la nuova directory alla politica di SELinux e rietichettarla prima. I seguenti passaggi vengono utilizzati per aggiungere la directory /kvmimages alla politica SELinux di destinazione e rietichettare la directory:

# semanage fcontext -a -t virt_image_t "/kvmimages(/.*)?"

Il comando precedente aggiunge la directory /kvmimages alla politica di SELinux aggiungendo una riga al seguente file:

# cat /etc/selinux/targeted/contexts/files/file_contexts.local
/kvmimages(/.*)?    system _u:object_r:virt_image_t:s0

È comunque necessario impostare il nuovo contesto di sicurezza nella directory e tutti i file nella directory. È possibile utilizzare uno qualsiasi dei seguenti comandi per modificare i contesti di SELinux nella directory /kvmimages:

  • file di correzione :corregge il contesto di sicurezza sui file system
  • ripristinarecon :reimposta il contesto di sicurezza su uno o più file
  • setfile :Inizializza il contesto di sicurezza su uno o più file

Ognuno di questi comandi legge i file in /etc/selinux/targeted/contexts/files directory. L'esempio seguente mostra i contesti SELinux prima di eseguire il comando restorecon:

# ls -dZ /kvmimages
drwx--x--x. root root system_u:object_r:unlabeled_t:s0 /var/lib/libvirt/images

Nota che il tipo SELinux è impostato su unlabeled_t . L'esempio seguente esegue il comando restorecon per modificare il tipo come definito in /etc/selinux/targeted/contexts/files/file_contexts.local file:

# restorecon -R -v /kvmimages
# ls -dZ /var/kvmimages
drwx--x--x. root root system_u:object_r:virt_image_t:s0 /kvmimages

Ci sono anche SELinux Boolean che influenzano KVM quando vengono lanciati da libvirt. Due di questi booleani sono elencati come segue:

  • virt_use_nfs :Consenti a virt di gestire i file NFS.
  • virt_use_samba :Consenti a virt di gestire i file CIFS.

Questi booleani devono essere abilitati quando si utilizzano condivisioni NFS o SAMBA, rispettivamente, per l'archiviazione di immagini disco di macchine virtuali. Esistono ulteriori booleani SELinux che influiscono su KVM. Alcuni di questi sono elencati come segue:

# getsebool -a | grep virt
staff_use_svirt --> off
unprivuser_use_svirt --> off
virt_read_qemu_ga_data --> off
virt_rw_qemu_ga_data --> off
virt_sandbox_use_all_caps --> on
virt_sandbox_use_audit --> on
virt_sandbox_use_fusefs --> off
virt_sandbox_use_mknod --> off
virt_sandbox_use_netlink --> off
virt_sandbox_use_sys_admin --> off
virt_transition_userdomain --> off
virt_use_comm --> off
virt_use_execmem --> off
virt_use_fusefs --> off
virt_use_nfs --> on
virt_use_rawip --> off
virt_use_samba --> off
virt_use_sanlock --> off
virt_use_usb --> on
virt_use_xserver --> off
Cosa sono gli utenti SELinux e come mappare gli utenti Linux agli utenti SELinux


Cent OS
  1. Linux:comprensione delle autorizzazioni e dei tipi di file Unix?

  2. Permessi e salvataggio dei file?

  3. Reindirizzamento e uscita del tubo?

  4. Capire Tc Qdisc e Iperf?

  5. Comprendere i booleani di SELinux

Comprendere i percorsi dei file e come usarli in Linux

Comprendere i permessi dei file Linux

Risoluzione dei problemi e insidie ​​di SELinux

Comprendere i permessi dei file Linux

Comprensione del multipath di Linux (dm-multipath)

Comprendere le autorizzazioni di base dei file e la proprietà in Linux