1.4. Arquitectura y paquetes SELinux
SELinux es un módulo de seguridad de Linux (LSM) que está integrado en el núcleo de Linux. El subsistema SELinux en el kernel está dirigido por una política de seguridad que es controlada por el administrador y cargada en el arranque. Todas las operaciones de acceso a nivel de kernel relevantes para la seguridad en el sistema son interceptadas por SELinux y examinadas en el contexto de la política de seguridad cargada. Si la política cargada permite la operación, ésta continúa. En caso contrario, la operación se bloquea y el proceso recibe un error.
Las decisiones de SELinux, como permitir o no el acceso, se almacenan en la caché. Esta caché se conoce como Access Vector Cache (AVC). Cuando se utilizan estas decisiones en caché, las reglas de política de SELinux necesitan ser comprobadas menos, lo que aumenta el rendimiento. Recuerda que las reglas de política de SELinux no tienen efecto si las reglas DAC deniegan el acceso primero. Los mensajes de auditoría sin procesar se registran en /var/log/audit/audit.log
y comienzan con la cadena type=AVC
.
En Red Hat Enterprise Linux 8, los servicios del sistema son controlados por el demonio systemd
; systemd
inicia y detiene todos los servicios, y los usuarios y procesos se comunican con systemd
usando la utilidad systemctl
. El demonio systemd
puede consultar la política de SELinux y comprobar la etiqueta del proceso que llama y la etiqueta del archivo de la unidad que la persona que llama intenta gestionar, y luego preguntar a SELinux si la persona que llama tiene o no permiso de acceso. Este enfoque refuerza el control de acceso a las capacidades críticas del sistema, que incluyen el inicio y la detención de los servicios del sistema.
El demonio systemd
también funciona como un gestor de acceso de SELinux. Recupera la etiqueta del proceso que ejecuta systemctl
o el proceso que envió un mensaje D-Bus
a systemd
. El demonio busca entonces la etiqueta del archivo de unidad que el proceso quería configurar. Finalmente, systemd
puede recuperar información del kernel si la política SELinux permite el acceso específico entre la etiqueta del proceso y la etiqueta del archivo de unidad. Esto significa que una aplicación comprometida que necesita interactuar con systemd
para un servicio específico puede ahora ser confinada por SELinux. Los escritores de políticas también pueden utilizar estos controles de grano fino para confinar a los administradores.
Para evitar un etiquetado incorrecto de SELinux y los problemas subsiguientes, asegúrese de iniciar los servicios utilizando un comando systemctl start
.
Red Hat Enterprise Linux 8 proporciona los siguientes paquetes para trabajar con SELinux:
-
políticas:
selinux-policy-targeted
,selinux-policy-mls
-
herramientas:
policycoreutils
,policycoreutils-gui
,libselinux-utils
,policycoreutils-python-utils
,setools-console
,checkpolicy