Jump to section

¿Qué es SELinux?

Copiar URL

Cómo pasar de CentOS Linux a un sistema operativo preparado para la nube

Al pasar de CentOS Linux a un sistema operativo listo para la nube es fundamental seleccionar un sistema operativo que se alinee con sus objetivos para la nube de hoy y del futuro. Red Hat Enterprise Linux (RHEL) es una plataforma open source que se adapta a entornos físicos, virtualizados, de nube híbrida, multicloud e infraestructuras para el edge computing.

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.

Aproveche al máximo el entorno operativo Linux

En este ebook aprenderá a diseñar, implementar y gestionar las aplicaciones y las cargas de trabajo de forma más rápida y eficaz, con una experiencia uniforme en las implementaciones físicas, virtuales, del extremo de la red y de las nubes pública y privada.

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 una aplicación o un proceso (conocidos como sujetos) solicitan acceso a algún objeto, como 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.

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 se ejecuta el sistema, debe consultar el archivo /etc/sysconfig/selinux. El archivo 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 del tipo de restricción de SELinux

La aplicación del tipo de restricción 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 agrupar los elementos de manera lógica, y el kernel las gestiona durante el proceso de 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 aplicación del tipo para implementar la política definida en el sistema; es decir, las políticas de SELinux definen si un proceso que se ejecuta con cierto tipo de restricción puede acceder a un archivo que tiene una etiqueta determinada.

Habilitación de SELinux

Para habilitar SELinux en su entorno, edite /etc/selinux/config y establezca 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, cree un archivo vacío con el nombre .autorelabel en el directorio raíz y reinicie el sistema. En caso de que haya demasiados errores, deberá reiniciar el sistema en modo permisivo para que el arranque se ejecute correctamente. Una vez que se hayan vuelto a etiquetar todos los elementos, configure el modo de SELinux como impositivo con /etc/selinux/config y reinicie el sistema, o ejecute 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. Si su sistema está en riesgo, debe permanecer activado para poder protegerlo.

Los sistemas Linux y UNIX siempre han utilizado los controles DAC. SELinux es un ejemplo de un control 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 le permiten ser específico y 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.

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

  1. Etiquetas incorrectas: si las etiquetas no son las adecuadas, puede utilizar las herramientas para corregirlas.
  2. Corrección de políticas: en este caso, es probable que deba informar a SELinux sobre los cambios que haya implementado o realizar ajustes en alguna política. Puede hacerlo utilizando booleanos o módulos de políticas.
  3. Fallas en la política: es posible que haya un error en la política que deba solucionarse.
  4. Daños 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 cree que este es el caso, tome medidas de inmediato.

¿Que son los valores 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 su sistema, ejecute el comando getsebool -a.

Red Hat puede ayudarlo

Red Hat Enterprise Linux es la plataforma open source de Linux líder a nivel mundial que le permite reducir los riesgos, aplicar las políticas y la configuración de seguridad, así como mejorar la estrategia de cumplimiento normativo.

Las funciones del sistema de Red Hat Enterprise Linux son un grupo de funciones soportadas de Ansible® que aseguran un flujo de trabajo consistente así como la optimización de la ejecución de tareas manuales. Las funciones del sistema le ayudan a automatizar los flujos de trabajo de seguridad, a mantenerlos a largo plazo y a escala, con el uso mínimo de recursos. También le permite optimizar los requerimientos de los controles y el cumplimiento normativos. Con la función del sistema SELinux puede automatizar la gestión e implementación de SELinux. Esto incluye:

  • Habilitar SELinux con modo permisivo o de cumplimiento para asegurar la consistencia de los controles.
  • Personalizar valores booleanos para políticas SELinux, contextos de archivos, puertos e inicios de sesión para que cumplan con sus requerimientos.
  • Utilizar la función del sistema para conciliar contextos de archivos en archivos o directorios específicos.

 

Artículos relacionados

Artículo

¿Qué es Linux?

Linux es un sistema operativo open source que se compone del kernel, su elemento fundamental, y las herramientas, las aplicaciones y los servicios que se incluyen con él.

Artículo

¿Qué es SELinux?

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.

Artículo

¿Qué es el kernel de Linux?

El kernel de Linux es el elemento principal de los sistemas operativos (SO) Linux y es la interfaz fundamental entre el hardware de una computadora y sus procesos.

Más información sobre Linux

Productos

Base estable y probada con suficiente versatilidad para implementar aplicaciones nuevas, virtualizar los entornos y crear una nube híbrida más segura.

Contenido adicional