MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Dicas para gerenciar o MongoDB remotamente

Trabalhar remotamente devido à pandemia de Covid-19 significa um aumento da importância das infraestruturas isoladas; mais especificamente aqueles que só podem ser acessados ​​através de uma rede interna, mas de forma que pessoas autorizadas do mundo externo possam acessar o sistema a qualquer hora ou em qualquer lugar.

Neste artigo, compartilharemos algumas etapas básicas que você deve implementar com o MongoDB para garantir acesso seguro ao administrar o banco de dados.

Protegendo o MongoDB

Antes de acessar o banco de dados MongoDB remotamente, você deve realizar um “hardening” do ambiente. Defina o seguinte no lado da infraestrutura:

Ativar autenticação MongoDB 

Este recurso é obrigatório para habilitar, independentemente se queremos acessar o banco de dados MongoDB da rede interna ou de uma rede externa. Antes de habilitar a autorização, você deve primeiro criar um usuário administrador no MongoDB. Você pode executar o comando abaixo para criar um usuário admin em seu servidor mongoDB:

$ mongo

> use admin

> db.createUser(

      {

          user: "admin",

          pwd: "youdontknowmyp4ssw0rd",

          roles: [ "root" ]

      }

  );

O comando acima criará um novo usuário chamado admin com privilégios de root. Você pode habilitar o recurso MongoDB Auth abrindo o arquivo /etc/mongod.conf e adicionando a seguinte linha:

  security:

   authorization: 'enabled'

Não se esqueça de reiniciar o serviço mongoDB para aplicar as alterações. O comando acima restringirá o acesso ao banco de dados, apenas aquele que tiver credenciais de acesso elegível para fazer login.

Configurar funções e privilégios

Para evitar o uso indevido do acesso ao MongoDB, podemos implementar o acesso baseado em função criando várias funções e seus privilégios.

Certifique-se de ter uma lista de usuários que precisam acessar o banco de dados e entender as necessidades e responsabilidades de cada indivíduo. Crie funções e atribua os privilégios a essas funções criadas. Depois disso, você pode atribuir ao usuário uma função com base nas responsabilidades.

Essa abordagem nos ajuda a minimizar o abuso de autoridade e identificar a função e o usuário imediatamente quando algo indesejado acontece.

Configurar uma conexão SSL/TLS

MongoDB suporta conexões SSL/TLS para proteger dados em trânsito. Para implementar isso, você precisa gerar sua própria chave SSL, você pode gerá-la usando openssl. Para habilitar o suporte SSL/TLS, você pode editar o arquivo /etc/mongod.conf e adicionar o seguinte parâmetro:

  net:

      tls:

         mode: requireTLS

         certificateKeyFile: /etc/mongo/ssl/mongodb.pem

Após adicionar esses parâmetros, você precisa reiniciar o serviço MongoDB. Se você tiver a arquitetura de replicaset MongoDB, precisará aplicá-los em cada nó. O SSL também é necessário quando o cliente acessar o MongoDB, seja do lado do aplicativo ou diretamente do cliente.

Para uso em produção, você deve usar certificados válidos gerados e assinados por uma única autoridade de certificação. Você ou sua organização podem gerar e manter certificados como uma autoridade de certificação independente ou usar certificados gerados por fornecedores de TLS/SSL de terceiros. Evite usar um certificado autoassinado, a menos que seja uma rede confiável.

Restringir a porta do banco de dados

Você deve certificar-se de que apenas a porta MongoDB esteja aberta no servidor de firewall ou dispositivo de firewall, certifique-se de que nenhuma outra porta esteja aberta.

Protegendo a conexão MongoDB

A conexão remota via internet pública apresenta o risco de transmissão de dados de usuários locais para o servidor de banco de dados e vice-versa. Os invasores podem interromper a interconexão, que neste caso é conhecida como ataque MITM (Min-in-The-Middle). Proteger a conexão é muito necessário quando gerenciamos/administramos o banco de dados remotamente, algumas coisas que podemos aplicar para proteger nosso acesso ao banco de dados são as seguintes:

Acesso à rede privada

VPN (Virtual Private Network) é uma das coisas fundamentais quando queremos acessar nossa infraestrutura de fora com segurança. VPN é uma rede privada que usa redes públicas para acessar os sites remotos. A configuração da VPN requer hardware que deve ser preparado no lado da rede privada, além disso o cliente também precisa de um software VPN que suporte o acesso à rede privada.

Além de usar VPN, outra forma de acessar o servidor MongoDB é por porta de banco de dados de encaminhamento via SSH, ou mais conhecido como SSH Tunneling.

Use SSL/TLS do cliente para o servidor de banco de dados

Além de implementar o acesso seguro usando VPN ou SSH Tunneling, podemos usar SSL/TLS que foi configurado anteriormente no lado do MongoDB. Você só precisa da chave SSL que possui e tente se conectar ao banco de dados usando a chave SSL.

Ativar monitoramento de banco de dados

É essencial habilitar o serviço de monitoramento para entender o estado atual dos bancos de dados. O servidor de monitoramento pode ser instalado sob domínio público que tenha SSL/TLS habilitado, portanto, o acesso automático ao navegador pode usar HTTPs.

Conclusão

É muito divertido trabalhar em casa, você pode interagir com seus filhos e ao mesmo tempo monitorar seu banco de dados. Você deve seguir as diretrizes acima para garantir que não seja atacado ou tenha dados roubados ao acessar seu banco de dados remotamente.