GNU/Linux >> Tutoriales Linux >  >> Cent OS

Comprender el etiquetado de archivos de SELinux y el contexto de SELinux

Etiquetado de archivos SELinux

Todos los archivos, directorios, dispositivos y procesos tienen un contexto de seguridad (o etiqueta) asociado a ellos. Para archivos, este contexto se almacena en los atributos extendidos del sistema de archivos. Los problemas con SELinux a menudo surgen debido a que el sistema de archivos está mal etiquetado. Si ve un mensaje de error que contiene file_t , suele ser un buen indicador de que tiene un problema con el etiquetado del sistema de archivos.

Hay varias formas de volver a etiquetar el sistema de archivos:

  • Cree el archivo /.autorelabel y reinicie.
  • La vista de estado en la GUI de SELinux ofrece una opción para volver a etiquetar en el próximo reinicio.
  • Tres utilidades de línea de comandos, restauración, setfiles y fixfiles, reetiquetado de archivos.

Contexto de SELinux

El contexto de SELinux contiene información adicional, como usuario, rol, tipo y nivel de SELinux. Las decisiones de control de acceso sobre procesos, usuarios de Linux y archivos se basan en esta información de contexto. El control de acceso se basa en la siguiente información:

  • usuario de SELinux :los usuarios de Linux se asignan a los usuarios de SELinux.
  • Rol :un atributo de RBAC que actúa como intermediario entre los dominios y los usuarios de SELinux
  • Tipo :Un atributo de TE que define un dominio para procesos
  • Nivel :Información opcional; un atributo de MLS y MCS

Ver información de contexto de SELinux

Ver información de contexto de SELinux sobre archivos
Para ver la información de contexto del sistema de archivos desde la línea de comando, use el comando “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 :Esta información también se almacena en el directorio /etc/selinux/[SELINUXTYPE]/contexts/files.

Ver información de contexto de SELinux sobre procesos
Para ver la información de contexto de SELinux sobre los procesos, utilice el botón “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

Ver información de contexto de SELinux sobre los usuarios
Para ver el contexto de SELinux asociado con su usuario de Linux, use el “id –Z ” comando:

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

El contexto de SELinux se muestra usando la siguiente sintaxis:

user:role:type:level

Cambiar el tipo de archivo de contexto

Las imágenes de disco de la máquina virtual KVM se crean en /var/lib/libvirt/images directorio por defecto. SELinux requiere que los archivos de imagen tengan la virt_image_t etiqueta que se les aplica. Puede usar el comando “ls –dZ” para confirmar que esta etiqueta se aplica al directorio /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

Puede usar un directorio diferente para las imágenes de su máquina virtual, pero primero debe agregar el nuevo directorio a su política de SELinux y volver a etiquetarlo. Los siguientes pasos se utilizan para agregar el directorio /kvmimages a la política de SELinux de destino y volver a etiquetar el directorio:

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

El comando anterior agrega el directorio /kvmimages a la política de SELinux agregando una línea al siguiente archivo:

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

Todavía necesita configurar el nuevo contexto de seguridad en el directorio y todos los archivos en el directorio. Puede usar cualquiera de los siguientes comandos para cambiar los contextos de SELinux en el directorio /kvmimages:

  • arreglar archivos :corrige el contexto de seguridad en los sistemas de archivos
  • restauración :restablece el contexto de seguridad en uno o más archivos
  • establecer archivos :Inicializa el contexto de seguridad en uno o más archivos

Cada uno de estos comandos lee los archivos en /etc/selinux/targeted/contexts/files directorio. El siguiente ejemplo muestra los contextos de SELinux antes de ejecutar el comando restorecon:

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

Observe que el tipo de SELinux está establecido en unlabeled_t . El siguiente ejemplo ejecuta el comando restorecon para cambiar el tipo como se define en /etc/selinux/targeted/contexts/files/file_contexts.local archivo:

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

También hay valores booleanos de SELinux que afectan a KVM cuando se ejecutan con libvirt. Dos de estos valores booleanos se enumeran a continuación:

  • virt_use_nfs :permitir que virt administre archivos NFS.
  • virt_use_samba :permitir que virt administre archivos CIFS.

Estos valores booleanos deben habilitarse cuando se utilizan recursos compartidos NFS o SAMBA, respectivamente, para almacenar imágenes de disco de máquina virtual. Hay valores booleanos de SELinux adicionales que afectan a KVM. Algunos de estos se enumeran a continuación:

# 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
¿Qué son los usuarios de SELinux y cómo asignar usuarios de Linux a usuarios de SELinux?


Cent OS
  1. Linux:¿comprensión de los permisos y tipos de archivos de Unix?

  2. Entendiendo la utilidad logrotate

  3. Comprender el etiquetado de archivos de SELinux y el contexto de SELinux

  4. Cómo enumerar y configurar el contexto de SELinux para el servidor MySQL

  5. Comprender las marcas de tiempo de los archivos de Mac

Comprender las rutas de los archivos y cómo usarlas en Linux

Comprender los permisos de archivos de Linux

Solución de problemas y trampas de SELinux

Comprender los permisos de archivos de Linux

Comprender las rutas múltiples de Linux (dm-multipath)

Comprender los permisos básicos de archivos y la propiedad en Linux