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

¿Qué son los usuarios de SELinux y cómo asignar usuarios de Linux a usuarios de SELinux?

Usuario de SELinux

Hay usuarios de SELinux además de los usuarios regulares de Linux. Los usuarios de SELinux son parte de una política de SELinux. La política está autorizada para un conjunto específico de roles y para un rango específico de MLS (Seguridad multinivel). Cada usuario de Linux se asigna a un usuario de SELinux como parte de la política. Esto permite a los usuarios de Linux heredar las restricciones y las reglas y mecanismos de seguridad impuestos a los usuarios de SELinux.

Para definir qué roles y niveles pueden ingresar, la identidad de usuario de SELinux asignada se usa en el contexto de SELinux para los procesos en esa sesión. Puede ver una lista de asignaciones entre las cuentas de usuario de SELinux y Linux desde la línea de comando:

# semanage login -l

Login Name           SELinux User         MLS/MCS Range        Service

__default__          unconfined_u         s0-s0:c0.c1023       *
root                 unconfined_u         s0-s0:c0.c1023       *
system_u             system_u             s0-s0:c0.c1023       *

Rol

El rol es un atributo del modelo de seguridad de control de acceso basado en roles (RBAC). El rol sirve como intermediario entre los dominios y los usuarios de SELinux. Los usuarios de SELinux están autorizados para roles, los roles están autorizados para dominios y los procesos se ejecutan en sus propios dominios separados. Los roles determinan a qué dominios puede ingresar y, en última instancia, a qué archivos puede acceder.

Tipo

El tipo es un atributo de Type Enforcement (TE) . El tipo define un tipo para archivos y define un dominio para procesos. Los procesos están separados entre sí al ejecutarse en sus propios dominios. Esta separación evita que los procesos accedan a los archivos utilizados por otros procesos, así como también evita que los procesos accedan a otros procesos. Las reglas de política de SELinux definen cómo los tipos pueden acceder entre sí, ya sea un dominio accediendo a un tipo o un dominio accediendo a otro dominio.

Nivel

El nivel es un atributo de MLS y MCS. Un rango MLS es un par de niveles, escritos como nivel bajo-nivel alto si los niveles difieren, o nivel bajo si los niveles son idénticos (s0-s0 es lo mismo que s0). Cada nivel es un par de categorías de sensibilidad, siendo las categorías opcionales. Si hay categorías, el nivel se escribe como sensitividad:conjunto de categorías. Si no hay categorías, se escribe como sensibilidad.

Si el conjunto de categorías es una serie contigua, se puede abreviar. Por ejemplo, c0.c3 es lo mismo que c0,c1,c2,c3. El /etc/selinux/targeted/setrans.conf El archivo es la tabla de traducción de seguridad multicategoría para SELinux y asigna niveles a un formato legible por humanos, como s0:c0.c1023=SystemHigh. No edite este archivo con un editor de texto; usa el semanejo Comando para hacer cambios.

Utilice el chcon Comando para cambiar el contexto de SELinux para archivos. Los cambios realizados con el comando chcon no sobreviven a una nueva etiqueta del sistema de archivos o la ejecución de restorecon dominio. Cuando use chcon, proporcione todo o parte del contexto de SELinux para cambiar.

Usuarios de SELinux Confinados

Los usuarios de Linux están asignados al inicio de sesión _predeterminado_ de SELinux de forma predeterminada, que se asigna a SELinux unconfined_u usuario. Sin embargo, SELinux puede confinar a los usuarios de Linux, para aprovechar las reglas y los mecanismos de seguridad que se les aplican, asignando usuarios de Linux a usuarios de SELinux.

Existe una cantidad de usuarios de SELinux confinados en la política de SELinux. La siguiente es una lista de usuarios de SELinux confinados y sus dominios asociados:

  • invitado_u :El dominio del usuario es guest_t.
  • personal_u :El dominio del usuario es staff_t.
  • usuario_u :El dominio del usuario es user_t.
  • xinvitado_x :El dominio del usuario es xguest_t.

