2011-10-09 11 views
14

私が書いているアプリケーションのために、のアウトバウンド接続用に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

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

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

私はC#で行うのではなく、インストーラ(InnoSetupを使用)でこれを行うことをお勧めします。

私は何かを見逃しましたか?

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

答えて

1

TechNetの処理が行われます。Create an Outbound Port Rule on Windows 7, Windows Vista, Windows Server 2008 or Windows Server 2008 R2

私はあなたがそれはあなたがWorking with Group Policy Objects Programmaticallyに興味があるかもしれない場合があります場合は、プログラム的このようなルールを作成するためのものと仮定しますが。

最後に、インストール中にInnoSetupがセットアップを行う場合、セットアップ時に必要なレジストリキーをマージする必要があります。

0

これは、Windowsのコマンドラインツールに渡すことができる多くのタスクの1つです。 netshは適切なことを行いますが、netsh以外のものは見つけることができません。簡易版である:
netsh firewall add allowedprogram <path> <name>
詳細については、実行します。
netsh firewall add allowedprogram ?

これらは[Run]セクションのかExecを呼び出すことによってのいずれかで行うことができます。

これはWindows 7で償却されていることに注意してください。 Vista/2008以降をターゲットにしている場合は、代わりにnetsh advfirewall firewallを使用してください。マイクロソフトは前者から変換するにはan articleを持っていますが、私はまだXPをサポートしなければならないので、これをやっていません。

22

アプリケーションのいくつかの例外を追加する必要がある場合は、netshを使用できます。 (XP用)、コマンドラインで

書き込み:(W7用)、コマンドラインで

netsh firewall add allowedprogram ? 

書き込み:のnetshファイアウォールコマンドbecouseこの差は廃止されました

netsh advfirewall firewall add rule ? 

。代わりに、コマンドnetsh advfirewallファイアウォールを使用する必要があります。私たちはそこナレッジベースで見ることができるのnetsh firewallコマンドの代わりに、コマンドのnetshをadvfirewallのファイアウォールの使用に関する

詳細情報:http://go.microsoft.com/fwlink/?linkid=121488

例:

メッセンジャーのためのセキュリティカプセル化することなく、着信トラフィックのルールを追加します。 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 
1
のnetshでの問題は、それが一部のWindowsバージョンでは動作しないということである

(例えば、 Windows Vistaの基本)。そのため、netshを使用せずに例外を追加する方が良いです。 This article contains sample Inno Setup code

+0

これは、Windows版であまり信頼性がありません。 MSDNの注釈を参照してください:*「WindowsファイアウォールAPIは、要件セクションで指定されたオペレーティングシステムで使用できますが、それ以降のバージョンでは変更または使用できないことがあります。 APIは推奨されています "*、要件:サポートされている最小クライアント:Windows Vista、Windows XP SP2、サポートされている最小サーバー:Windows Server 2003 SP1。あなたが見ることができるように、このAPIの一部であるWindows Vistaでも、これはお勧めできません。 MSは時々クレイジーです:-) – TLama

関連する問題