k8s Node节点安全基线

访问控制

1.高危-确保–anonymous-auth参数设置为false

描述:
启用后,未被其他配置的身份验证方法拒绝的请求将被视为匿名请求。 然后,这些请求由Kubelet服务器处理。 您应该依靠身份验证来授权访问并禁止匿名请求

加固建议:
在每个节点上编辑<kubelet_config>文件,并将KUBELET_ARGS参数设置为
--anonymous-auth = false

2.高危-确保 --make-iptables-util-chains 参数设置为 true

描述:
允许 Kubelet 管理 iptables。
Kubelets 可以根据您为 pod 选择网络选项的方式自动管理对 iptables 的所需更改。 建议让 kubelets 管理对 iptables 的更改。 这确保 iptables 配置与 pods 网络配置保持同步。 使用动态 pod 网络配置更改手动配置 iptables 可能会妨碍 pod/容器与外部世界之间的通信。 您的 iptables 规则可能过于严格或过于开放。
影响:Kubelet 将管理系统上的 iptables 并保持同步。
如果您正在使用任何其他 iptables 管理解决方案,那么可能会有一些冲突(如业务冲突,确保功能完整的情况下考虑加白处理)。

加固建议:
如果使用 Kubelet 配置文件,请编辑该文件(/var/lib/kubelet/config.yaml)以设置 makeIPTablesUtilChains: true。 如果使用命令行参数,请编辑每个工作节点上的 kubelet 服务文件 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 设置KUBELET_SYSTEM_PODS_ARGS 变量(删除 --make-iptables-util-chains 参数或设置为true)。 根据您的系统,重新启动 kubelet 服务

文件权限

3.高危-确保 kubelet 服务文件权限设置为 644 或更多限制

描述:
kubelet 服务文件控制着设置 kubelet 服务在工作节点中的行为的各种参数。 您应该限制其文件权限以维护文件的完整性。 该文件应该只能由系统管理员写入。

加固建议:
确保kubeadmin文件的权限为644

使用chmod 644 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 命令修正文件权限

使用stat -c %a /etc/systemd/system/kubelet.service.d/10-kubeadm.conf Verify命令可查看权限

4.高危-确保 kubelet 服务文件所有权设置为 root:root

描述:
kubelet 服务文件控制着设置 kubelet 服务在工作节点中的行为的各种参数。你应该确保他的文件所属者被正确的设置

加固建议:

执行命令
chown root:root /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 修改文件拥有者

stat -c %U:%G /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 查看是否修改成功

5.高危-确保 --kubeconfig kubelet.conf 文件权限设置为 644 或更多限制

描述:
kubelet.conf 文件是节点的 kubeconfig 文件,它控制着设置工作节点行为和身份的各种参数。 您应该限制其文件权限以维护文件的完整性。 该文件应该只能由系统上的管理员写入

加固建议:

执行命令chmod 644 /etc/kubernetes/kubelet.conf 修改文件权限
通过命令stat -c %a /etc/kubernetes/kubelet.conf可查看配置文件权限

6.高危-确保 kubelet --config 配置文件的权限设置为 644 或更多限制

描述:
kubelet 从 --config 参数指定的配置文件中读取各种参数,包括安全设置。 如果指定了此文件,则应限制其在系统上的文件权限

加固建议:
执行命令 chmod 644 /var/lib/kubelet/config.yaml
修改文件权限 stat -c %a /var/lib/kubelet/config.yaml 可以查看文件权限

7.高危-确保 kubelet --config 配置文件所有权设置为 root:root

描述:
kubelet 从 --config 参数指定的配置文件中读取各种参数,包括安全设置。如果指定了此文件,则应限制其文件权限以保持文件的完整性。该文件应归 root:root 所有。

加固建议:

执行命令 chown root:root /var/lib/kubelet/config.yaml 修改文件权限
执行命令 stat -c %U:%G /var/lib/kubelet/config.yaml 可以查看文件所属者

身份鉴别

8.高危-确保–authorization-mode参数未设置为AlwaysAllow

描述:
默认情况下,Kubelet允许所有经过身份验证的请求(甚至是匿名请求),而无需来自apiserver的明确授权检查。 您应该限制这种行为,并且只允许明确授权的请求
未经授权的请求将被拒绝。

加固建议:
编辑<kubelet_启动文件> 添加/修改为–authorization-mode = Webhook或其他值 要求–authorization-mode的值不能为AlwaysAllow

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