Security Enhanced Linux o SELinux es un mecanismo de seguridad integrado en el kernel de Linux que utilizan las distribuciones basadas en RHEL.

SELinux agrega una capa adicional de seguridad al sistema al permitir que los administradores y usuarios controlen el acceso a los objetos según las reglas de la política.

Las reglas de política de SELinux especifican cómo interactúan los procesos y los usuarios entre sí, así como también cómo interactúan los procesos y los usuarios con los archivos. Cuando no hay 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 operación:

  • Cumplimiento: SELinux permite el acceso basado en las reglas de política de SELinux.
  • Permisivo: SELinux solo registra acciones que se habrían denegado si se ejecutaran en modo de cumplimiento. Este modo es útil para depurar y crear nuevas reglas de política.
  • Desactivado: no se carga ninguna política de SELinux y no se registra ningún mensaje.

De manera predeterminada, en CentOS 8, SELinux está habilitado y en modo de aplicación. Se recomienda encarecidamente mantener SELinux en modo de cumplimiento. Sin embargo, a veces puede interferir con el funcionamiento de alguna aplicación y debe configurarlo en el modo permisivo o deshabilitarlo por completo.

En este tutorial, explicaremos cómo deshabilitar SELinux en CentOS 8.

requisitos previos

Solo el usuario root o un usuario con privilegios sudo puede cambiar el modo SELinux.

Comprobación del modo SELinux

Utilice el sestatuscomando para comprobar el estado y el modo en que se ejecuta 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
Memory protection checking:     actual (secure)
Max kernel policy version:      31

El resultado anterior muestra que SELinux está habilitado y configurado en modo de cumplimiento.

Cambiando el Modo SELinux a Permisivo

Cuando está habilitado, SELinux puede estar en modo obligatorio o permisivo. Puede cambiar temporalmente el modo de objetivo a permisivo con el siguiente comando:

sudo setenforce 0

Sin embargo, este cambio es válido solo para la sesión de tiempo de ejecución actual y no persiste entre reinicios.

Para establecer permanentemente el modo SELinux en permisivo, siga los pasos a continuación:

  1. Abra el /etc/selinux/configarchivo y configure el SELINUXmod en permissive:

    /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
  2. Guarde el archivo y ejecute el setenforce 0comando para cambiar el modo SELinux para la sesión actual:

    sudo shutdown -r now

Deshabilitar SELinux

En lugar de deshabilitar SELinux, se recomienda enfáticamente cambiar el modo a permisivo. Deshabilite SELinux solo cuando sea necesario para el correcto funcionamiento de su aplicación.

Realice los pasos a continuación para deshabilitar SELinux en su sistema CentOS 8 de forma permanente:

  1. Abra el /etc/selinux/configarchivo y cambie el SELINUXvalor a disabled:

    /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
  2. Guarde el archivo y reinicie el sistema:

    sudo shutdown -r now
  3. Cuando se inicie el sistema, use el sestatuscomando para verificar que SELinux se haya desactivado:

    sestatus

    La salida debería verse así:

    SELinux status:                 disabled

Conclusión

SELinux es un mecanismo para asegurar un sistema implementando el control de acceso obligatorio (MAC). SELinux está habilitado de manera predeterminada en los sistemas CentOS 8, pero se puede deshabilitar editando el archivo de configuración y reiniciando el sistema.

Para obtener más información sobre las potentes funciones de SELinux, visite la guía CentOS SELinux .