你当前正在访问 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 2.0

此 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 容器主机安全性的详细信息,请参阅以下文章: