¿Qué es SELinux?

Copiar URL

Security-Enhanced Linux (SELinux) es una arquitectura de seguridad para los sistemas Linux® que otorga a los administradores mayor control sobre quién puede acceder al sistema. La Agencia de Seguridad Nacional (NSA) de Estados Unidos desarrolló este producto originalmente como una serie de parches para el kernel de Linux utilizando los módulos de seguridad de Linux (LSM).  

SELinux se puso a disposición de la comunidad open source en el año 2000 y se integró al kernel de Linux upstream en 2003.

Prueba un sistema operativo con SELinux de forma gratuita

SELinux define los controles de acceso para las aplicaciones, los procesos y los archivos dentro de un sistema. Utiliza políticas de seguridad, que consisten en un conjunto de reglas para indicar a SELinux a qué elementos se puede acceder. 

Cuando las aplicaciones o los procesos, a los que se denomina sujetos, solicitan acceso a algún objeto, por ejemplo, a un archivo, SELinux consulta la caché de vector de acceso (AVC), donde se almacenan los permisos de los objetos y los sujetos.

Si SELinux no puede determinar el acceso en función de los permisos almacenados en la caché, envía la solicitud al servidor de seguridad, que analiza el contexto de seguridad de la aplicación o del proceso y del archivo. El contexto de seguridad se aplica desde la base de datos de políticas de SELinux. Luego, se otorga o se niega el permiso. 

En caso de que sea denegado, aparecerá el mensaje "avc: denied" en /var/log.messages.

Si quieres evaluar la seguridad de tu nube, haz clic aquí

Configuración de SELinux 

Hay muchas formas de configurar SELinux para proteger el sistema. Las más comunes son la política específica o la seguridad de varios niveles (MLS).

La primera es la opción predeterminada e incluye varios procesos, tareas y servicios. En cambio, la MLS puede ser muy compleja, y solo las organizaciones gubernamentales suelen utilizarla. 

Para saber con qué configuración debería ejecutarse el sistema, consulta el archivo /etc/sysconfig/selinux. Este contendrá una sección donde se indica si SELinux se encuentra en modo permisivo, impositivo o deshabilitado, y qué política debería estar cargada.

Etiquetado y aplicación de la restricción por tipo de SELinux

La aplicación de la restricción por tipo y el etiquetado son los conceptos más importantes de SELinux.

Este producto trabaja como un sistema de etiquetado, lo cual implica que hay una etiqueta de SELinux asociada a cada archivo, proceso y puerto de un sistema. Las etiquetas permiten formar grupos de manera lógica, y el kernel las gestiona durante el arranque.

El formato de las etiquetas es user:role:type:level (el nivel es opcional). El usuario, la función y el nivel se utilizan en las implementaciones más avanzadas de SELinux, como la MLS. El tipo de etiqueta es el aspecto más importante de las políticas específicas. 

SELinux utiliza la restricción por tipo para implementar la política definida en el sistema. La restricción por tipos es una parte de una política de SELinux que define si un proceso de cierto tipo en ejecución puede acceder a un archivo etiquetado con un tipo determinado.

Habilitación de SELinux

Para habilitar SELinux en tu entorno, edita /etc/selinux/config y establece el ajuste SELINUX=permissive. Dado que SELinux estaba deshabilitado, no es conveniente configurarlo como impositivo de inmediato, ya que es probable que haya elementos mal etiquetados en el sistema que podrían impedir su arranque.  

Para volver a etiquetar el sistema de archivos automáticamente, crea un archivo vacío con el nombre .autorelabel en el directorio raíz y reinicia el sistema. En caso de que haya demasiados errores, deberás reiniciar el sistema en modo permisivo para que el arranque se ejecute correctamente. Una vez que se hayan vuelto a etiquetar todos los elementos, configura el modo de SELinux como impositivo con /etc/selinux/config y reinicie el sistema, o ejecuta el comando setenforce 1.

Si el administrador de sistemas no conoce bien la línea de comandos, puede utilizar las herramientas gráficas disponibles para gestionar SELinux. 

SELinux brinda seguridad adicional al sistema, que se encuentra integrada en las distribuciones de Linux. Debe permanecer activado para poder proteger tu sistema en caso de amenazas.

Descubre maneras de mejorar la seguridad con Red Hat® Enterprise Linux

Recursos de Red Hat

