MongoDB - Bind_IP Quebrando alterações e conjunto de réplicas quebradas

1

Estou executando o Replica configurado em 3 Windows server 2012 R2 na minha VPN. Os servidores IPs são: 192.168.1.1,192.168.1.2,192.168.1.3.

Versão do MongoDB: 3.4.2 Quero limitar o acesso aos servidores do MongoDB apenas aos servidores que fazem parte do conjunto de réplicas, em cada servidor. Estou executando o MongoDB com esta configuração de bind_ip (digamos que estamos no servidor 192.168.1.1):

net:
    bindIp: [127.0.0.1,192.168.1.2,192.168.1.3]

Eu posso me conectar à minha réplica e a tudo funcionando como esperado.

Hoje atualizei meu servidor para o mongodb versão 3.4.10. Eu tenho dois problemas principais:

  1. bindIp aceita apenas strings CSV e não array, Então eu mudei a configuração para 127.0.0.1,192.168.1.2,192.168.1.3 (Breaking change)
  2. Meu servidor MongoDB não está disposto a iniciar, com o seguinte erro: [initandlisten] listen (): bind () failed O endereço solicitado não é válido em seu contexto. para o soquete: 192.168.1.3:27018 A única maneira de fazer a minha réplica voltar a funcionar, é mudar o bind_ip para 0.0.0.0 em todos os meus servidores, o que é um problema de segurança.

Então, minha pergunta é sobre a versão 3.4.10, como configurar o mongodb (e conjunto de réplicas) que o acesso está disponível somente a partir dos servidores participantes? Existe algum bug aqui?

    
por Shkolar 01.02.2018 / 15:58

1 resposta

1

O % valor de configuraçãonet.bindIp determina apenas quais endereços IP seu servidor MongoDB está escutando. Não não controla o acesso de IPs remotos - essa é a função de um firewall. Você precisará configurar o firewall em seus servidores para permitir a comunicação entre todos os membros de seu conjunto de réplicas, bem como seus aplicativos clientes.

Para um ponto de partida no Windows, consulte: Configurar o Windows netsh Firewall para o MongoDB .

(Let's say we are on 192.168.1.1 server):

net:
    bindIp: [127.0.0.1,192.168.1.2,192.168.1.3]

Dada a sua descrição, o valor correto de bindIp a ser usado por este servidor para ouvir tanto o host local quanto o IP privado de 192.168.1.1 seria 127.0.0.1,192.168.1.1 . Você não pode ligar a endereços IP que não estão associados a interfaces de rede no servidor local, e é por isso que você obtém o erro The requested address is not valid in its context ao tentar incluir IPs remotos.

Para obter mais informações sobre como proteger sua implantação, consulte Lista de verificação de segurança do MongoDB .

    
por 03.02.2018 / 22:56