web-dev-qa-db-ja.com

セキュリティが強化されたWindowsファイアウォールでユーザーごとにアウトバウンド接続ルールを適用する

たとえばWindowsServer 2008 R2に含まれている最新バージョンのWindowsファイアウォールでは、着信接続をブロックし、このルールを一連のユーザーにのみ適用できます(ルールプロパティの[ユーザー]タブ)。

アウトバウンド接続ルールでこれが不可能なのはなぜですか。また、どのように実現できますか。特定のユーザーと他のユーザーのすべてのインターネットアクセスをブロックするソフトウェアソリューションが必要です。これをWindowsファイアウォールで実現したいと考えています。

5
Heinrich

これは、利用可能な機能ではありません。このようなことをしたい場合は、MicrosoftTMGをアウトバウンドプロキシとして使用することを検討してください。インターネットリソースへのユーザー/グループベースのアクセスを行うことができます。

2
MDMarra

これは実行可能です、私はちょうど私の子供のコンピュータのためにそれをしました。タスクスケジューラで以下のエントリを作成するだけです。リモートデスクトップからの複数のセッションなどを考慮していないため、これは非常に安全ではないことに注意してください。そうは言っても、このトピックを表示する多くの人々に役立つことを願っています。また、登録ユーザーのファイアウォールがオフになるまでの手順2の30秒の遅延に注意してください。それをどうにかしてもっと速くできるかどうかはわかりませんが、私のコンピューターには5〜10秒で十分です。

ステップ1)誰かがログオンしたときにファイアウォールをオンにするタスクを作成します:

タスクスケジューラ->アクション->「タスクの作成」

一般:

 Name:TurnOnWindowsFirewall
 Security Options:"Run whether user is logged on or not" checked
 Security Options:"Run with highest privileges" checked

トリガー:([新規...]をクリックします)

 BeginTheTask:"At log on"
 Settings:"Any User" checked
 Advanced Settings:"Stop if task runs longer than:" checked; "30 minutes" selected
 Advanced Settings:"Enabled" checked

アクション:([新規...]をクリックします)

 Action:"Start a program"
 Program/script:"netsh"
 Add Aruments:"advfirewall set allprofiles state on"

条件:

 Uncheck everything on this tab

設定:

 AllowOnDemand: checked
 RunTaskAsSoonAsPossible: checked
 IfTheTaskFails: unchecked
 StopTheTaskIfItRunsLonger: checked; "1 hour" selected
 IfTheRunningTaskDoesNotEndForceIt: checked
 IfTheTaskIsNotSchedAgainDeleteIt: unchecked
 IfTheTaskIsAlreadyRunning: "Do not start a new instance" selected

ステップ2)特定のユーザーがログオンしたときにファイアウォールをオフにするタスクを作成します:

タスクスケジューラ->アクション->「タスクの作成」

一般:

 Name:TurnOffWindowsFirewall
 Security Options:"Run whether user is logged on or not" checked
 Security Options:"Do not store password" checked
 Security Options:"Run with highest privileges" checked

トリガー:([新規...]をクリックします)

 BeginTheTask:"At log on"
 Settings:"Specific User" checked  (select user that should have OPEN internet access.)
 Advanced Settings:"Delay task for:" checked; "30 seconds" selected
 Advanced Settings:"Stop if task runs longer than:" checked; "30 minutes" selected
 Advanced Settings:"Enabled" checked

アクション:([新規...]をクリックします)

 Action:"Start a program"
 Program/script:"netsh"
 Add Aruments:"advfirewall set allprofiles state on"

条件:

 Uncheck everything on this tab

設定:

 AllowOnDemand: checked
 RunTaskAsSoonAsPossible: checked
 IfTheTaskFails: unchecked
 StopTheTaskIfItRunsLonger: checked; "1 hour" selected
 IfTheRunningTaskDoesNotEndForceIt: checked
 IfTheTaskIsNotSchedAgainDeleteIt: unchecked
 IfTheTaskIsAlreadyRunning: "Do not start a new instance" selected

幸運を!

4
user249075