本主题概述了在 vSphere Replication 设备上激活联邦信息处理标准 (FIPS) 模式必须执行的必要任务。

注: FIPS 模式的证书配置不支持证书文件格式 PKCS#12PKCS#12 文件格式使用不符合 FIPS 的算法作为标准规范。

前提条件

确保在部署环境时使用可信证书。

过程

  1. 以严格模式启动 vSphere Replication 管理服务器。
    1. 导航到 /opt/vmware/hms/conf/hms-fips.conf,打开文件并更改以下设置。
       "appl_system_cryptography" : true
    2. 移除任何失效的 BCFKS 存储。
      rm /opt/vmware/hms/security/*.bks
    3. 重新启动 vSphere Replication 管理服务器服务。
      systemctl restart hms
  2. 以严格模式启动 vSphere Replication
    1. 导航到 /etc/vmware/hbrsrv.xml,打开文件并更改以下设置。
      <Config>
          <vmacore>
              <ssl>
                  <fips>true</fips>
              </ssl>
          </vmacore>
          </Config>
    2. 编辑 /usr/lib/vmware/lib/ssl/openssl.cnf,取消对以下行 # .include /usr/lib/vmware/lib/ssl/fipsmodule.cnf 的注释,然后将行 default_properties = "fips=no" 更改为 default_properties = "fips=yes"
      文件片段必须如下所示:
      # Refer to the OpenSSL security policy for more information.
      # In ESX this will be generated at boot time.
      .include /usr/lib/vmware/lib/ssl/fipsmodule.cnf
      ...
      [algorithm_sect]
      # Since we use both default and FIPS provider, we need to be specific
      # about which algorithm implementation to use as default.
      default_properties = "fips=yes"
    3. 重新启动 HBR 服务。
      systemctl restart hbrsrv
  3. 以严格模式启动 dr-configurator 服务。
    1. 导航到 /opt/vmware/dr/conf/drconfig.xml,打开文件并更改以下设置。
      <Config>
          <vmacore>
              <ssl>
                  <fips>true</fips>
              </ssl>
          </vmacore>
          </Config>
    2. 编辑 /usr/lib/systemd/system/dr-configurator.service。取消对 # Uncomment 下的行的注释以启用 FIPS
      文件片段必须如下所示。
      # Uncomment to enable FIPS
              Environment=OPENSSL_MODULES=/opt/vmware/dr/lib/ossl-modules
              Environment=OPENSSL_CONF=/opt/vmware/etc/dr/ssl/openssl.cnf
    3. 重新启动 dr-configrator 服务。
      systemctl daemon-reload
             systemctl restart dr-configurator
  4. root 用户身份登录设备,然后编辑内核 cmdline。
    1. 打开 /boot/grub/grub.cfg
    2. 找到 menuentry 条目。
    3. 将以下内容附加到每个 menuentry 中以 linux 开头的行的末尾。
      fips=1
    4. 保存文件。
  5. 以严格模式启动 Config UI。
    1. 编辑 /usr/lib/systemd/system/drconfigui.service。注释掉现有 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' 并取消对 # Uncomment 下的行的注释以启用 FIPS
      文件片段必须如下所示。
      Environment=JRE_HOME=/usr/java/jre-vmware
      # Comment when enable FIPS
      # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'
      # Uncomment to enable FIPS
      Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*'
      Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
      
    2. 取消对 /opt/vmware/drconfigui/conf/context.xml 文件中的 <Manager> 标记的注释。
      带有标记的文件片段必须如下所示。
      <!-- Uncomment to enable FIPS mode.          -->
      <Manager pathname="" secureRandomAlgorithm=""/>
    3. (可选) 如果已为设备启用 FIPS,请重新启动 drconfigui 服务。
      systemctl daemon-reload; systemctl restart drconfigui
  6. 以严格模式启动 UI。
    1. 编辑 /usr/lib/systemd/system/dr-client.service。注释掉现有 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' 并取消对 # Uncomment 下的行的注释以启用 FIPS
      文件片段必须如下所示。
      Environment=JRE_HOME=/usr/java/jre-vmware
      # Comment when enable FIPS
      # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'
      # Uncomment to enable FIPS
      Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*'
      Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
      
    2. 取消对 /opt/vmware/dr-client/conf/context.xml 文件中的 <Manager> 标记的注释。
      带有标记的文件片段必须如下所示。
      <!-- Uncomment to enable FIPS mode.              -->
      <Manager pathname="" secureRandomAlgorithm=""/>
    3. 编辑 /opt/vmware/dr-client/lib/h5dr.properties 文件,并修改参数以指向 BCFKS 格式的密钥库和具有根 CA 证书的信任库。
      属性必须如下所示。
      drTrustStorePass=<same as keyStorePass>
      drTrustStoreName=h5dr.truststore.bks
      keyStoreName=h5dr.keystore.bks
      如果选择使用默认信任库以外的其他信任库,则必须在 /opt/vmware/dr-client/lib//opt/vmware/dr-client/webapps/dr/WEB-INF/classes/ 中添加信任库的链接。密钥库格式必须为 BCFKS。要从 JKS 格式导入该文件,请使用以下命令。
      $JAVA_HOME/bin/keytool -importkeystore -srckeystore <path-to-jks-keystore> -srcstoretype JKS -srcstorepass <keystorepass> -destkeystore <path-to-target-bks-keystore> -deststoretype BCFKS -deststorepass <keystorepass> -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath /opt/vmware/dr-client/lib/ext/bc-fips-1.0.2.3.jar
      注: 您使用的密钥库和信任库文件必须具有 其他:读取权限。重新配置设备后,必须根据上述规则重新编辑文件 /opt/vmware/dr-client/lib/h5dr.properties
    4. (可选) 如果已为设备启用 FIPS,请重新启动 dr-client 服务。
      systemctl daemon-reload; systemctl restart dr-client
  7. 以严格模式启动 UI 插件 (dr-client-plugin)。
    1. 编辑 /usr/lib/systemd/system/dr-client-plugin.service。注释掉现有 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' 并取消对 # Uncomment 下的行的注释以启用 FIPS
      文件片段必须如下所示。
      Environment=JRE_HOME=/usr/java/jre-vmware
      # Comment when enable FIPS
      # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'
      # Uncomment to enable FIPS
      Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*'
      Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
    2. 取消对 /opt/vmware/dr-client-plugin/conf/context.xml 文件中的 <Manager> 标记的注释。
      带有标记的文件片段必须如下所示。
      <!-- Uncomment to enable FIPS mode.          -->
      <Manager pathname="" secureRandomAlgorithm=""/>
    3. (可选) 如果已为设备启用 FIPS,请重新启动 dr-client-plugin 服务。
      systemctl daemon-reload; systemctl restart dr-client-plugin
  8. 以严格模式启动 REST API 服务 (dr-rest)。
    1. 编辑 /usr/lib/systemd/system/dr-rest.service。注释掉现有 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' 并取消对 # Uncomment 下的行的注释以启用 FIPS
      文件片段必须如下所示。
      Environment=JRE_HOME=/usr/java/jre-vmware
      # Comment when enable FIPS
      # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'
      # Uncomment to enable FIPS
      Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*'
      Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
      
    2. 取消对 /opt/vmware/dr-rest/conf/context.xml 文件中的 <Manager> 标记的注释。
      带有标记的文件片段必须如下所示。
      <!-- Uncomment to enable FIPS mode.          -->
      <Manager pathname="" secureRandomAlgorithm=""/>
    3. (可选) 如果已为设备启用 FIPS,请重新启动 dr-rest 服务。
      systemctl daemon-reload; systemctl restart dr-rest
  9. 重新引导设备。
    确保在修改后和重新引导设备之前至少执行一次 systemctl daemon-reload 命令。
    注: SSHD 将显示内核已启用 FIPS 模式,并也将激活该模式。无需在 sshd 配置中编辑任何内容。

下一步做什么

验证 FIPS 模式是否已激活。