En los sistemas Windows Server, el programa netsh ofrece métodos para gestionar 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. Utiliza estos enfoques como punto de partida para tu organización de redes más grande. Para obtener una explicación detallada de las prácticas de seguridad y la gestión de riesgos para MongoDB, consulta Seguridad.
Tip
Firewall de Windows documentación de Microsoft.
Overview
Windows Firewall procesa reglas en un orden determinado por el tipo de regla, y se analizan 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.
Dado que los puertos por defecto de todos los procesos de MongoDB, es necesario configurar reglas de red que permitan solo la comunicación requerida entre su aplicación y las instancias apropiadas de mongod.exe y mongos.exe.
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 el Windows Firewall usando la herramienta de línea de comandos netsh o a través de una aplicación de Windows. En Windows Server 2008, esta aplicación está Windows Firewall With Advanced Security en 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
Las instancias mongos.exe proporcionan enrutamiento de consultas para los clústeres fragmentados. Los clientes se conectan a instancias de mongos.exe, que se comportan desde la perspectiva del cliente como instancias de mongod.exe. A su vez, el mongos.exe se conecta a todas las instancias mongod.exe que son componentes del clúster particionado.
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 puedes ejecutar un servidor de configuración utilizando el valor configsvr para la configuración clusterRole en un archivo de configuración. |
Tráfico hacia y desde un servidor de partición de MongoDB
Para los servidores de particiones, ejecutándose como mongod --shardsvr [2] Debido a que el número de puerto por defecto es 27018 cuando se ejecuta con el valor shardsvr para la configuración clusterRole, se deben configurar las siguientes reglas Windows Firewall para permitir el tráfico hacia y desde cada partición:
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
mongod.exeinstancias en los conjuntos de réplicas de la partición.todas las instancias de
mongod.exeen otras particiones. [3]
Además, las particiones deben poder realizar conexiones salientes con:
todas las instancias de
mongos.exe.todas las instancias
mongod.exeen los servidores de configuración.
Crea una regla que sea similar a la siguiente y sustituye <ip-address> por la dirección de los servidores de configuración y las instancias 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] | También puede especificar la opción de servidor de partición con el valor shardsvr para la configuración clusterRole en el archivo de configuración. Los nodos de partición también suelen ser sets de réplicas convencionales que utilizan el puerto por defecto. |
| [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 supervisión
La mongostat herramienta de diagnóstico, cuando se ejecuta con la --discover necesita poder alcanzar todos los componentes de un clúster, incluidos los servidores de configuración, los servidores de particiones y las instancias de mongos.exe.
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 por defecto 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 regresar una lista de todas las reglas de Windows Firewall:
netsh advfirewall firewall show rule name=all
Restaurar el firewall de Windows
Para restablecer las reglas Windows Firewall:
netsh advfirewall reset
Reglas del cortafuegos de Windows para copia de seguridad y restauración
Para simplificar la administración de sistemas más grandes, puedes 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" Sustituya
"C:\temp\MongoDBfw.wfw"con la ruta al archivo que contiene sus reglas del Firewall de Windows.