Nos sistemas Windows Server, o programa netsh fornece métodos para gerenciar o Windows Firewall. Essas regras de firewall permitem que os administradores controlem quais hosts podem se conectar ao sistema e limitem a exposição ao risco, limitando os hosts que podem se conectar a um sistema.
Este documento descreve as configurações básicas do Windows Firewall . Use essas abordagens como ponto de ponto para sua organização de rede maior. Para obter uma visão geral detalhada das práticas de segurança e do gerenciamento de riscos do MongoDB, consulteSegurança do .
Dica
Documentação doFirewall do Windows da Microsoft.
Visão geral
Windows Firewall processa regras em uma ordem determinada pelo tipo de regra e analisada na seguinte ordem:
Windows Service HardeningConnection security rulesAuthenticated Bypass RulesBlock RulesAllow RulesDefault Rules
Por padrão, a política no Windows Firewall permite todas as conexões de saída e bloqueia todas as conexões de entrada.
Dadas as portas padrão de todos os processos MongoDB, você deve configurar as regras de rede que permitem somente comunicação exigida entre seu aplicativo e as instâncias apropriadas do mongod.exe e mongos.exe.
As alterações de configurações descritas neste documento criarão regras que permitem explicitamente o tráfego de endereços específicos e em portas específicas, utilizando uma política padrão que descarta todo o tráfego que não é explicitamente permitido.
Você pode configurar o Windows Firewall utilizando a ferramenta de linha de comando netsh ou por um aplicativo Windows. No Windows Server 2008, este aplicativo é Windows Firewall With Advanced Security no Administrative Tools. Em versões anteriores do Windows Server, acesse o aplicativo Windows Firewall no painel de controle do System and Security.
Os procedimentos neste documento utilizam a ferramenta de linha de comando netsh.
Padrões
Esta seção contém vários padrões e exemplos para configurar o Windows Firewall para utilizar com sistemas do MongoDB. Se você tiver configurado portas diferentes usando a definição de configuração port, precisará modificar as regras de acordo.
Tráfego de e para mongod.exe Instâncias
Este padrão é aplicável a todas as instâncias do mongod.exe executando como instâncias independentes ou como parte de um conjunto de réplicas. O objetivo desse padrão é permitir explicitamente o tráfego para a instância mongod.exe a partir do servidor de aplicativos.
netsh advfirewall firewall add rule name="Open mongod port 27017" dir=in action=allow protocol=TCP localport=27017
Esta regra permite que todo o tráfego de entrada seja direcionado à porta 27017, o que permite que o servidor de aplicativos se conecte à instância mongod.exe .
Windows Firewall também permite habilitar o acesso à rede de um aplicativo inteiro em vez de uma porta específica, como no exemplo a seguir:
netsh advfirewall firewall add rule name="Allowing mongod" dir=in action=allow program=" C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe"
Você pode permitir todo o acesso para um servidor do mongos.exe, com a seguinte invocação:
netsh advfirewall firewall add rule name="Allowing mongos" dir=in action=allow program=" C:\Program Files\MongoDB\Server\3.4\bin\mongos.exe"
Tráfego de e para mongos.exe Instâncias
As instâncias mongos.exe fornecem roteamento de queries para clusters fragmentados. Os clientes se conectam a instâncias mongos.exe, que se comportam, do ponto de vista do cliente, como instâncias mongod.exe. Por sua vez, o mongos.exe conecta a todas as instâncias do mongod.exe que são componentes do cluster fragmentado.
Utilize o mesmo comando Windows Firewall para permitir o tráfego para e a partir destas instâncias como você faria a partir das instâncias do mongod.exe que são membros do conjunto de réplicas.
netsh advfirewall firewall add rule name="Open mongod shard port 27018" dir=in action=allow protocol=TCP localport=27018
Tráfego de e para um servidor de configuração MongoDB
Servidores de configuração, hospede o banco de dados de configuração que armazena metadados para clusters fragmentados. Cada cluster de produção tem três servidores de configuração, iniciados com a opção mongod --configsvr. [1] Os servidores de configuração escutam conexões na porta 27019. Como resultado, adicione as seguintes regras Windows Firewall ao servidor de configuração para permitir a conexão de entrada e saída na porta 27019, para conexão com os outros servidores de configuração.
netsh advfirewall firewall add rule name="Open mongod config svr port 27019" dir=in action=allow protocol=TCP localport=27019
Adicionalmente, os servidores de configuração precisam permitir conexões de entrada de todas as instâncias do mongos.exe no cluster e todas as instâncias do mongod.exe no cluster. Adicione regras semelhantes às seguintes:
netsh advfirewall firewall add rule name="Open mongod config svr inbound" dir=in action=allow protocol=TCP remoteip=<ip-address> localport=27019
Substitua <ip-address> pelos endereços das instâncias mongos.exe e das instâncias do fragmento mongod.exe.
| [1] | Você também pode executar um servidor de configuração usando o valor da configsvr para a configuração clusterRole em um arquivo de configuração. |
Tráfego de e para um servidor de shard da MongoDB
Para servidores shard, executando como mongod --shardsvr [2] Como o número da porta padrão é 27018 ao ser executado com o valor shardsvr para a configuração clusterRole, você deve configurar as seguintes regras de Windows Firewall para permitir o tráfego de e para cada shard:
netsh advfirewall firewall add rule name="Open mongod shardsvr inbound" dir=in action=allow protocol=TCP remoteip=<ip-address> localport=27018 netsh advfirewall firewall add rule name="Open mongod shardsvr outbound" dir=out action=allow protocol=TCP remoteip=<ip-address> localport=27018
Substitua a especificação <ip-address> pelo endereço IP de todas as instâncias do mongod.exe. Isso permite que você permita o tráfego de entrada e saída entre todos os fragmentos, incluindo os membros constituintes do conjunto de réplicas, para:
todas as
mongod.exeinstâncias nos conjuntos de réplicas do fragmento.todas as instâncias de
mongod.exeem outros shards. [3]
Além disso, os fragmentos precisam ser capazes de fazer conexões de saída para:
todas as instâncias do
mongos.exe.todas as
mongod.exeinstâncias nos servidores de configuração.
Crie uma regra que se assemelha ao seguinte e substitua o <ip-address> pelo endereço dos servidores de configuração e as instâncias do mongos.exe :
netsh advfirewall firewall add rule name="Open mongod config svr outbound" dir=out action=allow protocol=TCP remoteip=<ip-address> localport=27018
| [2] | Você também pode especificar a opção de servidor de shard com o valor shardsvr para a configuração clusterRole no arquivo de configuração. Os membros do shard também costumam ser conjuntos de réplicas convencionais que usam a porta padrão. |
| [3] | Todos os fragmentos em um cluster precisam ser capazes de se comunicar com todos os outros fragmentos para facilitar o chunk e equilibrar as operações. |
Fornece acesso para sistemas de monitoramento
A ferramenta de diagnóstico mongostat, quando executada com o --discover, precisa acessar todos os componentes de um cluster, inclusive os servidores de configuração, os servidores de fragmentos e as instâncias mongos.exe.
Gerencie configurações do firewall do Windows
Esta seção contém uma série de operações básicas para gerenciar e utilizar o netsh. Embora você possa usar os front-ends da GUI para gerenciar o Windows Firewall, todas as funcionalidades principais podem ser acessadas em netsh.
Excluir regras de firewall do Windows para as portas padrão do MongoDB
Para excluir a regra de firewall permitindo o tráfego do mongod.exe:
netsh advfirewall firewall delete rule name="Open mongod port 27017" protocol=tcp localport=27017 netsh advfirewall firewall delete rule name="Open mongod shard port 27018" protocol=tcp localport=27018
Listar todas as regras do firewall do Windows
Para retornar uma lista de todas as Windows Firewall regras:
netsh advfirewall firewall show rule name=all
Redefinir firewall do Windows
Para redefinir as regras do Windows Firewall:
netsh advfirewall reset
Backup e restauração das regras do firewall do Windows
Para simplificar a administração de sistemas maiores, você pode exportar ou importar as regras do firewall do Windows.
Para exportar todas as regras do firewall do Windows, execute o seguinte comando:
netsh advfirewall export "C:\temp\MongoDBfw.wfw" Substitua
"C:\temp\MongoDBfw.wfw"por um caminho de sua preferência.Para importar as regras do firewall do Windows, execute o seguinte comando:
netsh advfirewall import "C:\temp\MongoDBfw.wfw" Substitua
"C:\temp\MongoDBfw.wfw"pelo caminho para o arquivo que contém suas regras do firewall do Windows.