Proteger tus contenedores con SELinux

En esta página se muestra cómo proteger tus contenedores mediante la habilitación de SELinux. SELinux es compatible con Red Hat Enterprise Linux (RHEL). Si tus máquinas anfitrión ejecutan RHEL y deseas 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 GKE en Bare Metal, puedes habilitar o inhabilitar SELinux antes o después de la creación de un clúster o sus actualizaciones. Cuando SELinux está habilitado en el host, se habilita para el entorno de ejecución del contenedor.

Comprueba si SELinux está habilitado

SELinux está habilitado en RHEL de forma predeterminada.

  • Para verificarlo, ejecute el siguiente comando:

    getenforce
    

El comando muestra Enforcing, Permissive o Disabled. Si el comando muestra Enforcing, puedes continuar con la actualización o la creación de tus clústeres.

Habilita SELinux

Si el comando getenforce muestra Permissive, puedes cambiar al modo Enforcing con el comando setenforce. Activar o desactivar el modo Permissive y Enforcing mediante setenforce no requiere que se reinicie el sistema. Sin embargo, si deseas que los cambios sean persistentes en todos los reinicios, debes actualizar el archivo /etc/selinux/config.

  • Para cambiar al modo Enforcing, ejecuta lo siguiente:

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

Si SELinux es Disabled, para habilitarlo, primero debes habilitarlo en el modo Permissive y reiniciar el sistema a fin de verificar que el sistema se inicie correctamente. Si no hay errores de SELinux, puedes cambiar SELinux de forma segura al modo Enforcing.

  1. Opcional: Habilita SELinux en el 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 está habilitado en modo Enforcing, SELinux se habilita para todos los procesos en el host, incluido el entorno de ejecución del contenedor.