web-dev-qa-db-ja.com

アウトバウンドWindowsファイアウォール例外を追加する方法は?

作成しているアプリケーションのアウトバウンド接続用にWindowsファイアウォールを開く必要があります。

私が見つけることができた最良の答えはここにあります:

http://www.shafqatahmed.com/2008/01/controlling-win.html

http://www.vincenzo.net/isxkb/index.php?title=Adding_a_rule_to_the_Windows_firewall

問題は、メソッドがinboundルールのみを作成し、outboundは作成しないことです。 )ルール。 (C#スクリプトとInnoSetupスクリプトはどちらも同じ方法を使用します。)これは私にはまったく役に立ちません。

Windowsファイアウォールのデフォルトの動作は、送信トラフィックを許可することですが、それは誰かがそれを変更しないことを保証するものではありません。

C#で行うよりも、インストーラーで(InnoSetupを使用して)これを行う方が好きです。

私は何か見落としてますか?

outboundルールを作成する方法を知っている人はいますか?

14
Ryan Smyth

アプリケーションにいくつかの例外を追加する必要がある場合は、netshを使用できます。

コマンドラインに書き込む(XPの場合):

netsh firewall add allowedprogram ?

コマンドラインに書き込む(W7の場合):

netsh advfirewall firewall add rule ?

netsh Firewallコマンドは非推奨であるため、この違いがあります。代わりに、コマンドnetsh advfirewall Firewallを使用する必要があります。

Netshfirewallコマンドの代わりにコマンドnetshadvfirewall Firewallを使用する方法の詳細については、ナレッジベースを参照してください。 http://go.Microsoft.com/fwlink/?linkid=121488

例:

Messenger.exeのセキュリティカプセル化なしの着信トラフィックのルールを追加します。

netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:\programfiles\messenger\msmsgs.exe" security=authnoencap action=allow

ポート80での発信トラフィックのルールの追加:

netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out localport=80 action=block

ポート80を介したTCPの安全性とトラフィック暗号化を使用して、インバウンドトラフィックにルールを追加します。

netsh advfirewall firewall add rule name="Require Encryption for Inbound TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow
23
xiaose

netshの問題は、一部のWindowsバージョン(Windows Vista Basicなど)では機能しないことです。そのため、netshを使用せずに例外を追加することをお勧めします。 この記事にはサンプルのInno Setupコードが含まれています

1
Pavel Vladov

TechNetの機能: Windows 7、Windows Vista、Windows Server 2008、またはWindows Server 2008 R2でアウトバウンドポートルールを作成する

このようなルールをプログラムで作成するつもりだったと思いますが、その場合は、興味があるかもしれません グループポリシーオブジェクトをプログラムで操作する =。

最後に、インストール中にそれを行うことを計画している場合、InnoSetupはセットアップ時に必要なレジストリキーをマージできるはずです。

1
Nano Taboada

これは、Windowsコマンドラインツールに渡すことができる多くのタスクの1つです。 netshは適切なことを行いますが、(netshが行う他のすべてのように)見つけることはほぼ不可能です。単純なバージョンは次のとおりです。
netsh firewall add allowedprogram <path> <name>
詳細については、以下を実行してください。
netsh firewall add allowedprogram ?

これらは、[Run]セクションで実行するか、Execを呼び出すことで実行できます。

これはWindows7では減価償却されることに注意してください。 Vista/2008以降のみを対象としている場合は、代わりにnetsh advfirewall firewallを使用する必要があります。 Microsoftは 記事 前者から後者への変換について持っていますが、私はまだXPをサポートする必要があるので、これをしていません。

0
DaleStan