本页面介绍如何通过启用 SELinux 来保护容器。RHEL 和 CentOS 支持 SELinux。如果您的宿主机正在运行 RHEL 或 CentOS,并且您想要为集群启用 SELinux,则您必须在所有宿主机上启用 SELinux。从 Anthos clusters on Bare Metal 1.9.0 版开始,您可以在创建集群或升级集群之前或之后启用或停用 SELinux。在主机上启用 SELinux 后,它将为容器运行时启用。
检查是否已启用 SELinux
RHEL 和 CentOS 上默认启用 SELinux。如需对此进行验证,请运行以下命令:
$ getenforce
该命令会返回 Enforcing
、Permissive
或 Disabled
。如果该命令返回 Enforcing
,您可以继续升级或创建集群。
启用 SELinux
如果 getenforce
命令返回 Permissive
,则您可以使用 setenforce
命令切换到 Enforcing
模式。使用 setenforce
在 Permissive
和 Enforcing
模式之间切换不需要重新启动系统。不过,如果您希望这些更改在重新启动后仍然存在,则必须更新 /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
模式。
可选:在
Permissive
模式下启用 SELinux:$ sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config $ sudo reboot
如果系统成功重新启动并且没有出现任何 SELinux 错误,您便可以启用
Enforcing
模式:$ sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config $ sudo reboot
在 Enforcing
模式下启用 SELinux 后,系统会为主机上的所有进程(包括容器运行时)启用 SELinux。