Configurar MongoDB para FIPS
Nesta página
Visão geral
O Federal Information Processing Standard (FIPS) é um padrão de segurança de computadores do governo dos EUA usado para certificar módulos de software e bibliotecas que criptografam e descriptografam dados com segurança. Você pode configurar o MongoDB para ser executado com uma biblioteca certificada FIPS 140-2 para OpenSSL. Configure o FIPS para ser executado por padrão ou conforme necessário na linha de comando.
Uma descrição completa de FIPS e TLS/SSL está além do escopo deste documento. Este tutorial pressupõe conhecimento prévio de FIPS e TLS/SSL.
Importante
MongoDB e FIPS
O FIPS é uma propriedade do sistema de criptografia e não do sistema de controle de acesso. No entanto, se seu ambiente exigir criptografia e controle de acesso compatíveis com FIPS, você deverá garantir que o sistema de controle de acesso use apenas criptografia compatível com FIPS.
O suporte a FIPS do MongoDB abrange a maneira como o MongoDB usa bibliotecas SSL/TLS para criptografia de rede, autenticação SCRAM e autenticação x.509. Se você usar Kerberos ou autenticação LDAP, deverá garantir que esses mecanismos externos estejam em conformidade com FIP.
Observação
O MongoDB desabilita o suporte para criptografia TLS 1.0 em sistemas em que o TLS 1.1+ está disponível.
Suporte a plataformas
O modo FIPS está disponível apenas com a edição MongoDB Enterprise . Consulte Instalar o MongoDB Enterprise para baixar e instalar o MongoDB Enterprise.
O modo FIPS é compatível com as seguintes plataformas:
Plataforma | Biblioteca TLS/SSL |
---|---|
Linux | OpenSSL |
Windows | Canal seguro (SChannel) |
macOS | Secure Transport |
Suporte a OpenSSL3
A partir do MongoDB 6.0.7, O modo FIPS é compatível com OpenSSL3 para os seguintes sistemas operacionais:
Ubuntu 22.04
RHEL 9
Amazon Linux 2023
A partir do MongoDB 8.0, o modo FIPS é compatível com OpenSSL3 para Amazon Linux 2023.3.
Configurando FIPS
Selecione a guia abaixo para sua plataforma:
Pré-requisitos
Seu sistema Linux deve ter uma biblioteca OpenSSL configurada com o módulo FIPS 140-2 para suportar o modo FIPS para MongoDB.
Para verificar se seu software OpenSSL oferece suporte FIPS, execute o comando abaixo:
openssl version Para o Red Hat Enterprise Linux 6.x (RHEL 6.x) ou seus derivados, como CentOS 6.x, o toolkit OpenSSL deve ter pelo menos a versão
openssl-1.0.1e-16.el6_5
para usar o modo FIPS. Para atualizar a biblioteca OpenSSL nessas plataformas, execute o seguinte comando:sudo yum update openssl Algumas versões do Linux executam periodicamente um processo para vincular bibliotecas dinâmicas com endereços pré-atribuídos. Este processo modifica as bibliotecas OpenSSL, especificamente
libcrypto
. Posteriormente, o modo FIPS do OpenSSL falhará na verificação de assinatura realizada durante a inicialização para garantir quelibcrypto
não foi modificado desde a compilação.Para configurar o processo de prelink do Linux para não pré-vincular
libcrypto
, execute o seguinte comando:sudo bash -c "echo '-b /usr/lib64/libcrypto.so.*' >>/etc/prelink.conf.d/openssl-prelink.conf"
Depois de configurar o sistema Linux para oferecer suporte à operação compatível com FIPS, siga as etapas abaixo para configurar a instância mongod
ou mongos
para operar no modo FIPS.
Procedimento
A. Configurar MongoDB para usar TLS/SSL
Consulte Configurar mongod
e mongos
para TLS/SSL para mais informações sobre como configurar seu sistema para usar TLS/SSL. Certifique-se de que seu certificado seja compatível com FIPS.
B. Executar a instância do MongoDB no modo FIPS
Execute estas etapas após Configurar mongod
e mongos
para TLS/SSL.
Altere o arquivo de configuração.
Para configurar sua instância mongod
ou mongos
para usar o modo FIPS, desligue a instância e atualize o arquivo de configuração com a configuração net.tls.FIPSMode
:
net: tls: FIPSMode: true
Inicie a mongod
instância ou com o mongos
arquivo de configuração.
Por exemplo, execute este comando para iniciar a instância do mongod
com seu arquivo de configuração:
mongod --config /etc/mongod.conf
C. Confirme se o modo FIPS está em execução
Veja no arquivo de log do servidor se existe uma mensagem informando que o FIPS está ativo:
FIPS 140-2 mode activated
Pré-requisitos
A Microsoft fornece o seguinte recurso para configurar o modo FIPS para o Windows 10 e Windows Server 2016 ou posterior:
➤ Validação FIPS - 1402 no Windows
Depois de configurar o sistema Windows para oferecer suporte à operação compatível com FIPS, siga as etapas abaixo para configurar a instância mongod
ou mongos
para operar no modo FIPS.
Procedimento
A. Configurar MongoDB para usar TLS/SSL
Consulte Configurar mongod
e mongos
para TLS/SSL para mais informações sobre como configurar seu sistema para usar TLS/SSL. Certifique-se de que seu certificado seja compatível com FIPS.
B. Executar a instância do MongoDB no modo FIPS
Execute estas etapas após Configurar mongod
e mongos
para TLS/SSL.
Altere o arquivo de configuração.
Para configurar sua instância mongod
ou mongos
para usar o modo FIPS, desligue a instância e atualize o arquivo de configuração com a configuração net.tls.FIPSMode
:
net: tls: FIPSMode: true
Inicie a mongod
instância ou com o mongos
arquivo de configuração.
Por exemplo, execute este comando para iniciar a instância do mongod
com seu arquivo de configuração:
mongod.exe --config /etc/mongod.conf
C. Confirme se o modo FIPS está em execução
Veja no arquivo de log do servidor se existe uma mensagem informando que o FIPS está ativo:
FIPS 140-2 mode activated
Pré-requisitos
As versões suportadas do macOS são compatíveis com FIPS por padrão. Consulte a documentação da sua versão do macOS para verificar o status de conformidade. Por exemplo, a Apple fornece o seguinte recurso para macOS 10.14:
➤ Módulos criptográficos FIPS da Apple para 10.14
Em versões compatíveis do macOS, siga as etapas abaixo para configurar sua instância mongod
ou mongos
para operar no modo FIPS.
Procedimento
A. Configurar MongoDB para usar TLS/SSL
Consulte Configurar mongod
e mongos
para TLS/SSL para mais informações sobre como configurar seu sistema para usar TLS/SSL. Certifique-se de que seu certificado seja compatível com FIPS.
B. Executar a instância do MongoDB no modo FIPS
Execute estas etapas após Configurar mongod
e mongos
para TLS/SSL.
Altere o arquivo de configuração.
Para configurar sua instância mongod
ou mongos
para usar o modo FIPS, desligue a instância e atualize o arquivo de configuração com a configuração net.tls.FIPSMode
:
net: tls: FIPSMode: true
Inicie a mongod
instância ou com o mongos
arquivo de configuração.
Por exemplo, execute este comando para iniciar a instância do mongod
com seu arquivo de configuração:
mongod --config /etc/mongod.conf
C. Confirme se o modo FIPS está em execução
Veja no arquivo de log do servidor se existe uma mensagem informando que o FIPS está ativo:
FIPS 140-2 mode activated
Considerações adicionais
Modo SCRAM SHA e FIPS
A partir do MongoDB 5.1, as instâncias em execução no modo FIPS têm o mecanismo de autenticação SCRAM-SHA-1 desabilitado por padrão. Você pode habilitar o mecanismo de autenticação SCRAM-SHA-1 com o setParameter.authenticationMechanisms comando.
Essa alteração não afetará os drives que têm como alvo o MongoDB setFeatureCompatibilityVersion
4,0+.
Se você usar SCRAM-SHA-1:
md5 é necessário, mas não é usado para fins criptográficos, e
se você usar o modo FIPS, em vez de SCRAM-SHA-1 use:
Ferramentas de banco de dados e modo FIPS
Os seguintes programas não suportam mais a opção --sslFIPSMode
:
mongod
, mongos
e modo FIPS
Se você configurar o mongod
e o mongos
para utilizar o modo FIPS, o mongod
e o mongos
utilizarão conexões compatíveis com FIPS.
Modo Shell e FIPS do MongoDB
A distribuição mongosh
padrão:
Contém OpenSSL 3.
Utiliza conexões compatíveis com FIPS para
mongod
emongos
se você configurar omongod
emongos
para utilizar o modo FIPS.
O MongoDB também fornece uma distribuição do MongoDB Shell que pode usar:
OpenSSL 1.1 e OpenSSL 3 instalados no seu servidor.
--tlsFIPSMode
opção, que ativa o modo FIPSmongosh
.
Dica
Veja também:
Para baixar as distribuições do MongoDB Shell que contêm OpenSSL 1.1 e OpenSSL 3, Go a Central de Download doMongoDB .