Los sistemas Linux y UNIX siempre han utilizado el control DAC. SELinux es un ejemplo de un sistema MAC para Linux. 

Con el DAC, los archivos y los procesos tienen propietarios, que pueden ser usuarios, grupos o cualquier persona. Los usuarios pueden cambiar los permisos de sus propios archivos.

Con un sistema DAC, el superusuario tiene control de acceso total. Esto le permite acceder a los archivos de cualquier otro usuario o ejecutar cualquier tipo de acción en el sistema. 

Sin embargo, en los sistemas MAC, como SELinux, hay una política de acceso establecida a nivel administrativo. Incluso si se modifica la configuración de DAC en el directorio principal, la política establecida de SELinux protegerá el sistema e impedirá que otro usuario o proceso acceda al directorio. 

Las políticas de SELinux te permiten mayor especificidad para abarcar una gran cantidad de procesos. Puede realizar modificaciones con SELinux para limitar el acceso entre los usuarios, los archivos, los directorios y más.

Aprende a gestionar los entornos de Linux con técnicas y herramientas modernas

Si SELinux arroja un error, probablemente debas solucionar uno de estos cuatro problemas comunes:

  1. Las etiquetas son incorrectas.Si las etiquetas no son las adecuadas, puedes utilizar las herramientas para corregirlas.
  2. Deben corregirse políticas.En este caso, es probable que debas informar a SELinux sobre los cambios que hayas implementado o realizar ajustes en alguna política. Puedes hacerlo utilizando booleanos o módulos de políticas.
  3. La política presenta fallas. Es posible que haya un error en la política que deba solucionarse.
  4. Se infiltran en el sistema.SELinux protege los sistemas en muchas situaciones, pero de todos modos existe la posibilidad de que estos estén en riesgo. Si crees que este es el caso, toma medidas de inmediato.

Booleanos

Los booleanos son ajustes que permiten activar o desactivar las funciones de SELinux. Hay cientos de ellos, y muchos ya vienen definidos. Para descubrir qué booleanos se han configurado en tu sistema, ejecuta el comando getsebool -a.

Red Hat Enterprise Linux es la plataforma open source de Linux líder en el mundo que te permite reducir los riesgos, aplicar las políticas y la configuración de seguridad y mejorar la estrategia de cumplimiento normativo. 

Las funciones del sistema de Red Hat Enterprise Linux son un grupo de funciones de Ansible® compatibles que aseguran que los flujos de trabajo sean uniformes y optimizan la ejecución de las tareas manuales. Te ayudan a automatizar los flujos de trabajo de seguridad, a mantenerlos a largo plazo y según lo necesites, con el uso mínimo de recursos. También te permiten optimizar los requisitos de control y cumplimiento. Con la función del sistema SELinux, puedes automatizar la gestión y la implementación de SELinux. Esto incluye: 

  • habilitar SELinux con modo permisivo o impositivo para asegurar la uniformidad de los controles;
  • personalizar los valores booleanos de las políticas de SELinux, los contextos de los archivos, los puertos y los inicios de sesión para que cumplan con tus requisitos.
  • utilizar la función del sistema para conciliar los contextos de los archivos en otros archivos o en directorios específicos.

Obtén más información sobre las funciones del sistema Red Hat Enterprise Linux

Hub

El blog oficial de Red Hat

Obtenga la información más reciente sobre nuestro ecosistema de clientes, socios y comunidades.

Todas las versiones de prueba de los productos de Red Hat

Con las versiones de prueba gratuitas de nuestros productos, podrás adquirir experiencia práctica, prepararte para obtener una certificación o evaluar las soluciones para saber si son adecuadas para tu empresa.

Más información

La gestión de los secretos

La gestión de los secretos es un método que garantiza la privacidad de la información confidencial necesaria para ejecutar las operaciones diarias.

¿Qué es el control de acceso basado en funciones?

El control de acceso basado en funciones (RBAC) es un método para gestionar el acceso de los usuarios a los sistemas, las redes o los recursos según su función dentro de un equipo o una empresa.

La seguridad de Kubernetes

En los últimos años, ha aumentado considerablemente la adopción de Kubernetes, una tecnología prácticamente nueva; sin embargo, las inversiones en seguridad no siempre han ido a la par.

Seguridad: lecturas recomendadas

Artículos relacionados