SELinux significa “Linux con seguridad mejorada “. La seguridad estándar de Linux se basa en el control de acceso discrecional (DAC). Con DAC, el acceso a archivos y dispositivos se basa únicamente en la identidad y propiedad del usuario. Cada archivo puede tener permisos de lectura, escritura y ejecución para el propietario del archivo, para el grupo y para otros usuarios.
SELinux fue creado por la Agencia de Seguridad Nacional de EE. UU. para proporcionar un nivel de control más detallado sobre archivos, procesos, usuarios y aplicaciones en el sistema. Es una mejora del kernel de Linux e implementa un tipo diferente de seguridad llamado Control de acceso obligatorio (MAC). La política MAC se administra de forma centralizada en lugar de que la administre el usuario.
SELinux se ejecuta en uno de tres modos:
- Cumplimiento :Se deniega el acceso a usuarios y programas a menos que lo permitan las reglas de la política de seguridad de SELinux.
- Permisivo :Las reglas de la política de seguridad no se aplican, pero SELinux envía mensajes de denegación a un archivo de registro.
- Deshabilitado :SELinux no aplica una política de seguridad porque no hay ninguna política cargada en el kernel. Solo las reglas DAC se utilizan para el control de acceso.
Mostrar el modo SELinux
Puede utilizar el sestado Comando para mostrar el modo SELinux, así como información adicional sobre SELinux.
# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
Puedes usar el getenforce comando para mostrar el modo SELinux. Este comando muestra el modo actual:“Aplicando ”, “Permisivo “,” o “Deshabilitado “.” Por ejemplo:
# getenforce Enforcing
Cambiar el modo SELinux
La mayoría de las veces vería a personas cambiar el modo de "aplicación" a "permisivo" para resolver un problema relacionado con los permisos de archivos/procesos. Esta no es la mejor práctica para aplicar, pero es una de las formas más utilizadas y rápidas de solucionar el problema en Linux. Puede usar el comando setenforce para cambiar el modo a "Aplicando (1) ” o “Permisivo (0) “. Por ejemplo:
# setenforce 0 # getenforce Permissive
Booleanos
SELinux también proporciona “Booleanos “, que permite cambiar partes de una política de SELinux en tiempo de ejecución, sin recargar o recompilar una política de SELinux. Puede mostrar una lista de valores booleanos, información de estado y una descripción del valor booleano ejecutando el siguiente comando:
# semanage boolean -l SELinux boolean State Default Description privoxy_connect_any (on , on) Allow privoxy to connect any smartmon_3ware (off , off) Allow smartmon to 3ware mpd_enable_homedirs (off , off) Allow mpd to enable homedirs xdm_sysadm_login (off , off) Allow xdm to sysadm login ....
Puede cambiar el estado de un valor booleano específico a activado o desactivado utilizando setsebool dominio. Por ejemplo, para activar el booleano ftp_home_dir:
# setsebool ftpd_use_nfs on
Usa el getsebool comando para mostrar el estado de un booleano específico. Ejemplo:
# getsebool ftpd_use_nfs ftpd_use_nfs --> on