Cómo saber si SELinux está habilitado o deshabilitado en Ubuntu

En Tutoriales y Guías por

Algunas veces cuando he ido a ver los requisitos de instalación de un programa, uno de ellos era que SELinux estuviese deshabilitado. De esta necesidad nace la motivación de escribir el tutorial de hoy, que nos permite averiguar si SELinux está habilitado o deshabilitado en Linux Ubuntu.

Cómo saber si SELinux está habilitado o deshabilitado en Ubuntu

En mi caso he empleado Ubuntu 16.04 64bit para realizar todas las pruebas, pero seguramente se puede aplicar en otras distribuciones.

¿Qué es SELinux?

Antes de nada, debemos informarnos bien de qué es SELinux. A modo de resumen podríamos decir que es un módulo de seguridad que permite establecer políticas de seguridad para el control de acceso.

De un modo más práctico y para entenderlo mejor, podríamos decir que con SELinux preguntamos al núcleo de Linux si un proceso está autorizado para realizar una operación.

Cómo saber si SELinux está habilitado o deshabilitado en Linux Ubuntu.

Para saber si SELinux está habilitado en Ubuntu puedes hacerlo de varias formas. Yo suelo emplear la aplicación selinux-utils que está diseñada para ser usada en scripts de shell, pero que nos puede servir perfectamente.

Si no tienes esta herramienta instalada, tendrás que instalarla con el comando:
sudo apt install selinux-utils

Ahora ejecutas el comando:
selinuxenabled; echo $?

Este comando nos puede devolver dos valores:

  • Si devuelve 1, SELinux está deshabilitado.
  • Si devuleve el valor 0, SELinux está habilitado.

Para mi esta es la opción más limpia, sencilla y rápida, por eso la recomiendo.

Comprobar si SELinux está habilitado con sestatus.

Una segunda opción es emplear el comando sestatus. Para poder usarlo tiene que estar instalado en nuestro sistema las herreamientas policycoreutils. De no ser así, podemos instalarlas con el comando:
sudo apt install policycoreutils

Ahora al ejecutar el comando sestatus se mostrará en pantalla algo como:

zeokat@ubuntu:/etc/selinux$ sestatus
SELinux status:                 disabled

El propio comando nos dice el estado de SELinux, disabled (desactivado) o enabled (habilitado).

Comprobar si SELinux está habilitado desde el archivo de configuración.

En nuestro caso, como estamos usando Linux Ubuntu, el archivo de configuración de SELinux está localizado en la ruta /etc/selinux/config. Si no existe este archivo, es casi seguro que SELinux esté deshabilitado, a menos que alguien haya hecho algún tipo de cambio en la configuración por defecto de Ubuntu.

El contenido del archivo /etc/selinux/config será algo como:

# 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 two values:
# default - equivalent to the old strict and targeted policies
# mls     - Multi-Level Security (for military and educational use)
# src     - Custom policy built from source
SELINUXTYPE=default
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

En el propio archivo de configuración podemos leer los efectos que tiene el valor de la variable SELINUX:

  • Enforcing: se fuerza la política de SELinux, es decir, SELinux está habilitado.
  • Permisive: muestra advertencias SELinux en lugar de forzar.
  • Disable: SELinux deshabilitado (no se carga la política de SELinux).