Menu Docs

Configurar o Windows netsh Firewall para implantações autogerenciadas

Em 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 partida 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, consulte Segurança.

Dica

Veja também:

Documentação do Windows Firewall da Microsoft.

Windows Firewall processa regras em uma ordem determinada pelo tipo de regra e analisada na seguinte ordem:

  1. Windows Service Hardening

  2. Connection security rules

  3. Authenticated Bypass Rules

  4. Block Rules

  5. Allow Rules

  6. Default 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, esse aplicativo está Windows Firewall With Advanced Security em 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.

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.

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"

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

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.

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.exe instâncias nos conjuntos de réplicas do fragmento.

  • todas as instâncias de mongod.exe em 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.exe instâ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.

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.

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.

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

Para retornar uma lista de todas as Windows Firewall regras:

netsh advfirewall firewall show rule name=all

Para redefinir as regras do Windows Firewall:

netsh advfirewall reset

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.