第 10 章 使用 RHEL 系统角色设置自定义加密策略
自定义加密策略是一组管理加密算法和协议使用的规则和配置。这些策略帮助您在多个系统和应用程序中维护受保护的、一致且可管理的安全环境。
通过使用 crypto_policies
RHEL 系统角色,您可以以自动的方式,快速且一致地在多个操作系统中配置自定义加密策略。
10.1. 使用 crypto_policies
RHEL 系统角色,使用 FUTURE
加密策略增强安全性
您可以使用 crypto_policies
RHEL 系统角色在受管节点上配置 FUTURE
策略。例如,此策略有助于实现:
- 防范未来新出现的威胁:预测计算能力的进步。
- 增强了安全性:更强大的加密标准需要更长的密钥长度和更安全的算法。
- 遵守高安全性标准:例如在医疗保健、电信和财务方面,数据敏感度很高,并且强大的加密可用性至关重要。
通常,FUTURE
适合处理高度敏感数据,为未来法规做准备或采用长期安全策略的环境。
传统系统或软件不必支持FUTURE
策略强制执行的更现代化且更严格的算法和协议。例如,旧的系统可能不支持 TLS 1.3 或更大的密钥大小。这可能导致兼容性问题。
另外,使用强大的算法通常会增加计算工作负载,这可能会对您的系统性能造成负面影响。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
步骤
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configure cryptographic policies hosts: managed-node-01.example.com tasks: - name: Configure the FUTURE cryptographic security policy on the managed node ansible.builtin.include_role: name: rhel-system-roles.crypto_policies vars: - crypto_policies_policy: FUTURE - crypto_policies_reboot_ok: true
示例 playbook 中指定的设置包括以下内容:
crypto_policies_policy: FUTURE
-
在受管节点上配置所需的加密策略(
FUTURE
)。它可以是基本策略,也可以是带有一些子策略的基本策略。指定的基本策略和子策略必须在受管节点上提供。默认值为null
。这意味着配置没有被更改,crypto_policies
RHEL 系统角色将只收集 Ansible 事实。 crypto_policies_reboot_ok: true
-
导致系统在加密策略更改后重启,以确保所有服务和应用程序将读取新的配置文件。默认值为
false
。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.crypto_policies/README.md
文件。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
因为 FIPS:OSPP
系统范围的子策略包含对通用标准(CC)认证所需的加密算法的进一步限制,所以在设置它后系统的互操作性较差。例如,您无法使用少于 3072 位的 RSA 和 DH 密钥、其它 SSH 算法和几个 TLS 组。设置 FIPS:OSPP
也会阻止连接到 Red Hat Content Delivery Network (CDN)结构。另外,您无法将活动目录(AD)集成到使用 FIPS:OSPP
的 IdM 部署中 ,使用 FIPS:OSPP
的 RHEL 主机和 AD 域之间的通信可能无法工作,或者某些 AD 帐户可能无法进行身份验证。
请注意,在设置了 FIPS:OSPP
加密子策略后,您的 系统不符合 CC。使 RHEL 系统符合 CC 标准的唯一正确方法是遵循 cc-config
软件包中提供的指导。有关已认证的 RHEL 版本的列表、验证报告以及 国家信息保障合作伙伴(NIAP) 网站上托管的 CC 指南的链接,请参阅有关 产品合规 红帽客户门户网站上的 通用标准 部分。
验证
在控制节点上,创建另一个 playbook,例如
verify_playbook.yml
:--- - name: Verification hosts: managed-node-01.example.com tasks: - name: Verify active cryptographic policy ansible.builtin.include_role: name: rhel-system-roles.crypto_policies - name: Display the currently active cryptographic policy ansible.builtin.debug: var: crypto_policies_active
示例 playbook 中指定的设置包括以下内容:
crypto_policies_active
-
导出的 Ansible 事实含有当前活动的策略名称,格式为
crypto_policies_policy
变量所接受的格式。
验证 playbook 语法:
$ ansible-playbook --syntax-check ~/verify_playbook.yml
运行 playbook:
$ ansible-playbook ~/verify_playbook.yml TASK [debug] ************************** ok: [host] => { "crypto_policies_active": "FUTURE" }
crypto_policies_active
变量显示受管节点上活动的策略。
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.crypto_policies/README.md
文件 -
/usr/share/doc/rhel-system-roles/crypto_policies/
目录 -
update-crypto-policies (8)
和crypto-policies (7)
手册页