Administración de SELinux en Oracle Linux
Describe SELinux y proporciona orientación sobre la administración de SELinux en Oracle Linux.
La seguridad tradicional de Linux se basa en una política de control de acceso discrecional (DAC). En el modelo de seguridad del sistema DAC, el acceso a recursos como archivos y procesos se basa únicamente en la identidad y la propiedad del usuario. Si hay malware o software roto en el sistema, puede hacer cualquier cosa con los archivos y recursos que el usuario que inició el proceso tiene permiso para hacer. Si el usuario es root o la aplicación se está ejecutando con privilegios elevados (de setuid o de setgid a root), el proceso tiene control de acceso root sobre todo el sistema de archivos.
Para abordar este problema, la Agencia de Seguridad Nacional creó Security Enhanced Linux (SELinux) para proporcionar un mayor nivel de control sobre archivos, procesos, usuarios y aplicaciones en el sistema operativo Linux. La mejora de SELinux en el núcleo de Linux implementa la política de control de acceso obligatorio (MAC), que le permite definir una política de seguridad que configura permisos granulares para todos los usuarios, programas, procesos, archivos y dispositivos. Las decisiones de control de acceso del núcleo se basan en la sensibilidad de los recursos desde una perspectiva de seguridad, y no solo en la identidad del usuario autenticado.
Cuando se produce un acceso relevante para la seguridad, como cuando un proceso abre un archivo, SELinux intercepta la operación en el núcleo. Si una regla de política MAC permite la operación, continúa. De lo contrario, SELinux bloquea la operación y devuelve un error al proceso. El núcleo comprueba y aplica las reglas de política de DAC antes que las reglas de MAC, por lo que no comprueba las reglas de política de SELinux si las reglas de DAC ya han denegado el acceso a un recurso.
Descripciones de paquetes de SELinux
SELinux contiene varios paquetes, cada uno de los cuales contiene utilidades específicas que puede usar para administrar SELinux en sistemas Oracle Linux. Algunos paquetes se instalan de manera predeterminada, mientras que otros paquetes son opcionales.
En la siguiente tabla, se muestran los paquetes de SELinux instalados de manera predeterminada con Oracle Linux.
|
Paquete |
Descripción |
|---|---|
|
|
Proporciona utilidades como |
|
|
Proporciona la API que utilizan las aplicaciones de SELinux para obtener y definir contextos de seguridad de archivos y procesos, y para obtener decisiones de políticas de seguridad. |
|
|
Contiene enlaces Python para desarrollar aplicaciones SELinux. |
|
|
Proporciona la política de referencia de SELinux, que se utiliza como base para otras políticas, como la política de destino de SELinux. |
|
|
Proporciona la política de destino de SELinux, donde los objetos fuera de los dominios de destino se ejecutan en DAC. |
|
|
Proporciona las utilidades |
En la siguiente tabla, se muestran los paquetes útiles de SELinux que no están instalados de manera predeterminada. Instale los paquetes necesarios mediante el comando dnf.
|
Paquete |
Descripción |
|---|---|
|
|
Traduce los niveles de SELinux, como |
|
|
Proporciona utilidades Python para el funcionamiento de SELinux, como |
|
|
Proporciona la utilidad sandbox para crear sandboxes de SELinux para ejecutar comandos en un dominio de SELinux estrechamente limitado. |
|
|
Proporciona una política estricta de seguridad de varios niveles (MLS) como alternativa a la política de destino de SELinux. |
selinux-policy-doc
|
Proporciona páginas manuales para muchos elementos de política de SELinux. |
|
|
Permite ver los mensajes |
|
|
Convierte los mensajes de denegación de acceso de SELinux en descripciones detalladas que puede ver en la línea de comandos mediante el comando |
|
|
Proporciona la distribución SETools de herramientas y bibliotecas de la tecnología Tresys, que puede utilizar para analizar y consultar políticas, supervisar y generar informes de logs de auditoría y gestionar el contexto de archivos. |
Para obtener más información, consulte SELinux Project Wiki for community documentation y las páginas del manual de comandos selinux(8) y otras páginas de SELinux.
Utilidades de SELinux
En la siguiente tabla, se describen las principales utilidades que puede utilizar para administrar SELinux y los paquetes que los contienen.
|
Utilidad |
Paquete |
Descripción |
|---|---|---|
|
|
|
Genera reglas |
|
|
|
Analiza los registros de denegación para explicar por qué se bloqueó el acceso y recomienda ajustes relevantes de SELinux. |
|
|
|
Muestra estadísticas para la caché vectorial de acceso (AVC) de SELinux. |
|
|
|
Cambia o elimina la categoría de seguridad de un archivo o usuario. |
|
|
|
Cambia el contexto de SELinux de archivos y directorios. |
|
|
|
Corrige el contexto de seguridad de los sistemas de archivos. |
|
|
|
Informa el modo actual de SELinux. |
|
|
|
Informa los valores booleanos de SELinux. |
|
|
|
Carga una nueva política de SELinux en el núcleo. |
|
|
|
Consulta la política del sistema y muestra el contexto de seguridad por defecto asociado a la ruta del archivo. |
|
|
|
Restablece el contexto de seguridad en uno o más archivos. |
|
|
|
Daemon que observa el desarrollo de archivos y define el contexto del archivo por defecto. |
|
|
|
Ejecuta un comando en el contexto especificado. |
|
|
|
Ejecuta un comando en un sandbox de SELinux. |
|
|
|
Actúa como interfaz de usuario para el sistema |
|
|
|
Comprueba las políticas de SELinux. |
|
|
|
Muestra el contexto SELinux desde un archivo, programa o entrada de usuario. |
|
|
|
Compara las políticas de SELinux. |
|
|
|
Consulta las políticas de SELinux. |
|
|
|
Muestra todos los contextos de SELinux a los que puede acceder un usuario. |
|
|
|
Muestra el contexto de SELinux por defecto para un usuario. |
|
|
|
Indica si SELinux está activado. |
|
|
|
Gestiona las políticas de SELinux. |
|
|
|
Gestiona los módulos de políticas de SELinux. |
|
|
|
Muestra las dependencias entre los paquetes de políticas de SELinux. |
|
|
|
Expande un paquete de módulo de política de SELinux. |
|
|
|
Enlaza los paquetes del módulo de política de SELinux. |
|
|
|
Crea un paquete de módulo de política de SELinux. |
|
|
|
Consulta las políticas de SELinux. |
|
|
|
Muestra el modo SELinux y la política de SELinux que están en uso. |
|
|
|
Cambia el modo SELinux. |
|
|
|
Define los valores booleanos de SELinux. |
|
|
|
Define el contexto de seguridad para uno o más archivos. |
Configuración de los modos de SELinux
SELinux se ejecuta en modo enforcing o permissive:
-
enforcing -
El núcleo deniega el acceso a los usuarios y programas si las reglas de la política de seguridad de SELinux no les otorgan permisos. Todos los mensajes de denegación se registran como denegaciones AVC (Access Vector Cache). Éste es el modo predeterminado.
-
permissive -
El núcleo no aplica las reglas de la política de seguridad, pero SELinux envía mensajes de denegación a un archivo log. Esto le permite ver qué acciones se denegarían si SELinux se ejecuta en modo
enforcing. Utilice este modo para ayudarle a implantar SELinux en un sistema de forma eficaz.
Para mostrar el modo actual de SELinux, ejecute el siguiente comando:
getenforce
Para definir el modo actual en enforcing, ejecute el siguiente comando:
sudo setenforce enforcing
Para definir el modo actual en permissive, ejecute el siguiente comando:
sudo setenforce permissive
El valor que define para un modo mediante setenforce no se mantiene tras los reinicios. Para configurar el modo predeterminado de SELinux, edite el archivo de configuración para SELinux, /etc/selinux/config y defina el valor de la directiva SELINUX en enforcing o permissive.
Desactivación de SELinux
Puede desactivar completamente SELinux definiendo el parámetro de núcleo selinux en cero.
Oracle no recomienda desactivar SELinux en los sistemas de producción. En su lugar, utilice el modo permissive.
Instalación de la documentación de políticas
SELinux es complejo, con muchas opciones para configurar el acceso mediante políticas. Puede obtener información detallada sobre las políticas disponibles en las páginas manuales que proporciona el paquete selinux-policy-doc. Esta tarea le muestra cómo acceder a esta información.
La documentación de políticas también contiene información sobre usuarios y roles. Por ejemplo, puede leer más sobre el usuario user_u sin privilegios de SELinux y el rol user_r en la página del manual user_selinux(8). La documentación de la política describe las restricciones que se aplican a diferentes contextos de seguridad y las opciones booleanas disponibles para personalizar la política de un entorno.