你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
针对 Azure Linux 的 Internet 安全中心 (CIS) 基准
“适用于 AKS 的 Azure Linux 容器主机”映像所应用的安全 OS 配置基于 Azure Linux 安全基线,该基线与 CIS 基准保持一致。 AKS 是符合 SOC、ISO、PCI DSS 和 HIPAA 标准的安全服务。 有关 Azure Linux 容器主机安全性的详细信息,请参阅 AKS 中群集的安全概念。 若要详细了解 CIS 基准,请参阅 Internet 安全中心 (CIS) 基准。 有关适用于 Linux 的 Azure 安全基线的详细信息,请参阅 Linux 安全基线。
此 Azure Linux 容器主机操作系统基于应用了内置安全配置的 Azure Linux 2.0 映像。
作为安全优化的操作系统的一部分:
- AKS 和 Azure Linux 默认提供安全优化的主机 OS,但不提供选择备用操作系统的选项。
- 经过安全优化的主机 OS 是专门为 AKS 构建和维护的,因此,仅在 AKS 平台受支持。
- 为了减少攻击面,我们在 OS 中禁用了不必要的内核模块驱动程序。
下表包含 4 个部分:
- CIS ID:与每个基线规则关联的规则 ID。
- 建议说明:CIS 基准发布的建议的说明。
- 级别:L1(即级别 1)推荐可在任何系统上配置的基本必需安全要求,这些要求应该很少或不会导致服务中断或功能降低。
- 状态:
- 通过 - 已应用建议。
- 失败 - 未应用建议。
- N/A - 建议涉及与 AKS 无关的清单文件权限要求。
- 取决于环境 - 建议在用户的特定环境中应用,且不受 AKS 控制。
- 等效控制 - 建议以不同的等效方式实现。
- 原因:
- 潜在的操作影响 - 未应用建议,因为该建议会对服务产生负面影响。
- 在其他地方覆盖 - 建议在 Azure 云计算中的另一项控制措施的覆盖范围内。
下面是基于 CIS 规则的 CIS Azure Linux 2.0 基准 v1.0 建议的结果:
CIS ID | 建议说明 | 状态 | 原因 |
---|---|---|---|
1.1.4 | 禁用自动装载 | 通过 | |
1.1.1.1 | 确保禁用装载 cramfs 文件系统的功能 | 通过 | |
1.1.2.1 | 确保 /tmp 是单独的分区 | 通过 | |
1.1.2.2 | 确保在 /tmp 分区上设置 nodev 选项 | 通过 | |
1.1.2.3 | 确保在 /tmp 分区上设置 nosuid 选项 | 通过 | |
1.1.8.1 | 确保在 /dev/shm 分区上设置 nodev 选项 | 通过 | |
1.1.8.2 | 确保在 /dev/shm 分区上设置 nosuid 选项 | 通过 | |
1.2.1 | 确保全局激活 DNF gpgcheck | 通过 | |
1.2.2 | 确保全局激活 TDNF gpgcheck | 通过 | |
1.5.1 | 确保禁用核心转储存储 | 通过 | |
1.5.2 | 确保禁用核心转储回溯 | 通过 | |
1.5.3 | 确保已启用地址空间布局随机化 (ASLR) | 通过 | |
1.7.1 | 确保正确配置本地登录警告横幅 | 通过 | |
1.7.2 | 确保正确配置远程登录警告横幅 | 通过 | |
1.7.3 | 确保已配置 /etc/motd 上的权限 | 通过 | |
1.7.4 | 确保配置 /etc/issue 上的权限 | 通过 | |
1.7.5 | 确保配置 /etc/issue.net 上的权限 | 通过 | |
2.1.1 | 确保正在使用时间同步 | 通过 | |
2.1.2 | 确保配置 chrony | 通过 | |
2.2.1 | 确保未安装 xinetd | 通过 | |
2.2.2 | 确保未安装 xorg-x11-server-common | 通过 | |
2.2.3 | 确保未安装 avahi | 通过 | |
2.2.4 | 确保未安装打印服务器 | 通过 | |
2.2.5 | 确保未安装 dhcp 服务器 | 通过 | |
2.2.6 | 确保未安装 dns 服务器 | 通过 | |
2.2.7 | 确保未安装 FTP 客户端 | 通过 | |
2.2.8 | 确保未安装 ftp 服务器 | 通过 | |
2.2.9 | 确保未安装 tftp 服务器 | 通过 | |
2.2.10 | 确保未安装 web 服务器 | 通过 | |
2.2.11 | 确保未安装 IMAP 和 POP3 服务器 | 通过 | |
2.2.12 | 确保未安装 Samba | 通过 | |
2.2.13 | 确保未安装 HTTP 代理服务器 | 通过 | |
2.2.14 | 确保未安装 net-snmp 或未启用 snmpd 服务 | 通过 | |
2.2.15 | 确保未安装 NIS 服务器 | 通过 | |
2.2.16 | 确保未安装 telnet 服务器 | 通过 | |
2.2.17 | 确保邮件传输代理配置为仅限本地模式 | 通过 | |
2.2.18 | 确保未安装 nfs-utils 或已屏蔽 nfs-server 服务 | 通过 | |
2.2.19 | 确保未安装 rsync-daemon 或已屏蔽 rsyncd 服务 | 通过 | |
2.3.1 | 确保未安装 NIS 客户端 | 通过 | |
2.3.2 | 确保未安装 rsh 客户端 | 通过 | |
2.3.3 | 确保未安装 talk 客户端 | 通过 | |
2.3.4 | 确保未安装 telnet 客户端 | 通过 | |
2.3.5 | 确保未安装 LDAP 客户端 | 通过 | |
2.3.6 | 确保未安装 TFTP 客户端 | 通过 | |
3.1.1 | 确保已启用 IPv6 | 通过 | |
3.2.1 | 确保禁用数据包重定向发送 | 通过 | |
3.3.1 | 确保不接受源路由的数据包 | 通过 | |
3.3.2 | 确保不接受 ICMP 重定向 | 通过 | |
3.3.3 | 确保不接受安全 ICMP 重定向 | 通过 | |
3.3.4 | 确保记录可疑的数据包 | 通过 | |
3.3.5 | 确保忽略广播 ICMP 请求 | 通过 | |
3.3.6 | 确保忽略虚假的 ICMP 响应 | 通过 | |
3.3.7 | 确保已启用反转路径筛选 | 通过 | |
3.3.8 | 确保已启用 TCP SYN Cookie | 通过 | |
3.3.9 | 确保不接受 IPv6 路由器播发 | 通过 | |
3.4.3.1.1 | 确保已安装 iptables 包 | 通过 | |
3.4.3.1.2 | 确保 nftable 未随 iptable 一起安装 | 通过 | |
3.4.3.1.3 | 确保未安装 firewalld 或已使用 iptables 将其屏蔽 | 通过 | |
4.2 | 确保已配置 logrotate | 通过 | |
4.2.2 | 确保所有日志文件都配置了适当的访问权限 | 通过 | |
4.2.1.1 | 确保已安装 rsyslog | 通过 | |
4.2.1.2 | 确保启用 rsyslog 服务 | 通过 | |
4.2.1.3 | 确保已配置 rsyslog 默认文件权限 | 通过 | |
4.2.1.4 | 确保配置日志记录。 | 通过 | |
4.2.1.5 | 确保 rsyslog 未配置为从远程客户端接收日志 | 通过 | |
5.1.1 | 确保启用 cron 守护程序 | 通过 | |
5.1.2 | 确保配置 /etc/crontab 上的权限 | 通过 | |
5.1.3 | 确保已配置 /etc/cron.hourly 的权限 | 通过 | |
5.1.4 | 确保已配置 /etc/cron.daily 的权限 | 通过 | |
5.1.5 | 确保已配置 /etc/cron.weekly 的权限 | 通过 | |
5.1.6 | 确保已配置 /etc/cron.monthly 的权限 | 通过 | |
5.1.7 | 确保已配置 /etc/cron.d 的权限 | 通过 | |
5.1.8 | 确保 cron 仅限于授权用户 | 通过 | |
5.1.9 | 确保 at 仅限于授权用户 | 通过 | |
5.2.1 | 确保已配置 /etc/ssh/sshd_config 的权限 | 通过 | |
5.2.2 | 确保已配置 SSH 私有主机密钥文件的权限 | 通过 | |
5.2.3 | 确保已配置 SSH 公共主机密钥文件的权限 | 通过 | |
5.2.4 | 确保限制 SSH 访问权限 | 通过 | |
5.2.5 | 确保 SSH LogLevel 合适 | 通过 | |
5.2.6 | 确保已启用 SSH PAM | 通过 | |
5.2.7 | 确保禁用 SSH 根登录 | 通过 | |
5.2.8 | 确保已禁用 SSH HostbasedAuthentication | 通过 | |
5.2.9 | 确保已禁用 SSH PermitEmptyPasswords | 通过 | |
5.2.10 | 确保禁用 SSH PermitUserEnvironment | 通过 | |
5.2.11 | 确保已启用 SSH IgnoreRhosts | 通过 | |
5.2.12 | 确保仅使用强密码 | 通过 | |
5.2.13 | 确保仅使用强 MAC 算法 | 通过 | |
5.2.14 | 确保仅使用强密钥交换算法 | 通过 | |
5.2.15 | 确保配置 SSH 警告横幅 | 通过 | |
5.2.16 | 确保将 SSH MaxAuthTries 设置为 4 或更小的数字 | 通过 | |
5.2.17 | 确保已配置 SSH MaxStartups | 通过 | |
5.2.18 | 确保将 SSH LoginGraceTime 设置为一分钟或更短的时间 | 通过 | |
5.2.19 | 确保将 SSH MaxSessions 设置为不超过 10 | 通过 | |
5.2.20 | 确保配置 SSH 空闲超时间隔 | 通过 | |
5.3.1 | 确保已安装 sudo | 通过 | |
5.3.2 | 确保未全局禁用特权提升的重新身份验证 | 通过 | |
5.3.3 | 确保正确配置 sudo 身份验证超时 | 通过 | |
5.4.1 | 确保配置密码创建要求 | 通过 | |
5.4.2 | 确保为失败的密码尝试配置锁定 | 通过 | |
5.4.3 | 确保密码哈希算法为 SHA-512 | 通过 | |
5.4.4 | 确保对密码重用进行限制 | 通过 | |
5.5.2 | 确保系统帐户受到保护 | 通过 | |
5.5.3 | 确保根帐户的默认组为 GID 0 | 通过 | |
5.5.4 | 确保默认的用户 umask 为 027(或更严格的标准) | 通过 | |
5.5.1.1 | 确保密码有效期小于或等于 365 天 | 通过 | |
5.5.1.2 | 确保已配置密码更改最短间隔时间 | 通过 | |
5.5.1.3 | 确保将密码过期警告天数设为 7 天或以上 | 通过 | |
5.5.1.4 | 确保非活动密码在 30 天或更短的时间内锁定 | 通过 | |
5.5.1.5 | 确保所有用户的上次密码更改日期都是过去的日期 | 通过 | |
6.1.1 | 确保已配置 /etc/passwd 的权限 | 通过 | |
6.1.2 | 确保已配置 /etc/passwd- 的权限 | 通过 | |
6.1.3 | 确保已配置 /etc/group 的权限 | 通过 | |
6.1.4 | 确保已配置 /etc/group- 的权限 | 通过 | |
6.1.5 | 确保已配置 /etc/shadow 的权限 | 通过 | |
6.1.6 | 确保已配置 /etc/shadow- 的权限 | 通过 | |
6.1.7 | 确保已配置 /etc/gshadow 的权限 | 通过 | |
6.1.8 | 确保已配置 /etc/gshadow- 的权限 | 通过 | |
6.1.9 | 确保不存在无主或无属组文件/目录 | 通过 | |
6.1.10 | 确保所有人都可写的文件和目录受到保护 | 通过 | |
6.2.1 | 确保密码字段不为空 | 通过 | |
6.2.2 | 确保 /etc/passwd 中的所有组也均存在于 /etc/group 中 | 通过 | |
6.2.3 | 确保不存在重复的 UID | 通过 | |
6.2.4 | 确保不存在重复的 GID | 通过 | |
6.2.5 | 确保不存在重复的用户名 | 通过 | |
6.2.6 | 确保不存在重复的组名 | 通过 | |
6.2.7 | 确保根 PATH 完整性 | 通过 | |
6.2.8 | 确保根账号是唯一的 UID 0 帐户 | 通过 | |
6.2.9 | 确保所有用户的主目录都存在 | 通过 | |
6.2.10 | 确保用户拥有其主目录 | 通过 | |
6.2.11 | 确保用户的主目录权限限制为 750 或更高 | 通过 | |
6.2.12 | 确保用户的点文件不可由组或在全局范围内写入 | 通过 | |
6.2.13 | 确保并非组或所有人都可访问用户的 .netrc 文件 | 通过 | |
6.2.14 | 确保无用户具有 .forward 文件 | 通过 | |
6.2.15 | 确保无用户具有 .netrc 文件 | 通过 | |
6.2.16 | 确保无用户具有 .rhosts 文件 | 通过 |
有关 Azure Linux 容器主机安全性的详细信息,请参阅以下文章: