为 FIPS 配置 MongoDB
Overview
联邦信息处理标准 (FIPS) 是美国政府的计算机安全标准,用于认证安全加密和解密数据的软件模块和库。您可以配置 MongoDB ,使其使用经 FIPS 140-2 认证的 OpenSSL 库运行。您可以将 FIPS 配置为默认运行或根据需要从命令行运行。
FIPS 和 TLS/SSL 的完整描述超出了本文档的范围。本教程假定您事先了解 FIPS 和 TLS/SSL。
重要
MongoDB 和 FIPS
FIPS 是加密系统的属性,而不是访问控制系统的属性。但是,如果您的环境需要符合 FIPS 的加密和访问控制,则必须确保访问控制系统仅使用符合 FIPS 的加密。
MongoDB 的 FIPS 支持涵盖 MongoDB 使用 SSL/TLS 库进行网络加密、SCRAM 身份验证和 x.509 身份验证的方式。如果使用 Kerberos 或 LDAP 身份验证,则必须确保这些外部机制与 FIPS 兼容。
注意
MongoDB 在支持 TLS 1.1+ 的系统上禁用对 TLS 1.0 加密的支持。
平台支持
FIPS模式仅适用于 MongoDB Enterprise版。 请参阅安装MongoDB Enterprise以下载和安装MongoDB Enterprise。
以下平台支持 FIPS 模式:
平台 | TLS/SSL 库 |
---|---|
Linux | OpenSSL |
Windows | 安全通道 (Schannel) |
macOS | 安全传输 |
配置 FIPS
选择以下适合平台的标签页:
先决条件
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 prelink 进程配置为无 prelink 的
libcrypto
,请运行以下命令:sudo bash -c "echo '-b /usr/lib64/libcrypto.so.*' >>/etc/prelink.conf.d/openssl-prelink.conf"
配置好 Linux 系统以支持 FIPS 兼容操作后,请按照以下步骤配置 mongod
或 mongos
实例,使其在 FIPS 模式下运行。
步骤
A. 将 MongoDB 配置为使用 TLS/SSL
请参阅为 TLS/SSL 配置 mongod
和 mongos
,了解将部署配置为使用 TLS/SSL 的详细信息。确保您的证书符合 FIPS 标准。
B. 以 FIPS 模式运行 MongoDB 实例
在为 TLS/SSL 配置 mongod
和 mongos
后执行这些步骤。
C. 确认 FIPS 模式正在运行
检查服务器日志文件中是否有 FIPS 处于活动状态的消息:
FIPS 140-2 mode activated
先决条件
Microsoft提供了以下有关为Windows 10和Windows Server 2016或更高版本配置 FIPS模式的资源:
将Windows系统配置为支持符合 FIPS 标准的操作后,请按照以下步骤将mongod
或mongos
实例配置为在 FIPS模式。
步骤
A. 将 MongoDB 配置为使用 TLS/SSL
请参阅为 TLS/SSL 配置 mongod
和 mongos
,了解将部署配置为使用 TLS/SSL 的详细信息。确保您的证书符合 FIPS 标准。
B. 以 FIPS 模式运行 MongoDB 实例
在为 TLS/SSL 配置 mongod
和 mongos
后执行这些步骤。
C. 确认 FIPS 模式正在运行
检查服务器日志文件中是否有 FIPS 处于活动状态的消息:
FIPS 140-2 mode activated
先决条件
默认,受支持的 macOS 版本与 FIPS 兼容。 检查 macOS 版本的文档,验证其合规状态。 示例,Apple 为 macOS 10.14提供了以下资源:
步骤
A. 将 MongoDB 配置为使用 TLS/SSL
请参阅为 TLS/SSL 配置 mongod
和 mongos
,了解将部署配置为使用 TLS/SSL 的详细信息。确保您的证书符合 FIPS 标准。
B. 以 FIPS 模式运行 MongoDB 实例
在为 TLS/SSL 配置 mongod
和 mongos
后执行这些步骤。
C. 确认 FIPS 模式正在运行
检查服务器日志文件中是否有 FIPS 处于活动状态的消息:
FIPS 140-2 mode activated
其他注意事项
从版本 4.2 开始,MongoDB 删除了以下程序的--sslFIPSMode
选项:
如果mongod
/mongos
mongos
实例 配置为使用mongod
FIPS 模式 ,则程序将使用与 / 的符合 FIPS 的连接。
如果您使用 SCRAM-SHA-1:
md5 是有必要使用的,但并不用于加密目的,
如果使用FIPS 模式,则使用以下命令代替SCRAM-SHA- 1 :
数据库工具和 FIPS 模式
以下程序不再支持--sslFIPSMode
选项:
mongod
、mongos
和 FIPS 模式
如果将 mongod
和 mongos
配置为使用 FIPS 模式,mongod
和 mongos
将使用符合 FIPS 标准的连接。
MongoDB Shell 和 FIPS 模式
默认的mongosh
发行版:
MongoDB 还提供了 MongoDB Shell 发行版,可以使用:
您的服务器上安装了 OpenSSL 1.1 和 OpenSSL 3。
--tlsFIPSMode
选项,以启用mongosh
FIPS 模式。