– Usuarios de Linux en el guest_t , xinvitado_t y usuario_t los dominios pueden ejecutar aplicaciones de configuración de ID de usuario (setuid) solo si la política de SELinux lo permite (como passwd). No pueden ejecutar las aplicaciones su y sudo setuid para convertirse en el usuario root.
– Los usuarios de Linux en el dominio guest_t no tienen acceso a la red y solo pueden iniciar sesión desde una terminal. Pueden iniciar sesión con ssh pero no pueden usar ssh para conectarse a otro sistema. El único acceso a la red que tienen los usuarios de Linux en el dominio xguest_t es Firefox para conectarse a páginas web.
– Los usuarios de Linux en los dominios xguest_t, user_t y staff_t pueden iniciar sesión usando el sistema X Window y una terminal.
– De manera predeterminada, los usuarios de Linux en el dominio staff_t no tienen permisos para ejecutar aplicaciones con el comando sudo.
– De manera predeterminada, los usuarios de Linux en los dominios guest_t y xguest_t no pueden ejecutar aplicaciones en sus directorios de inicio o /tmp, lo que impide impedir que ejecuten aplicaciones en directorios a los que tienen acceso de escritura. Esto ayuda a evitar que las aplicaciones defectuosas o maliciosas modifiquen los archivos que pertenecen a los usuarios.
– De manera predeterminada, los usuarios de Linux en los dominios user_t y staff_t pueden ejecutar aplicaciones en sus directorios de inicio y /tmp.

Asignación de usuarios de Linux a usuarios de SELinux

Utilice el “semanage login –a ” para asignar un usuario de Linux a un usuario de SELinux. Por ejemplo, para asignar el usuario de Linux john al usuario de SELinux user_u, ejecute el siguiente comando:

# semanage login -a -s user_u john

El -a La opción agrega un nuevo registro y la opción -s especifica el usuario de SELinux. El último argumento, newuser, es el usuario de Linux que desea asignar al usuario de SELinux especificado.

Booleanos para usuarios que ejecutan aplicaciones

Algunos valores booleanos están disponibles para cambiar el comportamiento del usuario al ejecutar aplicaciones en sus directorios de inicio y en /tmp. Use el “setsebool –P [booleano] activado|desactivado ” comando:

1. Para permitir que los usuarios de Linux en el dominio guest_t ejecuten aplicaciones en sus directorios de inicio y /tmp:

# setsebool -P guest_exec_content on

2. Para permitir que los usuarios de Linux en el dominio xguest_t ejecuten aplicaciones en sus directorios de inicio y /tmp:

# setsebool -P xguest_exec_content on

3. Para evitar que los usuarios de Linux en el dominio user_t ejecuten aplicaciones en sus directorios de inicio y /tmp:

# setsebool -P user_exec_content off

4. Para evitar que los usuarios de Linux en el dominio staff_t ejecuten aplicaciones en sus directorios de inicio y /tmp:

# setsebool -P staff_exec_content off
Comprender el etiquetado de archivos de SELinux y el contexto de SELinux


Cent OS
  1. ¿Qué es un comando Chown en Linux y cómo usarlo?

  2. Flatpak en Linux:qué es y cómo instalar aplicaciones con él

  3. ¿Qué es Podman y cómo instalar Podman en Linux?

  4. ¿Qué es FirewallD y cómo implementarlo en Linux?

  5. Qué es NFS y cómo instalarlo en Linux

Qué son los Snaps y cómo instalarlos en varias distribuciones de Linux

¿Qué es UID en Linux, cómo encontrarlo y cambiarlo?

Qué es Git y cómo instalar Git en Linux

Cómo listar usuarios en Linux

Cómo encontrar qué direcciones IP están conectadas a Linux

Cómo enumerar usuarios y grupos en Linux