Zed 系列发布说明

18.0.0.0b1-110

新特性

  • 现在可以使用 security_ntp_server_options 修改 chrony 中的 NTP 服务器选项。

  • Chrony 获得了一个新的配置选项,可以使用 security_ntp_sync_rtc 变量将系统时钟同步回 RTC。默认情况下禁用。

  • 添加了变量 security_rhel7_enable_aide,旨在避免安装和初始化与 STIG 相关的 aide。

升级说明

  • 已更改 chrony.conf 中的默认 NTP 服务器选项。offline 选项已被删除,minpoll / maxpoll 已被删除以支持上游默认值,同时添加了 iburst 选项以加快初始时间同步。

弃用说明

  • Fedora 不再在 CI 中为每次提交进行测试。

18.0.0.0b1

新特性

  • 现在支持 Fedora 27。

弃用说明

  • 已弃用 Fedora 26 支持,并且不再在每次提交时进行测试。

17.0.0.0b2

新特性

  • 默认情况下,现在已禁用为软件包安装的所有文件生成和验证校验和。 检查会导致 playbook 运行延迟,并且会消耗大量的 CPU 和 I/O 资源。 部署者可以通过将 security_check_package_checksums 设置为 yes 来重新启用检查。

  • 现在可以设置 security_sshd_permit_root_login 设置,以更改 /etc/ssh/sshd_config 中的 PermitRootLogin 设置为任何可能的选项。 将 security_sshd_permit_root_login 设置为 without-passwordprohibit-passwordforced-commands-onlyyesno 中的一个。

  • ansible-hardening 角色中的任务现在基于 Red Hat Enteprise Linux Security Technical Implementation Guide 第 1 版第 3 版。

  • sysctl 参数 kernel.randomize_va_space 现在默认设置为 2。 这与大多数现代 Linux 发行版的默认设置匹配,并且可确保启用地址空间布局随机化 (ASLR)。

  • Datagram Congestion Control Protocol (DCCP) 内核模块现在默认禁用,但需要重新启动才能使更改生效。

  • 默认情况下,现在已禁用搜索可写入世界的文件的功能。 搜索会导致 playbook 运行延迟,并且会消耗大量的 CPU 和 I/O 资源。 部署者可以通过将 security_find_world_writable_dirs 设置为 yes 来重新启用搜索。

17.0.0.0b1

新特性

  • 部署者现在可以为 EPEL 发布软件包指定自定义软件包名称或 URL。 CentOS 系统默认使用 epel-release,但有些部署者有一个自定义软件包,该软件包将服务器重定向到内部镜像。

  • 现在支持 Fedora 26。

  • Chrony 的默认 NTP 服务器列表现在对北美以外的用户更友好。部署者仍然可以使用 security_ntp_servers Ansible 变量提供他们自己的 NTP 服务器列表。

  • 密码最小和最大生存期现在是可选择的更改,可以对用户帐户采取行动,而不是打印调试警告。请参阅 STIG 要求 V-71927 和 V-71931 的文档,以查看选择加入过程和警告。

升级说明

  • 仅当部署者将 security_enable_virus_scanner 设置为 yes 时,才会安装和配置 EPEL 存储库。这允许安装 ClamAV 包。如果将 security_enable_virus_scanner 设置为 no(默认值),则不会添加 EPEL 存储库。

    有关更多详细信息,请参阅 Bug 1702167

  • 部署者现在可以选择通过该角色阻止安装 EPEL 存储库。将 security_epel_install_repository 设置为 no 可以防止安装 EPEL。此设置可能会阻止某些软件包的安装,例如 ClamAV。

  • 已删除 V-72181 的任务,其中包括为 pt_chown 命令添加审核规则。它们在 RHEL 7 STIG V1R2 版本中不再需要。

弃用说明

  • 已弃用 Fedora 25 支持,并且不再在每次提交时进行测试。

安全问题

  • PermitRootLogin 在 ssh 配置中已从 yes 更改为 without-password。这将仅允许使用密钥通过 ssh 身份验证 root。

错误修复

  • sysctl 配置任务没有跳过 enabled 设置为 no 的配置。 相反,当设置 enabled: no 时,它会删除配置。

    现在有一个修复程序,可确保任何 enabled: no 的 sysctl 配置将被跳过,并且系统上的配置将保持不变。

16.0.0.0b1

序言

Red Hat Enterprise Linux 7 STIG 的第一个发布版本完全从预发布版本重新编号。许多 STIG 配置只是更改了数字,但有些被删除或更改了。也添加了一些新的配置。

新特性

  • 部署者可以通过新的 Ansible 变量提供自定义登录横幅:security_login_banner_text。此横幅文本用于非图形化登录,包括控制台和 ssh 登录。

