GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comprendre l'étiquetage des fichiers SELinux et le contexte SELinux

Étiquetage des fichiers SELinux

Tous les fichiers, répertoires, périphériques et processus sont associés à un contexte de sécurité (ou étiquette). Pour les fichiers, ce contexte est stocké dans les attributs étendus du système de fichiers. Les problèmes avec SELinux surviennent souvent lorsque le système de fichiers est mal étiqueté. Si vous voyez un message d'erreur contenant file_t , c'est généralement un bon indicateur que vous avez un problème avec l'étiquetage du système de fichiers.

Il existe plusieurs façons de réétiqueter le système de fichiers :

  • Créez le fichier /.autorelabel et redémarrez.
  • La vue État de l'interface graphique SELinux offre une option pour réétiqueter au prochain redémarrage.
  • Trois utilitaires de ligne de commande, restorecon, setfiles et fixfiles, réétiquettent les fichiers.

Contexte SELinux

Le contexte SELinux contient des informations supplémentaires telles que l'utilisateur, le rôle, le type et le niveau SELinux. Les décisions de contrôle d'accès sur les processus, les utilisateurs Linux et les fichiers sont basées sur ces informations contextuelles. Le contrôle d'accès est basé sur les informations ci-dessous :

  • Utilisateur SELinux  :les utilisateurs Linux sont mappés sur les utilisateurs SELinux.
  • Rôle  :Un attribut de RBAC qui agit comme un intermédiaire entre les domaines et les utilisateurs de SELinux
  • Tapez  :Un attribut de TE qui définit un domaine pour les processus
  • Niveau :Information optionnelle; un attribut de MLS et MCS

Affichage des informations de contexte SELinux

Afficher les informations de contexte SELinux sur les fichiers
Pour afficher les informations de contexte du système de fichiers à partir de la ligne de commande, utilisez la commande "ls –Z ” commande :

# 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
REMARQUE :Ces informations sont également stockées dans le répertoire /etc/selinux/[SELINUXTYPE]/contexts/files.

Afficher les informations de contexte SELinux sur les processus
Pour afficher les informations de contexte SELinux sur les processus, utilisez la commande "ps –Z ” commande :

# 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

Afficher les informations de contexte SELinux sur les utilisateurs
Pour afficher le contexte SELinux associé à votre utilisateur Linux, utilisez le "id -Z ” commande :

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

Le contexte SELinux est affiché en utilisant la syntaxe suivante :

user:role:type:level

Modification du type de fichier de contexte

Les images de disque de la machine virtuelle KVM sont créées dans /var/lib/libvirt/images répertoire par défaut. SELinux exige que les fichiers image aient le virt_image_t étiquette qui leur est appliquée. Vous pouvez utiliser la commande « ls –dZ » pour confirmer que cette étiquette est appliquée au répertoire /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

Vous pouvez utiliser un répertoire différent pour vos images de machine virtuelle, mais vous devez d'abord ajouter le nouveau répertoire à votre politique SELinux et le renommer. Les étapes suivantes permettent d'ajouter le répertoire /kvmimages à la stratégie SELinux ciblée et de renommer le répertoire :

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

La commande ci-dessus ajoute le répertoire /kvmimages à la politique SELinux en ajoutant une ligne au fichier suivant :

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

Vous devez toujours définir le nouveau contexte de sécurité sur le répertoire et tous les fichiers du répertoire. Vous pouvez utiliser l'une des commandes suivantes pour modifier les contextes SELinux sur le répertoire /kvmimages :

  • fixfiles  :Corrige le contexte de sécurité sur les systèmes de fichiers
  • restorecon :Réinitialise le contexte de sécurité sur un ou plusieurs fichiers
  • setfiles :Initialise le contexte de sécurité sur un ou plusieurs fichiers

Chacune de ces commandes lit les fichiers dans /etc/selinux/targeted/contexts/files annuaire. L'exemple suivant montre les contextes SELinux avant d'exécuter la commande restorecon :

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

Notez que le type SELinux est défini sur unlabeled_t . L'exemple suivant exécute la commande restorecon pour modifier le type tel que défini dans /etc/selinux/targeted/contexts/files/file_contexts.local fichier :

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

Il existe également des booléens SELinux qui affectent KVM lorsqu'il est lancé par libvirt. Deux de ces booléens sont répertoriés comme suit :

  • virt_use_nfs  :Autoriser virt à gérer les fichiers NFS.
  • virt_use_samba  :Autoriser virt à gérer les fichiers CIFS.

Ces booléens doivent être activés lors de l'utilisation de partages NFS ou SAMBA, respectivement, pour stocker des images de disque de machine virtuelle. Il existe d'autres booléens SELinux qui affectent KVM. Certains d'entre eux sont répertoriés comme suit :

# 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
Que sont les utilisateurs SELinux et comment mapper les utilisateurs Linux aux utilisateurs SELinux


Cent OS
  1. Linux - Comprendre les autorisations Unix et les types de fichiers ?

  2. Autorisations de fichiers et sauvegarde ?

  3. Comprendre l'utilitaire logrotate

  4. Comprendre les booléens SELinux

  5. Comprendre les politiques SELinux sous Linux

Comprendre les chemins de fichiers et comment les utiliser sous Linux

Comprendre les autorisations de fichiers Linux

Dépannage et pièges de SELinux

Comprendre les autorisations de fichiers Linux

Comprendre le multipath Linux (dm-multipath)

Comprendre les autorisations de fichiers de base et la propriété sous Linux