web-dev-qa-db-ja.com

Win Server 2008のファイアウォールを介したIISResetを(リモートで)許可するにはどうすればよいですか?

リモートマシンでIISをリセットするには、次のコマンドを実行しようとしています。

IISReset <remoteMachine>

ドメインファイアウォールを無効にすると、すべて正常に機能します。ファイアウォールを有効にすると、

RPCサーバーは利用できません。

最初は、リモート管理(RPC-EPMAP)や、関連性が低いと思われるその他のルールを有効にしてみました。次に、事前定義されたすべてのルールを有効にしようとしましたが、成功しませんでした。

5
Rob

次のコマンドラインを試して、Webサーバーのファイアウォールにインバウンドルールを追加してください。

netsh advfirewall firewall add rule name="Remote IIS inetinfo" dir=in action=allow description="Remote IIS Service Managment" program="%systemroot%\System32\inetsrv\inetinfo.exe" enable=yes

netsh advfirewall firewall add rule name="COM+ Remote Administration (All Programs)" dir=in action=allow description="" program="%windir%\system32\dllhost.exe" enable=yes localport=RPC protocol=tcp

IISサービスにアクセスしようとすると、WMI/RPCの問題を解決するために、これらを使用する必要がありました。次のようなエラーが発生します。

Creating an instance of the COM component with CLSID {2B72133B-3F5B-4602-8952-803546CE3344} from the IClassFactory failed due to the following error: 800706ba.
3
Greg Bray

135/tcpはポートマッパーのみです。 高ポート (Server2008では49152-65535/tcp)で実行される2番目の接続をネゴシエートするために使用されるため、その接続用のポートも許可する必要があります。ファイアウォールの通過を容易にするために、 ポートをロックする にすることができます。

2
Ansgar Wiechers

他の人が特定した根本的な原因は、IISResetがRPCを必要とし、Windowsの新しいバージョンではデフォルトで必要なポートがデフォルトでブロックされていることです(これは良いことです)。

2セットのポートを開く必要があります。

  1. 135/tcp-これは、他の人が言及しているように、ポートマッパーです。 RPC Dynamic Port Rangeのポートをネゴシエートして通信します
  2. RPC Dynamic Port Range-これは、タスクを実行するために使用される、上記でネゴシエートされたポートの範囲です。この範囲でまだアクティブなドキュメントは見つかりませんでした。 @Ansgar Wiechersが言及しているように、これはハイポートであり、Windows Server 2008で変更されました。この動作の変更がドキュメントの理由であると思われます( https://support.Microsoft.com/en-us/help/217351 正式にはMicrosoft KB217351 DCOMポート範囲構成の問題)は削除されました。

Windowsファイアウォールを使用している場合は、ポート範囲を開くためのニーモニックが提供されます。@ Greg Brayの回答はほぼ正解ですが、inetinfo.exeへの通信が開かれます。これは、私が知る限り、必要ありませんでした。

以下は私たちのために働きます:

netsh advfirewall firewall add rule name="COM+ (DCOM-In) Port Mapper" dir=in action=allow description="Allow Communication to the DCOM Service Control Manager" enable=yes localport=135 protocol=tcp remoteip=x.x.x.x

netsh advfirewall firewall add rule name="COM+ (DCOM-In) Dynamic Port Range" dir=in action=allow description="Allow DCOM Communication" enable=yes localport=RPC protocol=tcp remoteip=x.x.x.x

上記のコマンドの各セクションについて説明します。

  • netsh advfirewall firewall add rule
    • Windowsファイアウォールにルールを追加します
  • name="xxx"
    • このルールの名前。必要に応じてカスタマイズ
  • dir=in
    • これは着信ルールです
  • action=allow
    • コミュニケーションを許可します
  • description="xxx"
    • 説明;必要に応じてカスタマイズしてください。
  • enable=yes
    • これらのルールを有効にしたい
  • localport=135
    • この最初の使用法では、ポート番号を明示的に開いています
  • localport=RPC
    • この2番目のコマンドでは、これをRPCに設定します。これにより、Windowsファイアウォールが動的ポート範囲内にあるかどうかを通知して、各ポートを個別に指定しなくても許可できるようにします。
  • protocol=tcp
    • すべてのRPC呼び出しはTCPを使用するため、これをプロトコルとして指定します
  • remoteip=x.x.x.x
    • これは非常に重要です。このファイアウォールルールは、指定されたIPアドレスにのみ適用する必要があることを示しています。必須ではありませんが、ファイアウォールルールを狭義に定義するためにこれを指定することを強くお勧めします。
1
aolszowka