IIS Expressで使用中のすべてのポートを許可するようにWindowsファイアウォールを構成する方法


9

私の理解このTechNetの記事は、あたりにそこに私を連れページ *、私は指定された実行ファイルで使用されている任意のポート上のすべての着信トラフィックを許可するようにWindowsファイアウォールを構成できることです。

事実上の答えは「これをしないでください」である可能性が高いことに気づきますので、ご理解ください。私は仮想マシン内でVisual StudioとIIS Expressを実行しており、テスト目的でホストOSから接続できるようにしたいので、IIS Expressで使用されているすべてのポートを開くことによるセキュリティへの影響にはあまり関心がありません。

プログラムをに設定した受信ルールを作成しました%ProgramFiles% (x86)\IIS Express\iisexpress.exe。これは、タスクマネージャーに従って実行される実行可能ファイルです。他のすべてのルール仕様は空のままです(任意のローカルアドレス、任意のリモートアドレス、ローカルポート、任意のリモートポート、「任意の」許可されたユーザー、「任意の」許可されたコンピューター)。ただし、接続が機能するのは、IIS Expressが提供する特定のポートに対するルールがある場合のみです。

それは私の人生を楽にしてくれるので(そしてtechnetはそれがうまくいくと言っているので、原則として)自分が作成するアプリごとにファイアウォールルールを追加する必要はありません。

*タスク "プログラムが必要なすべてのポートで受信ネットワークトラフィックをリッスンして受け入れることを許可するルールを作成します。"


1
セキュリティは問題ではないと述べたので、すべてのポートを開くことに問題はありますか?
Abraxas 2015年

ただ、ゲストオペレーティングシステムでファイアウォールをオフに... :-)私ができる私は常に無効にすべてのものを私のゲストOSで...
Kodyブラウン

回答:


1

ここで遭遇しているいくつかの問題があります。1つは、iisexpress.exe実際にはHTTPトラフィックをリッスンするプロセスではないということです。その機能はhttp.sys 、Windowsネットワークスタックのカーネルモードの一部として実装されています。(これはパフォーマンス上の理由で行われました。詳細については、「IISアーキテクチャの概要」を参照してください。)したがって、のルールを作成iisexpress.exeしても何も起こりません。

次に、http.sysデフォルトでは、管理者以外のユーザーが他のコンピューターをリッスンするときに実行されるプログラムは許可されません。WebMatrixによる外部トラフィックの提供によると、このコマンドを管理コマンドプロンプトで実行して、すべてのユーザーが次の方法で他のマシンをリッスンできるようにする必要がありますhttp.sys

netsh http add urlacl url=http://MACHNAME:PORT/ user=everyone

MACHNAMEサイトへの接続に使用されるホスト名とPORTトラフィックのポートに置き換えます。*特定のホスト名の代わりに使用すると、すべての名前/インターフェイスでリッスンできることを読んだことがありますが、個人的にはテストしていません+。代わりに、一部のドキュメントで使用しています。どちらの方法でも、ACLを設定したら、ポートの受信ファイアウォールルールを作成できます

参考資料: HTTPおよびHTTPSの構成

サイドコメント: 32ビットバージョンのProgram Filesを指す実際の環境変数があります%PROGRAMFILES(X86)%。(ただし、パスは問題ではありませんでした。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.