Configurar netsh
firewall do Windows para sistemas autogerenciados
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 .
Visão geral
Windows Firewall processa regras em uma ordem determinada pelo tipo de regra e analisada na seguinte ordem:
Windows Service Hardening
Connection security rules
Authenticated Bypass Rules
Block Rules
Allow Rules
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, 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.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. |
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.