使用 SELinux 保护您的容器

本页面介绍如何通过启用 SELinux 来保护容器。Red Hat Enterprise Linux (RHEL) 支持 SELinux。如果您的主机正在运行 RHEL,并且您希望为集群启用 SELinux,则必须在所有主机中启用 SELinux。从 GKE on Bare Metal 版本 1.9.0 开始,您可以在创建集群或升级集群之前或之后启用或停用 SELinux。在主机上启用 SELinux 后,就会为容器运行时启用 SELinux。

检查是否已启用 SELinux

默认情况下,RHEL 在 RHEL 上启用 SELinux。

  • 如需对此进行验证,请运行以下命令:

    getenforce
    

该命令会返回 EnforcingPermissiveDisabled。如果该命令返回 Enforcing,您可以继续升级或创建集群。

启用 SELinux

如果 getenforce 命令返回 Permissive,则您可以使用 setenforce 命令切换到 Enforcing 模式。使用 setenforcePermissiveEnforcing 模式之间切换不需要重新启动系统。不过,如果您希望这些更改在重新启动后仍然存在,则必须更新 /etc/selinux/config 文件。

  • 如需切换到 Enforcing 模式,请运行以下命令:

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

如果 SELinux 为 Disabled,则如需启用它,我们建议您首先在 Permissive 模式下启用它,然后重新启动系统以验证系统是否已成功启动。如果没有出现任何 SELinux 错误,您便可以安全地将 SELinux 切换到 Enforcing 模式。

  1. 可选:在 Permissive 模式下启用 SELinux:

      sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config
      sudo reboot
    
  2. 如果系统成功重新启动,并且没有出现 SELinux 错误,那么您可以启用 Enforcing 模式:

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

Enforcing 模式下启用 SELinux 后,系统会为主机上的所有进程(包括容器运行时)启用 SELinux。