Volver al índice


selinux

[selinux-basics selinux-policy-default]. SELinux proporciona una forma de acceso a recursos basada en políticas de control de acceso obligatorio [mandatory access control, MAC] incorporado en el kernel. Existen un conjunto de reglas de autorización [políticas] las cuales determinan si una operación sobre un objeto [Archivos, directorios, dispositivos...] realizada por un sujeto esta o no permitida basándose en los atributos de ambos. Linux utiliza por defecto el control de acceso a discreción [discretionary access control, DAC] basada en los propietarios y grupos a los que pertenece un objeto en los que un usuario normal puede cambiar los permisos de los archivos que posee con el comando chmod. Con selinux se limita el acceso que tienen las aplicaciones a otras aplicaciones y a los ficheros, impidiendo que un proceso pueda modificar cualquier fichero del usuario con el que se lanzó. En DAC el acceso esta descentralizado, siendo el propietario de cada objeto el encargado de asignar los permisos de los diversos grupos que accederán a ellas. En cambio con el MAC los objetos y los sujetos tan solo tienen atributos, pero son las políticas las que se encargan de autorizar o denegar una acción. Ver comandos getsebool y setsebool.

Los módulos SELinux disponibles se almacenan en el directorio /usr/share/selinux/default/.

# semodule -i módulo.pp (habilitar un módulos en la configuración actual. La extensión pp significa paquete de política [«policy package»]).

# semodule -r módulo (Elimina un módulo de la configuración actual)

# semodule -l (Enumera los módulos habilitados actualmente)

# semanage login -a -s staff_u juan (mapear una cuenta a un usuario especifico de SELinux)

# restorecon -R -F /home/juan (etiquetar los ficheros del usuario mapeado juan)

# semanage user -l (enumera las asociaciones entre las identidades de usuario de SELinux y los roles permitidos)

# semanage login -d juan (elimina la asociación asignada al usuario juan)

# semanage login -m juan (Modificar la asociación asignada al usuario)

# semanage login -l (enumera las correspondencias actuales entre identificadores de usuarios y entidades SELinux)

tabla de los usuarios estándar SELinux disponibles:

user_u  (Usuario normal que se utilizan para cuentas de usuario que no van a ser empleadas para administrar ningún servicio del sistema)

staff_u (Para administradores con derechos para conmutar roles y ganar privilegios elevados)

root (Cuenta root ligeramente diferente de la cuenta staff_u. Los ficheros protegidos por control de acceso basado en root no pueden ser gestionados por los staff_u)

sysadm_u (Administración del sistema. Por defecto, esta cuenta no se utiliza inmediatamente ya que este usuario obtiene de forma inmediata el rol administrativo (por lo que staff_u y root todavía necesitarán conmutar roles).

system_u (administrar servicios. Nunca se debe utilizar para usuarios finales ya que ofrece acceso directo al rol del sistema)

unconfined_u    Usado cuando la directriz es targeted, este usuario SELinux tiene muchos privilegios (esencialmente no está limitado en sus acciones, aunque todavía se gestiona través de SELinux con una directriz "muy abierta").

Volver al índice