为 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 的操作后,请按照以下步骤将您的实例配置 mongodmongos在 FIPS 模式下运行。

Windows系统

先决条件

Microsoft 提供了以下有关为 Windows 10 和 Windows Server 2016 或更高版本配置 FIPS 模式的资源:

Windows 上的 FIPS 140-2 验证

将 Windows 系统配置为支持符合 FIPS 的操作后,请按照以下步骤将您的 mongodmongos实例配置为在 FIPS 模式下运行。

macOS

先决条件

默认情况下,受支持的 macOS 版本符合 FIPS。查看适用于您的 macOS 版本的文档以验证其合规性状态。例如,Apple 为 macOS 10.14 提供了以下资源:

适用于 10.14 的 Apple FIPS 加密模块

在兼容版本的 macOS 上,按照以下步骤将您的实例配置 mongodmongos在 FIPS 模式下运行。

程序img

A. 配置 MongoDB 以使用 TLS/SSL

有关配置mongod``mongos部署以使用 TLS/ SSL 的详细信息,请参阅为 TLS/SSL配置和配置。确保您的证书符合 FIPS 标准。

B. 以 FIPS 模式运行 MongoDB 实例

在为 TLS/SSL配置后执行这些步骤mongod``mongos

  1. 更改配置文件。

    要将您的mongodmongos实例配置为使用 FIPS 模式,请关闭实例并使用以下net.tls.FIPSMode设置更新配置文件:

    在 MongoDB 4.2+ 中:

    net:
       tls:
          FIPSMode: true
    

    尽管仍然可用,但自 MongoDB 4.2net.ssl.FIPSMode已 弃用

    在 MongoDB 4.0 及更早版本中:

    net:
       ssl:
          FIPSMode: true
    
  2. 使用配置文件启动mongod或实例化。mongos

    例如,运行此命令以 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 setFeatureCompatibilityVersion4.0+ 为目标的驱动程序。

如果您使用SCRAM-SHA-1 :

数据库工具和 FIPS 模式

从 MongoDB 4.2 开始,以下程序不再支持该 --sslFIPSMode选项:

mongod, mongos, 和 FIPS 模式

如果您配置mongodmongos使用 FIPS 模式,mongodmongos使用符合 FIPS 的连接。

MongoDB Shell 和 FIPS 模式

默认值MongoDB Shell分配:

  • 包含 OpenSSL 1.1。
  • 如果您配置mongod和 使用 FIPS 模式,则使用符合 FIPS 的连接。mongosmongod``mongos

MongoDB 还提供了一个 MongoDB Shell 发行版,可以使用:

  • 服务器上安装了 OpenSSL 1.1 和 OpenSSL 3。
  • --tlsFIPSMode选项,启用mongoshFIPS 模式。

[TIP]

也可以看看:

参见

原文 - Configure MongoDB for FIPS

译者:景圣

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""