En los sistemas Windows Server, el programa netsh proporciona métodos para administrar el Windows FirewallEstas reglas de firewall permiten a los administradores controlar qué hosts pueden conectarse al sistema y limitar la exposición al riesgo al limitar los hosts que pueden conectarse a un sistema.
Este documento describe las configuraciones básicas de Windows Firewall. Utilice estos enfoques como punto de partida para su organización de redes más amplia. Para obtener una descripción detallada de las prácticas de seguridad y la gestión de riesgos de MongoDB, consulte Seguridad.
Tip
Firewall de Windows documentación de Microsoft.
Overview
Windows Firewall procesa las reglas en un orden determinado por el tipo de regla y las analiza en el siguiente orden:
Windows Service HardeningConnection security rulesAuthenticated Bypass RulesBlock RulesAllow RulesDefault Rules
De forma predeterminada, la política en Windows Firewall permite todas las conexiones salientes y bloquea todas las conexiones entrantes.
Dados los puertos predeterminados de todos los procesos de MongoDB, debe configurar reglas de red que permitan solo la comunicación requerida entre su aplicación y las instancias mongod.exe y mongos.exe apropiadas.
Los cambios de configuración mencionados en este documento crearán reglas que permiten explícitamente el tráfico desde direcciones específicas y en puertos específicos, usando una política por defecto que descarta todo el tráfico que no esté permitido explícitamente.
Puede configurar Windows Firewall mediante la herramienta de línea de comandos netsh o una aplicación de Windows. En Windows Server 2008, esta aplicación está en Windows Firewall With Advanced Security, dentro de Administrative Tools. En versiones anteriores de Windows Server, acceda a la aplicación Windows Firewall en el panel de control System and Security.
Los procedimientos de este documento utilizan la herramienta de línea de comandos netsh.
Patrones
Esta sección contiene varios patrones y ejemplos para configurar Windows Firewall en despliegues de MongoDB. Si ha configurado diferentes puertos utilizando la configuración port, deberá modificar las reglas en consecuencia.
Tráfico hacia y desde mongod.exe instancias
Este patrón se aplica a todas las instancias que se ejecutan como instancias mongod.exe independientes o como parte de un conjunto de réplicas. El objetivo de este patrón es permitir explícitamente el tráfico a la instancia desde el servidor de mongod.exe aplicaciones.
netsh advfirewall firewall add rule name="Open mongod port 27017" dir=in action=allow protocol=TCP localport=27017
Esta regla permite todo el tráfico entrante al puerto 27017, lo que permite que el servidor de la aplicación se conecte a la instancia mongod.exe.
Windows Firewall También permite habilitar el acceso a la red para toda una aplicación en lugar de a un puerto específico, como en el siguiente ejemplo:
netsh advfirewall firewall add rule name="Allowing mongod" dir=in action=allow program=" C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe"
Puedes permitir todo el acceso para un mongos.exe servidor, con la siguiente invocación:
netsh advfirewall firewall add rule name="Allowing mongos" dir=in action=allow program=" C:\Program Files\MongoDB\Server\3.4\bin\mongos.exe"
Tráfico hacia y desde mongos.exe instancias
mongos.exe Las instancias proporcionan enrutamiento de consultas para clústeres fragmentados. Los clientes se conectan a las mongos.exe instancias, que se comportan como desde la perspectiva del cliente. A su vez, la instancia mongod.exe se mongos.exe conecta a las mongod.exe instancias que componen el clúster fragmentado.
Utilice el mismo comando Windows Firewall para permitir el tráfico hacia y desde estas instancias como lo haría desde las instancias del mongod.exe que son miembros del set de réplicas.
netsh advfirewall firewall add rule name="Open mongod shard port 27018" dir=in action=allow protocol=TCP localport=27018
Tráfico hacia y desde un servidor de configuración de MongoDB
Los servidores de configuración alojan la base de datos de configuración que almacena los metadatos de los clústeres fragmentados. Cada clúster de producción tiene tres servidores de configuración, que se inician con la mongod --configsvr opción. []1 Los servidores de configuración escuchan las conexiones en el 27019 puerto. Por lo tanto, agregue las siguientes Windows Firewall reglas al servidor de configuración para permitir las conexiones entrantes y salientes en el puerto 27019 para la conexión con los demás servidores de configuración.
netsh advfirewall firewall add rule name="Open mongod config svr port 27019" dir=in action=allow protocol=TCP localport=27019
Además, los servidores de configuración deben permitir conexiones entrantes desde todas las instancias mongos.exe en el clúster y todas las instancias mongod.exe en el clúster. Agrega reglas que se parezcan a las siguientes:
netsh advfirewall firewall add rule name="Open mongod config svr inbound" dir=in action=allow protocol=TCP remoteip=<ip-address> localport=27019
Reemplaza <ip-address> por las direcciones de las instancias mongos.exe y las instancias mongod.exe de la partición.
| [1] | También puede ejecutar un servidor de configuración utilizando el configsvr valor para la clusterRole configuración en un archivo de configuración. |
Tráfico hacia y desde un servidor de fragmentos de MongoDB
Para servidores de fragmentos que se ejecutan como mongod --shardsvr []2 Debido a que el número de puerto predeterminado es 27018 cuando se ejecuta con el shardsvr valor para la configuración, debe configurar las clusterRole siguientes Windows Firewall reglas para permitir el tráfico hacia y desde cada fragmento:
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
Reemplace la <ip-address> especificación con la dirección IP de todas las mongod.exe instancias. Esto le permite permitir el tráfico entrante y saliente entre todos los fragmentos, incluidos los miembros del conjunto de réplicas que lo constituyen, para:
todas las instancias en los conjuntos de réplicas del
mongod.exefragmento.todas las instancias de
mongod.exeen otras particiones. [3]
Además, los fragmentos deben poder realizar conexiones salientes a:
todas las
mongos.exeinstancias.todas las instancias en los servidores de
mongod.execonfiguración.
Cree una regla que se parezca a la siguiente y reemplace <ip-address> con la dirección de los servidores de configuración y las mongos.exe instancias:
netsh advfirewall firewall add rule name="Open mongod config svr outbound" dir=out action=allow protocol=TCP remoteip=<ip-address> localport=27018
| [2] | También puede especificar la opción de servidor de fragmentos con el shardsvr valor para la clusterRole configuración en el archivo de configuración. Los miembros de fragmentos también suelen ser conjuntos de réplicas convencionales que utilizan el puerto predeterminado. |
| [3] | Todas las particiones en un clúster deben poder comunicarse con todas las demás particiones para facilitar las operaciones de fragmento y balanceo. |
Proporcionar acceso a los sistemas de monitoreo
La mongostat herramienta de diagnóstico, cuando se ejecuta con,--discover debe mongos.exe poder llegar a todos los componentes de un clúster, incluidos los servidores de configuración, los servidores de fragmentos y las instancias.
Administrar configuraciones de Firewall de Windows
Esta sección contiene una serie de operaciones básicas para gestionar y utilizar netsh. Aunque puedes usar la interfaz gráfica de usuario para gestionar el Windows Firewall, toda la funcionalidad principal está accesible desde netsh.
Eliminar las reglas del Firewall de Windows para los puertos predeterminados de MongoDB
Para eliminar la regla de firewall que permite el mongod.exe tráfico:
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 las reglas del Firewall de Windows
Para devolver una lista de todas las reglas Windows Firewall:
netsh advfirewall firewall show rule name=all
Restablecer el Firewall de Windows
Para restablecer las reglas Windows Firewall:
netsh advfirewall reset
Copia de seguridad y restauración de las reglas del firewall de Windows
Para simplificar la administración de sistemas más grandes, puede exportar o importar reglas de Firewall de Windows.
Para exportar todas las reglas del Firewall de Windows, ejecute el siguiente comando:
netsh advfirewall export "C:\temp\MongoDBfw.wfw" Reemplace
"C:\temp\MongoDBfw.wfw"con una ruta de su elección.Para importar reglas de Firewall de Windows, ejecute el siguiente comando:
netsh advfirewall import "C:\temp\MongoDBfw.wfw" Reemplace
"C:\temp\MongoDBfw.wfw"con la ruta al archivo que contiene las reglas de Firewall de Windows.