重要
本文仅适用于 AKS 使用的 Ubuntu 24.04 映像。 建议状态和指南反映 CIS Ubuntu 24.04 LTS 基准 v1.0.0以及特定时间的 Ubuntu 24.04 映像(发布于 2025 年 9 月 18 日)。 它们可能不适用于其他 Ubuntu 版本(例如 Ubuntu 22.04)。 在应用指南之前,请验证 OS 版本和基准版本。
本文介绍适用于 AKS 使用的 Ubuntu 映像的安全 OS 配置。 AKS 是符合 SOC、ISO、PCI DSS 和 HIPAA 标准的安全服务。 有关 AKS 安全性的详细信息,请参阅 Azure Kubernetes 服务(AKS)中群集的安全概念。 若要详细了解 CIS 基准,请参阅 Center for Internet Security (CIS) 基准。
Recommendations
表格包含四个部分:
- CIS ID:与每个基线规则关联的规则 ID。
- 建议说明:CIS 基准发布的建议的说明。
- 级别:L1(即级别 1)推荐可在任何系统上配置的基本必需安全要求,这些要求应该很少或不会导致服务中断或功能降低。
-
状态:
- 通过 - 已应用建议。
- 失败 - 未应用建议。
- Manual - 无法自动扫描此建议。 CIS 基准中有指示需要手动审核。
- N/A - 建议涉及与 AKS 无关的清单文件权限要求。
- 取决于环境 - 建议在用户的特定环境中应用,且不受 AKS 控制。
- 等效控制 - 建议以不同的等效方式实现。
-
原因:
- 潜在的操作影响 - 未应用建议,因为该建议会对服务产生负面影响。
- 在其他地方覆盖 - 建议在 Azure 云计算中的另一项控制措施的覆盖范围内。
Ubuntu LTS 24.04
AKS 群集部署在主机虚拟机上,该虚拟机运行具有内置安全配置的操作系统。 此操作系统用于在 AKS 上运行容器。 此主机操作系统基于已应用安全配置的 Ubuntu 24.04.LTS 映像。
作为安全优化操作系统的一部分:
- AKS 默认提供经过安全优化的主机 OS,但不提供选择备用操作系统的选项。
- 安全优化的主机 OS 专为 AKS 构建和维护,不支持 AKS 平台以外的使用。
- 为了减少受攻击面,我们在 OS 中禁用了一些不必要的内核模块驱动程序。
注释
与 CIS 基准无关,Azure 会将每日修补程序(包括安全修补程序)应用到 AKS 虚拟主机。
内置安全配置的主机 OS 旨在减少受攻击面,并以安全的方式优化容器部署。
Ubuntu LTS 24.04 基准测试
以下是基于 CIS 规则的 CIS Ubuntu 24.04 LTS 基准 v1.0.0 建议的结果:
| CIS 段落编号 | 建议说明 | 状态 | 原因 |
|---|---|---|---|
| 1 | 初始设置 | ||
| 1.1 | 文件系统 | ||
| 1.1.1 | 配置文件系统内核模块 | ||
| 1.1.1.1 | 确保 cramfs 内核模块不可用 | 通过 | |
| 1.1.1.2 | 确保 freevxfs 内核模块不可用 | 通过 | |
| 1.1.1.3 | 确保 hfs 内核模块不可用 | 通过 | |
| 1.1.1.4 | 确保 hfsplus 内核模块不可用 | 通过 | |
| 1.1.1.5 | 确保 jffs2 内核模块不可用 | 通过 | |
| 1.1.1.9 | 确保 usb-storage 内核模块不可用。 | 通过 | |
| 1.1.1.10 | 确保未使用的文件系统内核模块不可用 | Manual | |
| 1.1.2 | 配置文件系统分区 | ||
| 1.1.2.1 | 配置 /tmp | ||
| 1.1.2.1.1 | 确保 /tmp 是单独的分区 | 失败 | 操作影响:将 /tmp 作为单独的分区需要将其转变为 tmpfs(基于内存的文件系统),这将消耗与 Pod 可用内存相同的资源。 |
| 1.1.2.1.2 | 确保在 /tmp 分区上设置 nodev 选项 | 通过 | |
| 1.1.2.1.3 | 确保在 /tmp 分区上设置 nosuid 选项 | 通过 | |
| 1.1.2.1.4 | 确保在 /tmp 分区上设置 noexec 选项 | 通过 | |
| 1.1.2.2 | 配置 /dev/shm | ||
| 1.1.2.2.1 | 确保 /dev/shm 是单独的分区 | 通过 | |
| 1.1.2.2.2 | 确保在 /dev/shm 分区上设置 nodev 选项 | 通过 | |
| 1.1.2.2.3 | 确保在 /dev/shm 分区上设置 nosuid 选项 | 通过 | |
| 1.1.2.2.4 | 确保在 /dev/shm 分区上设置 noexec 选项 | 通过 | |
| 1.1.2.3 | 配置 /home | ||
| 1.1.2.3.2 | 确保在 /home 分区上设置 nodev 选项 | 通过 | |
| 1.1.2.3.3 | 确保在 /home 分区上设置 nosuid 选项 | 通过 | |
| 1.1.2.4 | 配置 /var | ||
| 1.1.2.4.2 | 确保在 /var 分区上设置 nodev 选项 | 通过 | |
| 1.1.2.4.3 | 确保在 /var 分区上设置 nosuid 选项 | 通过 | |
| 1.1.2.5 | 配置 /var/tmp | ||
| 1.1.2.5.2 | 确保在 /var/tmp 分区上设置 nodev 选项 | 通过 | |
| 1.1.2.5.3 | 确保在 /var/tmp 分区上设置 nosuid 选项 | 通过 | |
| 1.1.2.5.4 | 确保对 /var/tmp 分区设置 noexec 选项 | 通过 | |
| 1.1.2.6 | 配置 /var/log | ||
| 1.1.2.6.2 | 确保在 /var/log 分区上设置 nodev 选项 | 通过 | |
| 1.1.2.6.3 | 确保在 /var/log 分区上设置 nosuid 选项 | 通过 | |
| 1.1.2.6.4 | 确保对 /var/log 分区设置 noexec 选项 | 通过 | |
| 1.1.2.7 | 配置 /var/log/audit | ||
| 1.1.2.7.2 | 确保在 /var/log/audit 分区上设置 nodev 选项 | 通过 | |
| 1.1.2.7.3 | 确保在 /var/log/audit 分区上设置 nosuid 选项 | 通过 | |
| 1.1.2.7.4 | 确保在 /var/log/audit 分区上设置 noexec 选项 | 通过 | |
| 1.2 | 包管理 | ||
| 1.2.1 | 配置包存储库 | ||
| 1.2.1.1 | 确保已配置 GPG 密钥 | Manual | |
| 1.2.1.2 | 确保配置包管理器存储库 | 通过 | |
| 1.2.2 | 配置包更新 | ||
| 1.2.2.1 | 确保已安装更新、修补程序和其他安全软件 | 取决于环境 | 节点 OS 升级通道 可用于自动执行更新和修补程序。 |
| 1.3 | 强制访问控制 | ||
| 1.3.1 | 配置 AppArmor | ||
| 1.3.1.1 | 确保已安装 AppArmor | 通过 | |
| 1.3.1.2 | 确保已在启动加载程序配置中启用 AppArmor | 通过 | |
| 1.3.1.3 | 确保所有 AppArmor 配置文件都处于强制或抱怨模式 | 失败 | 操作影响:可能会阻止合法的工作负荷和加载项。 |
| 1.4 | 配置 Bootloader | ||
| 1.4.1 | 确保已设置启动加载程序密码 | 通过 | |
| 1.4.2 | 确保配置了对启动加载程序配置的访问权限 | 通过 | |
| 1.5 | 配置额外的进程加固 | ||
| 1.5.1 | 确保已启用地址空间布局随机化 | 通过 | |
| 1.5.2 | 确保限制 ptrace_scope | 通过 | |
| 1.5.3 | 确保已对核心转储进行限制 | 通过 | |
| 1.5.4 | 确保未安装预链接 | 通过 | |
| 1.5.5 | 确保未启用自动错误报告 | 通过 | |
| 1.6 | 配置命令行警告横幅 | ||
| 1.6.1 | 确保已正确配置“每日消息” | 通过 | |
| 1.6.2 | 确保正确配置本地登录警告横幅 | 通过 | |
| 1.6.3 | 确保正确配置远程登录警告横幅 | 通过 | |
| 1.6.4 | 确保已配置对 /etc/motd 的访问 | 通过 | |
| 1.6.5 | 确保已配置对 /etc/issue 的访问 | 通过 | |
| 1.6.6 | 确保已配置对 /etc/issue.net 的访问 | 通过 | |
| 1.7 | 配置 GNOME 显示管理器 | ||
| 1.7.2 | 确保已配置 GDM 登录横幅 | 通过 | |
| 1.7.3 | 确保已启用 GDM disable-user-list 选项 | 通过 | |
| 1.7.4 | 确保在用户空闲时,GDM 屏幕锁定 | 通过 | |
| 1.7.5 | 确保 GDM 屏幕锁无法被覆盖 | 通过 | |
| 1.7.6 | 确保禁用 GDM 的可移动媒体自动挂载 | 通过 | |
| 1.7.7 | 确保 GDM 禁用可移动媒体自动挂载不会被覆盖 | 通过 | |
| 1.7.8 | 确保已启用 GDM 自动运行-永不启用 | 通过 | |
| 1.7.9 | 确保不覆盖 GDM autorun-never | 通过 | |
| 1.7.10 | 确保未启用 XDMCP | 通过 | |
| 2 | Services | ||
| 2.1 | 配置服务器服务 | ||
| 2.1.1 | 确保 autofs 服务未使用 | 通过 | |
| 2.1.2 | 确保 avahi 守护程序服务没有被使用 | 通过 | |
| 2.1.3 | 确保 dhcp 服务器服务未使用 | 通过 | |
| 2.1.4 | 确保 DNS 服务器服务未使用 | 通过 | |
| 2.1.5 | 确保 dnsmasq 服务未使用 | 通过 | |
| 2.1.6 | 确保 ftp 服务器服务未使用 | 通过 | |
| 2.1.7 | 确保 LDAP 服务器的服务未被使用 | 通过 | |
| 2.1.8 | 确保消息访问服务器服务未被使用 | 通过 | |
| 2.1.9 | 确保不要使用网络文件系统服务 | 通过 | |
| 2.1.10 | 确保 NIS 服务器服务未使用 | 通过 | |
| 2.1.11 | 确保打印服务器服务未使用 | 通过 | |
| 2.1.12 | 确保 rpcbind 服务未使用 | 失败 | 操作影响:rpcbind 是 Azure CSI 驱动程序使用的 NFS 的必需依赖项。 |
| 2.1.13 | 确保 rsync 服务没有被使用 | 通过 | |
| 2.1.14 | 确保 samba 文件服务器服务未使用 | 通过 | |
| 2.1.15 | 确保 snmp 服务未被使用 | 通过 | |
| 2.1.16 | 确保 tftp 服务器服务没有被使用 | 通过 | |
| 2.1.17 | 确保 Web 代理服务器服务未使用 | 通过 | |
| 2.1.18 | 确保 Web 服务未被使用 | 通过 | |
| 2.1.19 | 确保未使用 xinetd 服务 | 通过 | |
| 2.1.21 | 确保邮件传输代理配置为仅限本地模式 | 通过 | |
| 2.1.22 | 确保在网络接口上仅允许已批准的服务进行侦听 | 通过 | |
| 2.2 | 配置客户端服务 | ||
| 2.2.1 | 确保未安装 NIS 客户端 | 通过 | |
| 2.2.2 | 确保未安装 rsh 客户端 | 通过 | |
| 2.2.3 | 确保未安装 talk 客户端 | 通过 | |
| 2.2.4 | 确保未安装 telnet 客户端 | 通过 | |
| 2.2.5 | 确保未安装 ldap 客户端 | 通过 | |
| 2.2.6 | 确保未安装 ftp 客户端 | 通过 | |
| 2.3 | 配置时间同步 | ||
| 2.3.1 | 确保使用时间同步 | ||
| 2.3.1.1 | 确保使用单一同步守护程序 | 通过 | |
| 2.3.2 | 配置 systemd-timesyncd | ||
| 2.3.2.1 | 确保 systemd-timesyncd 配置了经过授权的时间服务器 | 通过 | |
| 2.3.2.2 | 确保已启用并运行 systemd-timesyncd | 通过 | |
| 2.3.3 | 配置 chrony | ||
| 2.3.3.1 | 确保 chrony 配置有授权的时间服务器 | 失败 | AKS 节点被配置为使用 chrony 通过管理程序接口同步到宿主机的 PTP 硬件时钟。 PTP 硬件时钟是 Azure 的授权时间服务器。 有关详细信息,请参阅 chrony 的配置。 |
| 2.3.3.2 | 确保 chrony 作为用户 _chrony 运行 | 通过 | |
| 2.3.3.3 | 确保启用并运行 chrony | 通过 | |
| 2.4 | 作业调度程序 | ||
| 2.4.1 | 配置 cron | ||
| 2.4.1.1 | 确保已启用 cron 守护程序并处于活动状态 | 通过 | |
| 2.4.1.2 | 确保配置 /etc/crontab 上的权限 | 通过 | |
| 2.4.1.3 | 确保 /etc/cron.hourly 的权限已设置 | 通过 | |
| 2.4.1.4 | 确保已配置 /etc/cron.daily 的权限 | 通过 | |
| 2.4.1.5 | 请确保已配置 /etc/cron.weekly 的权限 | 通过 | |
| 2.4.1.6 | 确保已配置 /etc/cron.monthly 的权限 | 通过 | |
| 2.4.1.7 | 确保已配置 /etc/cron.d 的权限 | 通过 | |
| 2.4.1.8 | 确保 crontab 仅限于授权用户 | 通过 | |
| 2.4.2 | 配置于 | ||
| 2.4.2.1 | 确保 at 仅限于授权用户 | 通过 | |
| 3 | Network | ||
| 3.1 | 配置网络设备 | ||
| 3.1.1 | 确保标识 IPv6 状态 | 通过 | |
| 3.1.2 | 确保已禁用无线接口 | 通过 | |
| 3.1.3 | 确保蓝牙服务没有被占用 | 通过 | |
| 3.3 | 配置网络内核参数 | ||
| 3.3.1 | 确保禁用 IP 转发 | 失败 | 操作影响:为了容器网络的正常运行,这是必需的。 |
| 3.3.2 | 确保禁用数据包重定向发送 | 通过 | |
| 3.3.3 | 确保忽略虚假的 ICMP 响应 | 通过 | |
| 3.3.4 | 确保忽略广播 ICMP 请求 | 通过 | |
| 3.3.5 | 确保不接受 icmp 重定向 | 通过 | |
| 3.3.6 | 确保不接受安全的 ICMP 重定向 | 通过 | |
| 3.3.7 | 确保已启用反向路径筛选 | 通过 | |
| 3.3.8 | 确保不接受源路由的数据包 | 通过 | |
| 3.3.9 | 确保记录可疑的数据包 | 通过 | |
| 3.3.10 | 确保已启用 tcp syn cookie | 通过 | |
| 3.3.11 | 确保不接受 ipv6 路由器通告 | 通过 | |
| 4 | 基于主机的防火墙 | ||
| 4.1 | 配置单个防火墙实用工具 | ||
| 4.1.1 | 确保正在使用单个防火墙配置实用工具 | 在其他地方覆盖 | |
| 4.2 | 配置 UncomplicatedFirewall | ||
| 4.2.1 | 确保已安装 ufw | 在其他地方覆盖 | |
| 4.2.2 | 确保未安装带有 ufw 的 iptables-persistent | 在其他地方覆盖 | |
| 4.2.3 | 确保已启用 ufw 服务 | 在其他地方覆盖 | |
| 4.2.4 | 确保已配置 ufw 环回流量 | 在其他地方覆盖 | |
| 4.2.5 | 确保已配置 ufw 出站连接 | 在其他地方覆盖 | |
| 4.2.6 | 确保所有打开端口都存在 ufw 防火墙规则 | 在其他地方覆盖 | |
| 4.2.7 | 确保 ufw 启用默认的“拒绝防火墙”策略 | 在其他地方覆盖 | |
| 4.3 | 配置 nftables | ||
| 4.3.1 | 确保已安装 nftables | 在其他地方覆盖 | |
| 4.3.2 | 确保 ufw 已随 nftable 一起卸载或禁用 | 在其他地方覆盖 | |
| 4.3.3 | 确保 iptable 已随 nftable 一起刷新 | 在其他地方覆盖 | |
| 4.3.4 | 确保存在 nftables 表 | 在其他地方覆盖 | |
| 4.3.5 | 确保存在 nftables 基链 | 在其他地方覆盖 | |
| 4.3.6 | 确保已配置 nftables 环回流量 | 在其他地方覆盖 | |
| 4.3.7 | 确保已配置 nftables 出站连接和已建立连接 | 在其他地方覆盖 | |
| 4.3.8 | 确保 nftables 启用默认的“拒绝防火墙”策略 | 在其他地方覆盖 | |
| 4.3.9 | 确保已启用 nftables 服务 | 在其他地方覆盖 | |
| 4.3.10 | 确保 nftables 规则是永久性的 | 在其他地方覆盖 | |
| 4.4 | 配置 iptables | ||
| 4.4.1 | 配置 iptables 软件 | ||
| 4.4.1.1 | 确保已安装 iptables 包 | 在其他地方覆盖 | |
| 4.4.1.2 | 确保 nftable 不与 iptable 一起使用 | 在其他地方覆盖 | |
| 4.4.1.3 | 确保 ufw 未与 iptable 一起使用 | 在其他地方覆盖 | |
| 4.4.2 | 配置 IPV4 iptables | ||
| 4.4.2.1 | 确保 iptables 启用默认的“拒绝防火墙”策略 | 在其他地方覆盖 | |
| 4.4.2.2 | 确保已配置 iptables 环回流量 | 在其他地方覆盖 | |
| 4.4.2.3 | 确保已配置 iptables 出站连接和已建立连接 | 在其他地方覆盖 | |
| 4.4.2.4 | 确保所有打开端口都存在 iptables 防火墙规则 | 在其他地方覆盖 | |
| 4.4.3 | 配置 IPv6 ip6tables | ||
| 4.4.3.1 | 确保 ip6tables 启用默认的“拒绝防火墙”策略 | 在其他地方覆盖 | |
| 4.4.3.2 | 确保已配置 ip6tables 环回流量 | 在其他地方覆盖 | |
| 4.4.3.3 | 确保已配置 ip6tables 出站连接和已建立连接 | 在其他地方覆盖 | |
| 4.4.3.4 | 确保所有打开端口都存在 ip6tables 防火墙规则 | 在其他地方覆盖 | |
| 5 | 存取控制 | ||
| 5.1 | 配置 SSH 服务器 | ||
| 5.1.1 | 确保已配置 /etc/ssh/sshd_config 的权限 | 通过 | |
| 5.1.2 | 确保已正确配置 SSH 私有主机密钥文件的权限 | 通过 | |
| 5.1.3 | 确保 SSH 公用主机密钥文件的权限已配置正确 | 通过 | |
| 5.1.4 | 确保配置 sshd 访问 | 通过 | |
| 5.1.5 | 确保配置 sshd 横幅 | 通过 | |
| 5.1.6 | 确保配置 sshd 密码 | 通过 | |
| 5.1.7 | 确保配置 sshd ClientAliveInterval 和 ClientAliveCountMax | 通过 | |
| 5.1.10 | 确保已禁用 sshd HostbasedAuthentication | 通过 | |
| 5.1.11 | 确保已启用 sshd IgnoreRhosts | 通过 | |
| 5.1.12 | 确保配置 sshd KexAlgorithms | 通过 | |
| 5.1.13 | 确保配置 sshd LoginGraceTime | 通过 | |
| 5.1.14 | 确保配置 sshd LogLevel | 通过 | |
| 5.1.15 | 确保配置 sshd MACs | 通过 | |
| 5.1.16 | 确保配置 sshd MaxAuthTries | 通过 | |
| 5.1.17 | 确保配置 sshd MaxSessions | 通过 | |
| 5.1.18 | 确保配置 sshd MaxStartups | 通过 | |
| 5.1.19 | 确保已禁用 sshd PermitEmptyPasswords | 通过 | |
| 5.1.20 | 确保已禁用 sshd PermitRootLogin | 通过 | |
| 5.1.21 | 确保已禁用 sshd PermitUserEnvironment | 通过 | |
| 5.1.22 | 确保已启用 sshd UsePAM | 通过 | |
| 5.2 | 配置特权提升 | ||
| 5.2.1 | 确保已安装 sudo | 通过 | |
| 5.2.2 | 确保 sudo 命令使用 pty | 通过 | |
| 5.2.3 | 确保 sudo 日志文件存在 | 通过 | |
| 5.2.5 | 确保全局不会禁用特权升级的重新身份验证 | 通过 | |
| 5.2.6 | 确保正确配置 sudo 身份验证超时 | 通过 | |
| 5.2.7 | 确保限制对 su 命令的访问 | 通过 | |
| 5.3 | 可插入身份验证模块 | ||
| 5.3.1 | 配置 PAM 软件包 | ||
| 5.3.1.1 | 确保已安装 pam 的最新版本 | 通过 | |
| 5.3.1.2 | 确保已安装“libpam-modules” | 通过 | |
| 5.3.1.3 | 确保已安装 libpam-pwquality | 通过 | |
| 5.3.2 | 配置 pam-auth-update 配置文件 | ||
| 5.3.2.1 | 确保已启用pam_unix模块 | 通过 | |
| 5.3.2.2 | 确保已启用pam_faillock模块 | 通过 | |
| 5.3.2.3 | 确保已启用pam_pwquality模块 | 通过 | |
| 5.3.2.4 | 确保已启用pam_pwhistory模块 | 通过 | |
| 5.3.3 | 配置 PAM 参数 | ||
| 5.3.3.1 | 配置pam_faillock模块 | ||
| 5.3.3.1.1 | 确保配置密码失败尝试的锁定功能 | 通过 | |
| 5.3.3.1.2 | 确保已配置密码解锁时间 | 通过 | |
| 5.3.3.1.3 | 确保密码失败尝试锁定机制应用于根帐户 | 通过 | |
| 5.3.3.2 | 配置pam_pwquality模块 | ||
| 5.3.3.2.1 | 确保已配置更改字符的密码数 | 通过 | |
| 5.3.3.2.2 | 确保配置了最小密码长度 | 通过 | |
| 5.3.3.2.3 | 确保密码复杂性得到正确配置 | Manual | 由 AKS 默认配置 |
| 5.3.3.2.4 | 确保配置密码相同的连续字符 | 通过 | |
| 5.3.3.2.5 | 确保配置密码最大顺序字符数 | 通过 | |
| 5.3.3.2.6 | 确保启用密码字典检查 | 通过 | |
| 5.3.3.2.7 | 确保强制实施密码质量检查 | 通过 | |
| 5.3.3.2.8 | 确保为根用户强制实施密码质量 | 通过 | |
| 5.3.3.3 | 配置pam_pwhistory模块 | ||
| 5.3.3.3.1 | 确保配置了密码历史记录功能记忆 | 通过 | |
| 5.3.3.3.2 | 确保为根用户强制实施密码历史记录 | 通过 | |
| 5.3.3.3.3 | 确保pam_pwhistory包括use_authtok | 通过 | |
| 5.3.3.4 | 配置pam_unix模块 | ||
| 5.3.3.4.1 | 确保pam_unix不包含nullok | 通过 | |
| 5.3.3.4.2 | 确保pam_unix不包括记住 | 通过 | |
| 5.3.3.4.3 | 确保pam_unix包含强密码哈希算法 | 通过 | |
| 5.3.3.4.4 | 确保 pam_unix 包含 use_authtok | 通过 | |
| 5.4 | 用户帐户和环境 | ||
| 5.4.1 | 配置影子密码套件参数 | ||
| 5.4.1.1 | 确保已配置密码的过期时间 | 通过 | |
| 5.4.1.2 | 确保配置了最短密码天数 | 通过 | |
| 5.4.1.3 | 确保配置密码过期警告日期 | 通过 | |
| 5.4.1.4 | 确保配置强密码哈希算法 | 通过 | |
| 5.4.1.5 | 确保配置了非活动密码锁定 | 通过 | |
| 5.4.1.6 | 确保所有用户的上次密码更改日期都是过去的日期 | 通过 | |
| 5.4.2 | 配置根帐户、系统帐户和环境 | ||
| 5.4.2.1 | 确保根账号是唯一的 UID 0 帐户 | 通过 | |
| 5.4.2.2 | 确保 root 是唯一的 GID 0 账户 | 通过 | |
| 5.4.2.3 | 确保组根是唯一的 GID 0 组 | 通过 | |
| 5.4.2.4 | 确保控制根帐户访问权限 | 通过 | |
| 5.4.2.5 | 确保根路径完整性 | 通过 | |
| 5.4.2.6 | 确保配置根用户 umask | 通过 | |
| 5.4.2.7 | 确保系统帐户没有有效的登录 shell | 通过 | |
| 5.4.2.8 | 确保没有有效登录 shell 的帐户被锁定 | 通过 | |
| 5.4.3 | 配置用户默认环境 | ||
| 5.4.3.1 | 确保未在 /etc/shells 中列出 nologin | 通过 | |
| 5.4.3.2 | 确保配置默认用户 shell 超时 | 通过 | |
| 5.4.3.3 | 确保默认用户的 umask 已被正确配置 | 通过 | |
| 6 | 日志记录和审核 | ||
| 6.1 | 系统日志记录 | ||
| 6.1.1 | 配置 systemd-journald 服务 | ||
| 6.1.1.1 | 确保 journald 服务已启用且处于活动状态 | 通过 | |
| 6.1.1.2 | 确保已配置对 journald 日志文件的访问权限 | Manual | |
| 6.1.1.3 | 确保已配置日记日志文件轮换 | Manual | 默认情况下,在 AKS 上配置 |
| 6.1.1.4 | 确保仅使用一个日志记录系统 | 通过 | |
| 6.1.2 | 配置journald | ||
| 6.1.2.1 | 配置 systemd-journal-remote | ||
| 6.1.2.1.1 | 确保已安装 systemd-journal-remote | 通过 | |
| 6.1.2.1.2 | 确保配置 systemd-journal-upload 身份验证 | 不適用 | AKS 不使用日志上传,并且依赖于 rsyslog。 |
| 6.1.2.1.3 | 确保已启用 systemd-journal-upload 且处于活动状态 | 通过 | |
| 6.1.2.1.4 | 确保 systemd-journal-remote 服务未使用 | 通过 | |
| 6.1.2.2 | 确保已禁用已记录的 ForwardToSyslog | 通过 | |
| 6.1.2.3 | 确保已配置 journald 压缩 | 通过 | |
| 6.1.2.4 | 确保已配置 journald 存储 | 通过 | |
| 6.1.3 | 配置 rsyslog | ||
| 6.1.3.1 | 确保已安装 rsyslog | 通过 | |
| 6.1.3.2 | 确保 rsyslog 服务已启用且处于活动状态 | 通过 | |
| 6.1.3.3 | 确保配置journald以将日志发送到rsyslog | 通过 | |
| 6.1.3.4 | 确保已配置 rsyslog 日志文件创建模式 | 通过 | |
| 6.1.3.5 | 确保配置 rsyslog 日志记录 | 通过 | |
| 6.1.3.6 | 确保 rsyslog 配置为将日志发送到远程日志主机 | 不適用 | 配置了适用于 Linux 的 Azure Monitor 代理 |
| 6.1.3.7 | 确保 rsyslog 未配置为从远程客户端接收日志 | 通过 | |
| 6.1.3.8 | 确保已配置 logrotate | 通过 | |
| 6.1.4 | 配置 Logfiles | ||
| 6.1.4.1 | 确保已配置对所有日志文件的访问权限 | 通过 | |
| 6.3 | 配置完整性检查 | ||
| 6.3.1 | 确保已安装 AIDE | 操作影响 | 扫描将定期影响工作负荷 |
| 6.3.2 | 确保定期检查文件系统完整性 | 操作影响 | 扫描将定期影响工作负荷 |
| 7 | 系统维护 | ||
| 7.1 | 系统文件权限 | ||
| 7.1.1 | 确保已配置 /etc/passwd 的权限 | 通过 | |
| 7.1.2 | 确保已配置 /etc/passwd- 的权限 | 通过 | |
| 7.1.3 | 确保已配置 /etc/group 的权限 | 通过 | |
| 7.1.4 | 确保已配置 /etc/group- 的权限 | 通过 | |
| 7.1.5 | 确保 /etc/shadow 的权限已正确配置 | 通过 | |
| 7.1.6 | 确保已配置 /etc/shadow- 上的权限 | 通过 | |
| 7.1.7 | 确保已配置 /etc/gshadow 的权限 | 通过 | |
| 7.1.8 | 确保已配置 /etc/gshadow- 的权限 | 通过 | |
| 7.1.9 | 确保配置了对 /etc/shell 的权限 | 通过 | |
| 7.1.10 | 确保配置了对 /etc/security/opasswd 的权限 | 通过 | |
| 7.1.11 | 确保所有人都可写的文件和目录受到保护 | 通过 | |
| 7.1.12 | 确保不存在无所有者且无所属组的文件或目录 | 通过 | |
| 7.1.13 | 确保查看 SUID 和 SGID 文件 | Manual | |
| 7.2 | 本地用户和组设置 | ||
| 7.2.1 | 确保 /etc/passwd 中的帐户使用隐藏密码 | 通过 | |
| 7.2.2 | 确保 /etc/shadow 密码字段不为空 | 通过 | |
| 7.2.3 | 确保 /etc/passwd 中的所有组也均存在于 /etc/group 中 | 通过 | |
| 7.2.4 | 确保影子组为空 | 通过 | |
| 7.2.5 | 确保不存在重复的 UID | 通过 | |
| 7.2.6 | 确保不存在重复的 GID | 通过 | |
| 7.2.7 | 确保不存在重复的用户名 | 通过 | |
| 7.2.8 | 确保不存在重复的组名 | 通过 | |
| 7.2.9 | 确保已配置本地交互用户主目录 | 通过 | |
| 7.2.10 | 确保已配置本地交互用户点文件访问权限 | 通过 |
后续步骤
有关 AKS 安全性的详细信息,请参阅以下文章: