Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

自己管理型配置用のWindowsnetsh ファイアウォールの構成

項目一覧

  • Overview
  • パターン
  • Windows ファイアウォール構成の管理

Windows Server システムでは、 netshプログラムは Windows Firewallを管理するためのメソッドを提供します。 これらのファイアウォール ルールにより、管理者はシステムに接続できるホストを制御し、システムに接続できるホストを制限することでリスク露出を制限できます。

このドキュメントでは、 Windows Firewallの基本的な構成について説明します。 これらのアプローチを、大規模なネットワーク組織の開始点として使用してください。 MongoDB のセキュリティ プラクティスとリスク マネジメントの詳細については、「 セキュリティ 」を参照してください。

Tip

以下も参照してください。

Windows ファイアウォール Microsoft のドキュメント。

Windows Firewall は、ルールタイプによって決定された順序でルールを処理し、次の順序で解析されます。

  1. Windows Service Hardening

  2. Connection security rules

  3. Authenticated Bypass Rules

  4. Block Rules

  5. Allow Rules

  6. Default Rules

デフォルトでは、 Windows Firewallのポリシーはすべてのアウトバウンド接続を許可し、すべての着信接続をブロックします。

すべての MongoDB プロセスの デフォルト ポート を考慮すると、アプリケーションと適切な およびmongod.exe インスタンスとの間の必要な通信mongos.exe のみ を許可するネットワーク ルールを構成する必要があります。

このドキュメントで説明されている設定の変更により、明示的に許可されていないすべてのトラフィックをドロップするデフォルトのポリシーを使用して、特定のアドレスと特定のポートからのトラフィックを明示的に許可するルールが作成されます。

netshコマンドライン ツールを使用するか、Windows アプリケーションを通じてWindows Firewallを構成できます。 Windows Server 2008 では、このアプリケーションはWindows Firewall With Advanced Security 内のAdministrative Tools です。以前のバージョンの Windows Server では、 System and Securityコントロール パネルからWindows Firewallアプリケーションにアクセスします。

このドキュメントの手順では、 netshコマンドライン ツールを使用します。

このセクションでは、MongoDB の配置で使用するためにWindows Firewallを構成するための多くのパターンと例を紹介します。 port構成設定を使用して別のポートを構成した場合は、それに応じてルールを変更する必要があります。

このパターンは、mongod.exe スタンドアロン インスタンス として、または レプリカセット の一部として実行されているすべての インスタンスに適用されます。このパターンの目的は、アプリケーション サーバーからmongod.exeインスタンスへのトラフィックを明示的に許可することです。

netsh advfirewall firewall add rule name="Open mongod port 27017" dir=in action=allow protocol=TCP localport=27017

このルールにより、すべての受信トラフィックは27017へのポートに許可されます。これにより、アプリケーション サーバーはmongod.exeインスタンスに接続できるようになります。

Windows Firewall では、次の例のように、特定のポートではなくアプリケーション全体に対してネットワーク アクセスを有効にすることもできます。

netsh advfirewall firewall add rule name="Allowing mongod" dir=in action=allow program=" C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe"

次の呼び出しで、 mongos.exeサーバーのすべてのアクセスを許可できます。

netsh advfirewall firewall add rule name="Allowing mongos" dir=in action=allow program=" C:\Program Files\MongoDB\Server\3.4\bin\mongos.exe"

mongos.exeインスタンスは、 シャーディングされたクラスターのクエリ ルーティングを提供します。 クライアントはmongos.exeインスタンスに接続します。これはクライアントの観点から見るとmongod.exeインスタンスとして動作します。 次に、 mongos.exeは、シャーディングされたクラスターのコンポーネントであるすべてのmongod.exeインスタンスに接続します。

これらのインスタンスとの間で、レプリカセットのノードであるmongod.exeインスタンスとの間でトラフィックを許可するには、同じWindows Firewallコマンドを使用します。

