Introducción
Security Enhanced Linux o SELinux es un mecanismo de seguridad integrado en el kernel de Linux utilizado por las distribuciones basadas en RHEL.
SELinux agrega una capa adicional de seguridad al sistema al permitir a los administradores y usuarios controlar el acceso a los objetos según las reglas de la política.
Las reglas de política de SELinux especifican cómo los procesos y los usuarios interactúan entre sí y cómo los procesos y los usuarios interactúan con los archivos. Cuando no existe una regla que permita explícitamente el acceso a un objeto, como para un proceso que abre un archivo, se deniega el acceso.
SELinux tiene tres modos de funcionamiento:
- Aplicación: SELinux permite el acceso basado en las reglas de política de SELinux.
- Permisivo: SELinux solo registra las acciones que se habrían denegado si se hubieran realizado en modo ejecutivo. Este modo es útil para depurar y crear nuevas reglas de política.
- Deshabilitado: No se cargan políticas de SELinux y no se registran mensajes.
De forma predeterminada, en CentOS 8, SELinux está habilitado y en modo de aplicación. Es muy recomendable mantener SELinux en modo de aplicación. Sin embargo, a veces puede interferir con el funcionamiento de algunas aplicaciones y debe configurarlo en modo permisivo o deshabilitarlo por completo.
En este tutorial, explicaremos cómo deshabilitar SELinux en CentOS 8.
Prerrequisitos
Solo el usuario root o un usuario con privilegios de sudo puede cambiar el modo SELinux.
Verifique el modo SELinux
Use el sestatus
para verificar el estado y el modo en el que SELinux se está ejecutando:
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
Memory protection checking: actual (secure)
Max kernel policy version: 31
La salida anterior muestra que SELinux está habilitado y configurado en modo de aplicación.
Cambiar el modo SELinux a permisivo
Cuando está habilitado, SELinux puede estar en modo ejecutivo o permisivo. Puede cambiar temporalmente el modo de dirigido a permisivo con el siguiente comando:
sudo setenforce 0
Sin embargo, este cambio solo es válido para la sesión de tiempo de ejecución actual y no persiste entre reinicios.
Para configurar permanentemente el modo SELinux en permisivo, siga los pasos a continuación:
Abra el /etc/selinux/config
y configure el mod SELINUX
permissive
:
sudo vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Guarde y cierre el archivo y ejecute el setenforce 0
para cambiar el modo SELinux para la sesión actual:
sudo shutdown -r now
Desactivar SELinux
En lugar de deshabilitar SELinux, se recomienda cambiar el modo a permisivo. Desactive SELinux solo cuando sea necesario para que la aplicación funcione correctamente.
Realice los siguientes pasos para deshabilitar SELinux en el sistema CentOS 8 de forma permanente:
Abra el /etc/selinux/config
y cambie el valor de SELINUX
disabled
:
sudo vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Guarde y cierre el archivo y reinicie el sistema:
sudo shutdown -r now
Al iniciar el sistema, use el sestatus
para verificar que SELinux ha sido deshabilitado:
sestatus
La salida debería verse así:
SELinux status: disabled
Conclusión
SELinux es un mecanismo para asegurar un sistema mediante la implementación de control de acceso obligatorio (MAC). SELinux está habilitado de forma predeterminada en los sistemas CentOS 8, pero se puede deshabilitar editando el archivo de configuración y reiniciando el sistema.