为 FIPS 配置 MongoDB
概述
联邦信息处理标准 (FIPS) 是美国政府的计算机安全标准,用于认证安全加密和解密数据的软件模块和库。您可以将 MongoDB 配置为与 FIPS 140-2 认证的 OpenSSL 库一起运行。将 FIPS 配置为默认运行或根据需要从命令行运行。
FIPS 和 TLS/SSL 的完整描述超出了本文档的范围。本教程假设您事先了解 FIPS 和 TLS/SSL。
[IMPORTANT]
MongoDB 和 FIPS
FIPS 是加密系统的属性,而不是访问控制系统的属性。但是,如果您的环境需要符合 FIPS 的加密 和访问控制,则必须确保访问控制系统仅使用符合 FIPS 的加密。
MongoDB 的 FIPS 支持涵盖了 MongoDB 使用 SSL/TLS 库进行网络加密、SCRAM 身份验证和 x.509 身份验证的方式。如果您使用 Kerberos 或 LDAP 身份验证,则必须确保这些外部机制符合 FIPS。
[NOTE]
从 4.0 版开始,MongoDB在 TLS 1.1+ 可用的系统上禁用对 TLS 1.0 加密的支持。有关详细信息,请参阅禁用 TLS 1.0 。
平台支持
FIPS 模式仅适用于MongoDB 企业版版。请参阅 安装 MongoDB Enterprise下载并安装 MongoDB 企业版。
以下平台支持 FIPS 模式:
平台 | TLS/SSL 库 |
---|---|
Linux | 打开SSL |
视窗 | 安全通道(SChannel) |
苹果系统 | 安全运输 |
配置 FIPS
为您的平台选择下面的选项卡:
Linux
先决条件
您的 Linux 系统必须具有配置有 FIPS 140-2 模块的 OpenSSL 库,以便支持 MongoDB 的 FIPS 模式。
通过运行以下命令验证您的 OpenSSL 软件是否包括 FIPS 支持:
openssl version
对于 Red Hat Enterprise Linux 6.x (RHEL 6.x) 或其衍生版本,例如 CentOS 6.x,OpenSSL 工具包必须至少
openssl-1.0.1e-16.el6_5
是使用 FIPS 模式的版本。要在这些平台上升级 OpenSSL 库,请运行以下命令:sudo yum update openssl
某些版本的 Linux 会定期执行一个过程,以使用预先分配的地址预先链接动态库。此过程会修改 OpenSSL 库,特别是
libcrypto
. OpenSSL FIPS 模式随后将无法通过启动时执行的签名检查,以确保libcrypto
自编译以来未被修改。要将 Linux 预链接进程配置为不预链接
libcrypto
,请运行以下命令:sudo bash -c "echo '-b /usr/lib64/libcrypto.so.*' >>/etc/prelink.conf.d/openssl-prelink.conf"
将 Linux 系统配置为支持符合 FIPS 的操作后,请按照以下步骤将您的实例配置 mongod
为mongos
在 FIPS 模式下运行。
Windows系统
先决条件
Microsoft 提供了以下有关为 Windows 10 和 Windows Server 2016 或更高版本配置 FIPS 模式的资源:
将 Windows 系统配置为支持符合 FIPS 的操作后,请按照以下步骤将您的 mongod
或mongos
实例配置为在 FIPS 模式下运行。
macOS
先决条件
默认情况下,受支持的 macOS 版本符合 FIPS。查看适用于您的 macOS 版本的文档以验证其合规性状态。例如,Apple 为 macOS 10.14 提供了以下资源:
在兼容版本的 macOS 上,按照以下步骤将您的实例配置 mongod
为mongos
在 FIPS 模式下运行。
A. 配置 MongoDB 以使用 TLS/SSL
有关配置mongod``mongos
部署以使用 TLS/ SSL 的详细信息,请参阅为 TLS/SSL配置和配置。确保您的证书符合 FIPS 标准。
B. 以 FIPS 模式运行 MongoDB 实例
在为 TLS/SSL配置和后执行这些步骤。mongod``mongos
更改配置文件。
要将您的
mongod
或mongos
实例配置为使用 FIPS 模式,请关闭实例并使用以下net.tls.FIPSMode
设置更新配置文件:在 MongoDB 4.2+ 中:
net: tls: FIPSMode: true
尽管仍然可用,但自 MongoDB 4.2起
net.ssl.FIPSMode
已 弃用。在 MongoDB 4.0 及更早版本中:
net: ssl: FIPSMode: true
-
例如,运行此命令以
mongod
使用其配置文件启动实例:mongod --config /etc/mongod.conf
C. 确认 FIPS 模式正在运行
检查服务器日志文件中是否有一条消息表明 FIPS 处于活动状态:
FIPS 140-2 mode activated
其他注意事项
SCRAM SHA 和 FIPS 模式
从 MongoDB 5.1 开始,实例运行在 FIPS模式默认禁用 SCRAM-SHA-1 身份验证机制 。您可以使用 setParameter.authenticationMechanisms命令启用SCRAM-SHA-1 身份验证机制。
此更改不会影响以 MongoDB setFeatureCompatibilityVersion
4.0+ 为目标的驱动程序。
如果您使用SCRAM-SHA-1 :
- md5是必需的,但不用于加密目的,并且
- 如果你使用FIPS模式,然后使用 SCRAM-SHA-1代替:
数据库工具和 FIPS 模式
从 MongoDB 4.2 开始,以下程序不再支持该 --sslFIPSMode
选项:
mongod
, mongos
, 和 FIPS 模式
如果您配置mongod
并mongos
使用 FIPS 模式,mongod
并mongos
使用符合 FIPS 的连接。
MongoDB Shell 和 FIPS 模式
默认值MongoDB Shell
分配:
MongoDB 还提供了一个 MongoDB Shell 发行版,可以使用:
- 服务器上安装了 OpenSSL 1.1 和 OpenSSL 3。
--tlsFIPSMode
选项,启用mongosh
FIPS 模式。
[TIP]
也可以看看:
- 要下载包含 OpenSSL 1.1 和 OpenSSL 3 的 MongoDB Shell 发行版,请转到MongoDB 下载中心。
- 安装mongosh
参见
原文 - Configure MongoDB for FIPS
译者:景圣