netsh advfirewall firewall add rule name="Open mongod shard port 27018" dir=in action=allow protocol=TCP localport=27018

コンフィギュレーションサーバーは、シャーディングされたクラスターのメタデータを保存する コンフィギュレーションデータベースをホストします。 各本番クラスターには、 mongod --configsvrオプションを使用して開始された 3 つの構成サーバーがあります。 [1]構成サーバーはポート27019上の接続をリッスンします。 その結果、次のWindows Firewallルールをコンフィギュレーションサーバーに追加して、他のコンフィギュレーションサーバーへの接続用にポート27019での受信接続と送信接続を許可します。

netsh advfirewall firewall add rule name="Open mongod config svr port 27019" dir=in action=allow protocol=TCP localport=27019

さらに、コンフィギュレーションサーバーは、クラスター内のすべてのmongos.exeインスタンスとクラスター内すべてのmongod.exeインスタンスからの着信接続を許可する必要があります。 次のようなルールを追加します。

netsh advfirewall firewall add rule name="Open mongod config svr inbound" dir=in action=allow protocol=TCP remoteip=<ip-address> localport=27019

<ip-address>を、 mongos.exeインスタンスとシャードmongod.exeインスタンスのアドレスに置き換えます。

[1] また、構成ファイルのclusterRole設定にconfigsvr値を使用してコンフィギュレーションサーバーを実行することもできます。

シャード サーバーの場合、 mongod --shardsvr [2]設定のclusterRole shardsvr Windows Firewallで実行中のデフォルトのポート番号は27018であるため、トラフィックが と各シャードからの場合

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

<ip-address>仕様をすべてのmongod.exeインスタンスの IP アドレスに置き換えます。 これにより、構成レプリカセット ノードを含むすべてのシャード間の受信および送信トラフィックを許可し、

  • シャードのレプリカセット内のすべてのmongod.exeインスタンス。

  • 他のシャード内のすべてのmongod.exeインスタンス。 [3]

さらに、シャードは次の送信接続を行える必要があります。

  • すべてのmongos.exeインスタンス。

  • : コンフィギュレーションサーバー内のすべてのmongod.exeインスタンス。

次のようなルールを作成し、 <ip-address>をコンフィギュレーションサーバーと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] 構成ファイルで、 clusterRole設定にshardsvr値を使用してシャードサーバー オプションを指定することもできます。 シャード ノードは、多くの場合、デフォルト ポートを使用する従来のレプリカセットでもあります。
[3] チャンク操作とバランシング操作を容易に行うために、クラスター内のすべてのシャードが他のすべてのシャードと通信できる必要があります。

で実行中のmongostat --discover診断ツールは、コンフィギュレーションサーバー、シャード サーバー、mongos.exe インスタンスなど、クラスターのすべてのコンポーネントにアクセスできる必要があります。

このセクションでは、 netshを管理および使用するための基本的な操作の数が含まれています。 GUI フロントエンドを使用してWindows Firewallを管理できますが、すべての主要機能にアクセスするにはnetshからアクセスします。

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

すべてのWindows Firewallルールの一覧を返すには以下を行います。

netsh advfirewall firewall show rule name=all

Windows Firewallルールをリセットするには:

netsh advfirewall reset

大規模なシステムの管理を簡素化するために、Windows ファイアウォール ルールをエクスポートまたはインポートできます。

  • すべての Windows ファイアウォール ルールをエクスポートするには、次のコマンドを実行します。

    netsh advfirewall export "C:\temp\MongoDBfw.wfw"

    "C:\temp\MongoDBfw.wfw"を選択したパスに置き換えます。

  • Windows ファイアウォール ルールをインポートするには、次のコマンドを実行します。

    netsh advfirewall import "C:\temp\MongoDBfw.wfw"

    "C:\temp\MongoDBfw.wfw"を Windows ファイアウォール ルールを含むファイルへのパスに置き換えます。

戻る

Use Linux iptables