更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > RHEL/CentOS/Rocky Linux上配置系统范围的加密策略

RHEL/CentOS/Rocky Linux上配置系统范围的加密策略

更新时间:2023-01-19 10:17:52浏览次数:628+次

本文介绍在RHEL/CentOS/Rocky Linux/AlmaLinux上配置系统范围的加密策略(system-wide cryptographic policies)的方法。

简介

系统范围的加密策略是通过启用一组协议来配置核心加密子系统的包。这包括IPSec、TLS、DNSSec、SSH和Kerberos协议。此软件包提供了一组策略,系统管理员可以从中进行选择。应用程序和服务被迫使用它们并拒绝与设置策略不一致的任何其他协议。不符合设置策略的应用程序只有在明确设置为这样做时才能使用它。

以下是预定义的加密策略:

DEFAULT:这是默认的系统范围加密策略,为所有当前威胁提供安全设置。此策略允许TLS 1.2和1.3协议、IKEv2和SSH2协议。如果RSA密钥和Diffie-Hellman参数的长度至少为2048位,则也可以接受它们。

LEGACY:这确保了与Red Hat Enterprise Linux 6和更早版本的最大兼容性。这会降低安全性,增加攻击面。这里,SHA-1可以用作TLS哈希、签名和算法。此外,使用GnuTLS的应用程序允许使用SHA-1签名的证书。

FUTURE:这项政策被认为可以防止近期的威胁。它不允许SHA-1用于DNSSec或HMAC。这里,SHA2-224和SHA3-224散列以及128位密码被禁用。只有当RSA密钥和Diffie-Hellman参数的长度至少为3072位时,才接受它们。

FIPS:此策略符合FIPS 140-2标准。它与将系统切换到fips模式的fips-mode-setup工具一起在内部使用。

配置系统范围的加密策略的方法

1、检查系统范围的加密策略

update-crypto-policies命令用于管理RHEL/CentOS/Rocky/AlmaLinux上的系统范围加密策略。该软件包预装在许多基于Rhel的系统上。如果不可用,请使用以下命令安装:

sudo yum -y install crypto-policies-scripts

\

安装后,使用以下命令检查RHEL/CentOS/Rocky/AlmaLinux上当前的系统范围加密策略:

$ sudo update-crypto-policies --show

DEFAULT

2、设置/更改系统范围的加密策略

可以使用update-crypto-policies命令将系统范围的加密策略切换到首选策略。

所用命令的语法为:

sudo update-crypto-policies --set <POLICY>

例如,切换到FUTURE策略时,命令将为:

sudo update-crypto-policies --set FUTURE

\

设置策略后,建议您重新启动系统:

sudo reboot

3、测试系统范围的加密策略

每个策略都有自己的规则集。对于此测试,我假设您已切换到禁用SHA-1的FUTURE策略。

首先,检查策略:

$ sudo update-crypto-policies --show

FUTURE

我们将使用下面的cURL命令对此进行测试:

curl https://sha1-intermediate.badssl.com

\

从上面的输出中,我们看到SHA-1证书已被禁用。这证明未来政策正在按预期运行。

4、从系统范围的加密策略中排除应用程序

如前所述,系统范围的加密策略迫使服务或应用程序遵循设置的策略。但是,您可以从以下系统范围的加密策略中排除应用程序。

这可以通过在应用程序中直接配置密码套件和协议来实现。您还可以从/etc/crypto-policies/back-ends后端删除到应用程序的系统链接,并将其替换为自定义策略。

为了演示这一点,我将使用cURL和--ciphers选项。例如:

curl https://example.com --ciphers '@SECLEVEL=0:DES-CBC3-SHA:RSA-DES-CBC3-SHA'

您还可以使用wget并指定--secure-protocol和--ciphers。例如:

wget --secure-protocol=TLSv1_1 --ciphers="SECURE128" https://example.com

5、使用子策略自定义系统范围的加密策略

这主要是为了调整启用的加密算法或协议集。有两种方法可以做到这一点,您可以在现有的系统范围加密策略之上应用自定义子策略,也可以从头定义策略。

首先,导航到以下目录:

cd /etc/crypto-policies/policies/modules/

创建所需的子策略:

sudo touch MYCRYPTO-1.pmod SCOPES-AND-WILDCARDS.pmod

打开创建的子策略进行编辑:

sudo vi SCOPES-AND-WILDCARDS.pmod

添加选项以修改现有的系统范围加密策略。例如:

# Disable the AES-128 cipher, all modes

cipher = -AES-128-*

# Disable CHACHA20-POLY1305 for the TLS protocol (OpenSSL, GnuTLS, NSS, and OpenJDK)

cipher@TLS = -CHACHA20-POLY1305

# Allow using the FFDHE-1024 group with the SSH protocol (libssh and OpenSSH)

group@SSH = FFDHE-1024+

# Disable all CBC mode ciphers for the SSH protocol (libssh and OpenSSH)

cipher@SSH = -*-CBC

# Allow the AES-256-CBC cipher in applications using libssh

cipher@libssh = AES-256-CBC+

您还可以编辑其他文件:

$ sudo vi MYCRYPTO-1.pmod

min_rsa_size = 3072

hash = SHA2-384 SHA2-512 SHA3-384 SHA3-512

保存更改后,应用模块:

$ sudo update-crypto-policies --set DEFAULT:MYCRYPTO-1:SCOPES-AND-WILDCARDS

Setting system policy to DEFAULT:MYCRYPTO-1:SCOPES-AND-WILDCARDS

Note: System-wide crypto policies are applied on application start-up.It is recommended to restart the system for the change of policies to fully take place.

要应用更改,请重新启动系统:

sudo reboot

系统启动后,检查新策略和子策略:

$ update-crypto-policies --show

DEFAULT:MYCRYPTO-1:SCOPES-AND-WILDCARDS

接下来,讲述一下重新启用SHA-1的方法。

通常,默认策略中禁用SHA-1算法。然而,您可能会发现自己处于需要使用SHA-1验证现有或第三方加密签名的场景中。您可以通过将其作为子策略应用来启用它。此策略由RHEL9在DEFAULT策略中提供。

对于使用DEFAULT策略的系统,请使用以下命令设置SHA1子策略:

$ sudo update-crypto-policies --set DEFAULT:SHA1

Setting system policy to DEFAULT:SHA1

Note: System-wide crypto policies are applied on application start-up.It is recommended to restart the system for the change of policies to fully take place.

重新启动系统:

sudo reboot

验证子策略集:

$ update-crypto-policies --show

DEFAULT:SHA1

6、创建自定义的系统范围加密策略

您可以为系统创建完全自定义的系统范围加密策略。实现此目的的步骤如下所示

首先,创建策略文件:

cd /etc/crypto-policies/policies/

sudo touch MYPOLICY.pol

也可以通过从4个可用策略级别复制预定义策略来创建此文件。例如:

sudo cp /usr/share/crypto-policies/policies/DEFAULT.pol /etc/crypto-policies/policies/MYPOLICY.pol

现在编辑文件以满足您的要求:

sudo vi /etc/crypto-policies/policies/MYPOLICY.pol

编辑后,使用以下命令应用策略:

sudo update-crypto-policies --set MYPOLICY

重新启动系统,使更改生效:

sudo reboot

至此,关于如何在RHEL/CentOS/Rocky/AlmaLinux上配置系统范围加密策略(system-wide cryptographic policies)的操作全部结束了,希望这对您有帮助。