14

作成しているアプリケーションのアウトバウンド接続用に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

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

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

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

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

アウトバウンドルールを作成する方法を知っている人はいますか?

4

4 に答える 4

24

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

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

netsh firewall add allowedprogram ?

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

netsh advfirewall firewall add rule ?

この違いは、 netsh ファイアウォールコマンドが廃止されたためです。代わりに、コマンドnetsh advfirewall firewallを使用する必要があります。

netsh firewall コマンドの代わりにコマンド netsh advfirewall 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
于 2012-02-01T22:10:36.613 に答える
1

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

于 2014-02-24T08:47:09.640 に答える
1

Windows 7、Windows Vista、Windows Server 2008、または Windows Server 2008 R2 で送信ポート規則を作成する

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

最後に、インストール中にそれを行う予定がある場合、InnoSetup はセットアップ時に必要なレジストリ キーをマージできるはずです。

于 2011-10-09T06:01:14.240 に答える
0

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

これらは、[Run]セクションで、または を呼び出して実行できますExec

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

于 2011-10-20T04:39:23.313 に答える