Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 8. Creación de políticas SELinux para contenedores

RHEL 8 proporciona una herramienta para generar políticas SELinux para contenedores utilizando el paquete udica. Con udica, puede crear una política de seguridad a medida para controlar mejor cómo un contenedor accede a los recursos del sistema anfitrión, como el almacenamiento, los dispositivos y la red. Esto le permite endurecer sus despliegues de contenedores contra las violaciones de la seguridad y también simplifica la consecución y el mantenimiento del cumplimiento normativo.

8.1. Introducción al generador de políticas SELinux de udica

Para simplificar la creación de nuevas políticas de SELinux para contenedores personalizados, RHEL 8 proporciona la utilidad udica. Puede utilizar esta herramienta para crear una política basada en una inspección del archivo de notación de objetos JavaScript (JSON) del contenedor, que contiene definiciones de capacidades Linux, puntos de montaje y puertos. La herramienta combina consecuentemente las reglas generadas usando los resultados de la inspección con las reglas heredadas de un bloque de SELinux Common Intermediate Language (CIL) especificado.

El proceso de generación de la política SELinux para un contenedor utilizando udica tiene tres partes principales:

  1. Análisis del archivo de especificaciones del contenedor en formato JSON
  2. Encontrar las reglas adecuadas para permitir el uso de los resultados de la primera parte
  3. Generación de la política final de SELinux

Durante la fase de análisis, udica busca las capacidades de Linux, los puertos de red y los puntos de montaje.

Basándose en los resultados, udica detecta qué capacidades de Linux necesita el contenedor y crea una regla SELinux que permite todas estas capacidades. Si el contenedor se vincula a un puerto específico, udica utiliza las bibliotecas de espacio de usuario de SELinux para obtener la etiqueta SELinux correcta de un puerto que es utilizado por el contenedor inspeccionado.

Después, udica detecta qué directorios están montados en el espacio de nombres del sistema de archivos del contenedor desde el host.

La función de herencia de bloques del CIL permite a udica crear plantillas de SELinux allow rules centradas en una acción específica, por ejemplo:

  • allow accessing home directories
  • allow accessing log files
  • allow accessing communication with Xserver.

Estas plantillas se llaman bloques y la política final de SELinux se crea fusionando los bloques.

Recursos adicionales