Protege tus contenedores mediante SELinux

En esta página se explica cómo proteger los contenedores habilitando SELinux. SELinux es compatible con Red Hat Enterprise Linux (RHEL). Si tus máquinas host ejecutan RHEL y quieres habilitar SELinux en tu clúster, debes habilitar SELinux en todas tus máquinas host. A partir de la versión 1.9.0 de Google Distributed Cloud, puedes habilitar o inhabilitar SELinux antes o después de crear o actualizar un clúster. Cuando SELinux está habilitado en el host, también lo está en el tiempo de ejecución del contenedor.

Comprobar si SELinux está habilitado

SELinux está habilitado en RHEL de forma predeterminada.

  • Para verificarlo, ejecuta el siguiente comando:

    getenforce
    

El comando devuelve Enforcing, Permissive o Disabled. Si el comando devuelve Enforcing, puede continuar con la actualización o la creación de sus clústeres.

Habilitar SELinux

Si el comando getenforce devuelve Permissive, puedes cambiar al modo Enforcing con el comando setenforce. Para alternar entre los modos Permissive y Enforcing con setenforce, no es necesario reiniciar el sistema. Sin embargo, si quieres que los cambios se mantengan después de reiniciar el dispositivo, debes actualizar el archivo /etc/selinux/config.

  • Para cambiar al modo Enforcing, ejecuta el siguiente comando:

    sudo setenforce 1 # temporary
    sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config # persistent - after reboot
    

Si SELinux está Disabled, para habilitarlo, te recomendamos que lo habilites primero en modo Permissive y reinicies el sistema para verificar que se inicia correctamente. Si no hay errores de SELinux, puedes cambiar SELinux al modo Enforcing sin problemas.

  1. Opcional: habilita SELinux en modo Permissive:

      sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config
      sudo reboot
    
  2. Si el sistema se reinicia correctamente sin errores de SELinux, puedes habilitar el modo Enforcing:

      sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
      sudo reboot
    

Una vez que SELinux se ha habilitado en el modo Enforcing, se habilita para todos los procesos del host, incluido el tiempo de ejecución del contenedor.