安全问题

  • 安全角色默认情况下不再根据 RPM 数据库的内容修复文件权限和所有权。部署者可以通过将 security_reset_perm_ownership 设置为 yes 来选择加入这些更改。

  • 搜索 .shostsshosts.equiv 文件的任务(STIG ID:RHEL-07-040330)现在默认跳过。搜索在包含大量文件的系统上完成需要很长时间,并且在运行时也会导致大量的磁盘 I/O。

  • 最新版本的 RHEL 7 STIG 要求在用户登录系统时向用户呈现标准的登录横幅 (V-71863)。安全角色现在部署一个用于控制台和 ssh 会话的登录横幅。

  • 作为 RHEL-07-040070 和 RHEL-07-040080 的一部分包含的 cn_map 权限和所有权调整已被删除。此 STIG 配置已从最新版本的 RHEL 7 STIG 中删除。

  • RHEL-07-040030、RHEL-07-040040 和 RHEL-07-040050 的基于 PKI 的身份验证检查不再包含在 RHEL 7 STIG 中。这些过时配置的任务和文档已被删除。

15.0.0.0b3

新特性

  • Red Hat Enterprise Linux (RHEL) 7 STIG 内容现在默认部署。部署者可以通过设置以下 Ansible 变量继续使用 RHEL 7 STIG 内容

    stig_version: rhel6
    

升级说明

  • 部署者应查看 defaults/main.yml 中的新的 RHEL 7 STIG 变量,以提供 Ansible 任务的自定义配置。

弃用说明

  • Red Hat Enterprise Linux 6 STIG 内容已弃用。RHEL 6 STIG 的任务和变量将在未来的版本中删除。

15.0.0.0b1

新特性

  • chrony 的安装默认情况下仍然启用,但现在由变量 security_enable_chrony 控制。

升级说明

  • 安全角色将接受已安装的软件包的当前版本,而不是尝试更新它。这减少了安全角色后续运行中对系统进行意外更改的可能性。部署者仍然可以将 security_package_state 设置为 latest,以确保安全角色安装的所有软件包都是最新的。

14.0.0.0rc1

新特性

  • 该角色现在在早期启动期间启用审计,以符合 V-38438 的要求。 默认情况下,/etc/default/grub.d/ 中的 GRUB 配置变量将被更新,并且活动的 grub.cfg 将被更新。

    部署者可以完全选择退出此更改,方法是设置一个变量

    security_enable_audit_during_boot: no
    

    部署者可以选择加入此更改,而无需自动更新活动 grub.cfg 文件,方法是设置以下 Ansible 变量

    security_enable_audit_during_boot: yes
    security_enable_grub_update: no
    
  • 虽然 STIG 要求记录恶意的网络包,但默认情况下现在已禁用记录。日志会迅速填满 syslog 服务器或使物理控制台无法使用。

    需要启用此日志记录的部署者需要设置以下 Ansible 变量

    security_sysctl_enable_martian_logging: yes
    

升级说明

  • 所有自主访问控制 (DAC) 审计默认情况下均已禁用。这减少了部署和次要升级期间生成的日志量。以下变量现在设置为 no

    security_audit_DAC_chmod: no
    security_audit_DAC_chown: no
    security_audit_DAC_lchown: no
    security_audit_DAC_fchmod: no
    security_audit_DAC_fchmodat: no
    security_audit_DAC_fchown: no
    security_audit_DAC_fchownat: no
    security_audit_DAC_fremovexattr: no
    security_audit_DAC_lremovexattr: no
    security_audit_DAC_fsetxattr: no
    security_audit_DAC_lsetxattr: no
    security_audit_DAC_setxattr: no
    

错误修复

  • auditd 规则用于审计 V-38568(文件系统挂载),在 auditd 日志中被错误地标记为键 export-V-38568。现在它们使用键 filesystem_mount-V-38568 正确记录。

14.0.0.0b3

新特性

  • 已添加一个任务以禁用安全 ICMP 重定向,以满足 V-38526 的要求。 此更改可能会在某些环境中引起问题,因此默认情况下已禁用它。 部署者可以通过将 security_disable_icmpv4_redirects_secure 设置为 yes 来启用该任务(禁用安全 ICMP 重定向)。

  • 已添加一个新任务以禁用 ICMPv6 重定向,以满足 V-38548 的要求。 但是,由于此更改可能会导致正在运行的 OpenStack 环境出现问题,因此默认情况下已禁用它。 希望启用此任务(并禁用 ICMPv6 重定向)的部署者应将 security_disable_icmpv6_redirects 设置为 yes

  • AIDE 在执行数据库初始化和执行检查时,配置为跳过整个 /var 目录。这可以减少磁盘 I/O,并使这些任务完成得更快。

    这也允许初始化成为一个阻塞过程,Ansible 将等待初始化完成,然后再运行下一个任务。

  • security 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 security_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

升级说明

  • 变量 security_sysctl_enable_tcp_syncookies 替换了 security_sysctl_tcp_syncookies,现在是一个布尔值而不是整数。它仍然默认启用,但部署者可以通过设置以下 Ansible 变量来禁用 TCP syncookies

    security_sysctl_enable_tcp_syncookies: no
    
  • security 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 security_package_state 设置为 present

错误修复

  • 由于 /run 目录中的文件和目录只是临时文件,并且在服务启动和停止时经常更改,因此从 AIDE 检查中排除该目录。

  • security_initialize_aide 设置为 yes 时,AIDE 初始化始终在后续 playbook 运行中运行。如果未安装 AIDE 或 AIDE 数据库已存在,则初始化将被跳过。

    有关更多详细信息,请参阅 bug 1616281

