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 RHEL y CentOS. Si tus máquinas host ejecutan RHEL o CentOS y deseas habilitar SELinux para tu clúster, debes habilitar SELinux en todas tus máquinas anfitrión. 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 del clúster o las actualizaciones del clúster. Cuando SELinux está habilitado en el host, está habilitado para el entorno de ejecución del contenedor.

Comprueba si SELinux está habilitado

SELinux está habilitado en RHEL y CentOS 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 de forma correcta 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.