14.0.0.0b2

新特性

  • 安全角色现在具有任务,这些任务将在使用 upstart(Ubuntu 14.04)或 systemd(Ubuntu 16.04 和 CentOS 7)的服务器上禁用图形界面。这些更改在重新启动后生效。

    需要图形界面的部署者需要设置以下 Ansible 变量

    security_disable_x_windows: no
    
  • 添加了一个任务,用于限制 ICMPv4 重定向,以满足 STIG 中 V-38524 的要求。此配置默认禁用,因为它在某些环境中可能导致 LXC 出现问题。

    部署者可以通过设置 Ansible 变量来启用此配置

    security_disable_icmpv4_redirects: yes
    
  • 添加的安全角色添加的 audit 规则现在具有键字段,这使得将 audit 日志条目链接到导致其出现的 audit 规则更容易。

  • V-38476 中软件包验证的 GPG 密钥检查现在也适用于 CentOS 7,除了 Red Hat Enterprise Linux 7 之外。检查仅查找来自 Red Hat 的 GPG 密钥,并跳过任何其他 GPG 密钥,例如从 EPEL 存储库导入的密钥。

错误修复

  • 该角色先前没有在生成新规则文件后重启 audit 守护程序。已修复 bug,并且在任何 audit 规则更改后将重启 audit 守护程序。

  • 当安全角色在 Ansible 的检查模式下运行并且提供了标签时,check_mode 变量没有被设置。任何依赖于该变量的任务都会失败。已修复此 bug,并且 check_mode 变量现在在每次 playbook 运行时都正确设置。

14.0.0.0b1

新特性

  • 包含在 auditd 规则模板中的规则审计了 AppArmor 策略的更改,但未审计 SELinux 策略的更改。 现在,/etc/selinux 中的任何 SELinux 策略更改都将由 auditd 记录。

  • 已添加一个 Ansible 以禁用 CentOS 系统上的 rdisc 服务(如果该服务已安装在系统上)。

    部署者可以通过将 security_disable_rdisc 设置为 no 来选择退出此更改。

  • 安全角色现在默认情况下将启用适用于使用的 Linux 发行版的 Linux 安全模块 (LSM)。部署者可以通过设置以下 Ansible 变量来选择退出此更改

    security_enable_linux_security_module: False
    

    STIG V-51337 的文档提供了有关如何启用每个 LSM 以及 SELinux 的特殊说明的更多信息。

  • 已添加一个新的配置参数 security_ntp_bind_local_interfaces 到 security 角色,以限制 chronyd 将侦听 NTP 请求的网络接口。

  • 添加了任务来搜索在 CentOS 系统上没有正确 SELinux 标签的任何设备文件。如果找到任何这些设备标签,playbook 执行将停止并显示错误消息。

  • openstack-ansible-security 角色支持将 Red Hat Enterprise Linux 6 STIG 配置应用于运行 CentOS 7 和 Ubuntu 16.04 LTS 的系统。

升级说明

  • 变量 security_audit_apparmor_changes 现在已重命名为 security_audit_mac_changes,并且默认已启用。将 security_audit_mac_changes 设置为 no 将禁用对 AppArmor 策略(在 Ubuntu 中)或 SELinux 策略(在 CentOS 中)任何更改的系统调用审计。

  • 安全角色中的所有变量现在都以 security_ 为前缀,以避免与其他角色中的变量冲突。之前在以前版本中使用过安全角色的所有部署者都需要在所有安全角色变量前加上 security_

    例如,部署者可以使用以下变量禁用直接 root ssh 登录

    ssh_permit_root_login: yes
    

    该变量将变为

    security_ssh_permit_root_login: yes
    

错误修复

  • defaults/main.yml 中的基于字典的变量现在是单独的变量。无法按照文档说明更改字典型变量。而是需要覆盖整个字典。部署者必须使用新的变量名才能启用或禁用安全角色应用的安全性配置更改。有关更多信息,请参阅 Launchpad Bug 1577944

  • 默认情况下现在已禁用失败的访问日志记录,并且可以通过将 security_audit_failed_access 更改为 yes 来启用。rsyslog 守护程序定期检查日志文件的存在,此 audit 规则被触发的频率很高,这导致了非常大的 audit 日志。

  • 已添加一个 Ansible 任务,用于在 CentOS 系统上禁用 netconsole 服务(如果系统上已安装该服务)。

    部署者可以通过将 security_disable_netconsole 设置为 no 来选择退出此更改。

  • 安全角色先前将 /var/log/audit 中的所有 audit 日志文件的权限设置为 0400,但这会阻止 audit 守护程序写入活动日志文件。这将阻止 auditd 干净地启动或重启。

    该任务现在会删除任何不符合 STIG 要求的权限。任何满足或超过 STIG 要求的日志文件将不会被修改。

  • 安全角色现在处理包含 Match 语句的 ssh_config 文件。会添加一个标记到配置文件中,任何新的配置项都将添加到该标记下方。此外,每次更改 ssh 配置文件时都会验证该文件。