web-dev-qa-db-ja.com

Windows AdvancedFirewall-許可されたコンピューターを追加するとルールが破られる

「これらのコンピューターへの接続のみを許可する」設定を追加すると、他の方法で機能するIPSecルールで接続が切断されるのはなぜですか?

背景:

アウトバウンドSMBアクセスを特定のサーバーにのみアクセスするように制限するクライアントルールの基本セットを設定しています。ブラックリストから開始し、目的の通信をホワイトリストに登録する必要があると想定します。

サーバー側は、これまで問題なくセットアップされ、正常に機能しています。セットアップは、レガシーIPSecインターフェイスサーバー側とWindowsの高度なファイアウォールクライアント側を使用して構成されました。

最初の認証は、Kerberos(コンピューター)またはコンピューター証明書に設定されます。双方は、認証モードに「インバウンドとアウトバウンドの要求」を使用します。

他のデバイスに非IPSecトラフィックが渡される可能性があるため、両側で「requestipsec」モデルを使用します。

クライアントのWindowsAdvanced Firewallルールは完全に機能しますまで「これらのコンピューターへの接続のみを許可する」オプションを定義します。

Wiresharkキャプチャは、ISAKMPとESPトラフィックを示し、セキュリティアソシエーションリストにメインモードとクイックモードのアソシエーションが表示されています。

編集:

MSのドキュメントに従って、接続の問題をデバッグするために次のログを有効にしました。

auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Driver" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Main Mode" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Quick Mode" /success:enable /failure:enable
auditpol /set /subcategory:"IPsec Extended Mode" /success:enable /failure:enable

これは、特定のサービス(SMBとRDPの両方を試した)がブロックされていることを示しているだけです。他のブロックされたトラフィックは表示されません。

編集:

SMBまたはRDPルールを有効にすると、問題のサーバーにトラフィックがまったく渡されていないようです。Wiresharkは何も表示しません。数年前にこのようなケースがあったようです- ここ しかし解決策はありません。

Windowsフィルタリングプラットフォームは、許可する必要があるときにこのトラフィックを誤ってブロックしているようです。

The Windows Filtering Platform has blocked a connection.

Application Information:
Process ID:     2468
Application Name:   \device\harddiskvolume1\windows\system32\mstsc.exe

Network Information:
Direction:      Outbound
Source Address:     192.168.20.54
Source Port:        49332
Destination Address:    192.168.100.50
Destination Port:       3389
Protocol:       6
3
Tim Brigham

MSとの13か月以上のトラブルチケットの後、私たちはついにこの「予想される動作」の「解決策」を思いつきました。


セキュリティが強化されたWindowsファイアウォールがファイアウォールルールの基準に一致するネットワークパケットに対して実行するアクションを選択します。 複数のファイアウォールルールが定義されている場合、それらが一致するかどうかが評価される順序は、ルールで指定されているアクションによって異なります。ファイアウォールルールは次の順序で評価されます:

  1. [安全な設定の場合に許可をカスタマイズ]ダイアログボックスで[ブロックルールを上書きする]を選択して、安全な場合に許可します。
  2. 接続をブロックします。
  3. 接続を許可します。
  4. デフォルトのプロファイル動作([セキュリティが強化されたセキュリティプロパティ]ダイアログボックスのWindowsファイアウォールの該当する[プロファイル]タブで指定されたとおりに許可またはブロックします)。

各カテゴリ内で、ルールは最も具体的なものから最も具体的でないものへと評価されます。 3つの基準のみを指定するルールよりも、4つの基準を指定するルールが選択されます。

ネットワークパケットがルールに一致するとすぐに、そのアクションがトリガーされ、追加のルールと比較されません。

つまり、ネットワークパケットが複数のルールに一致する場合でも、最初にパケットに対して評価された一致ルールのみがパケットに適用されます。

それらに従って、トラフィックが暗号化されずに通過することをファイアウォールルールで許可している一致するルールがある場合。

実行する必要があるのは、デフォルトでブロックルールがあることを確認してから、オプションオーバーライドブロックルールを使用してセキュアルールを作成し、動作させることです。

詳細については、 http://technet.Microsoft.com/en-us/library/cc730690.aspx を参照してください。

1
Tim Brigham

あなたへのほんの少しの提案/質問(私は私の環境でこれと同じタイプのルール構成が機能しているので、なぜそれが機能しないのか理解したいです)...

1)クライアントはセキュリティが強化されたIPsecポリシーを備えたWindowsファイアウォールを使用しているとのことですが、サーバー側はレガシーIPsecを使用しています。サーバーは古いバージョンのWindowsを実行していますか、それとも従来のIPsecポリシー構成の理由は何でしたか?これが機能しないと言っているわけではありませんが(ユーザー認証ではなくマシン認証を実行しようとしているため)、事態が複雑になる可能性があります。サーバーを高度なセキュリティポリシーで構成することもできますか?高度なポリシーとKerberosv5コンピューター認証を備えたサーバーに対して何が起こるかを確認してみてください。

2)シナリオが機能するためには、IPsec接続でKerberos V5認証を使用する必要があります(証明書認証は機能しません!)。ポリシーで証明書接続が許可される可能性があるとのことですが、メインモードのセキュリティアソシエーションをチェックして、証明書ではなくKerberosを使用して実際に確立されていることを確認することをお勧めします。

3)ファイアウォールルールで「これらのコンピューターへの接続のみを許可する」設定を構成するには、いくつかの異なる方法があります。デフォルトでは、IPsec接続が認証され、整合性が保護されている必要があります...一方、他の設定では、IPsec接続も暗号化されているか、nullカプセル化されている(認証されているだけで整合性が保護されていない)ことを確認できます。クライアント/サーバーがWindows7以降の場合は、nullカプセル化オプションを試して、問題の絞り込みに役立つかどうかを確認することをお勧めします。

4)通常、ファイアウォールでドロップされたトラフィックをデバッグするには、WFPキャプチャ(netsh wfpキャプチャ開始))からのログをお勧めします。これにより、トラフィックをドロップした正確なフィルターが表示されます。ただし、この場合、ログは安全な許可ルールに一致しなかったため(何らかの理由で)、接続を妨げているデフォルトのアウトバウンドブロックフィルターである可能性が高いため、おそらく非常に興味深いものではありません。ログには接続が切断されたことが示されますが、勝ちました許可ルールに一致しなかった理由を説明しないでください。おそらく試してみる価値はあります... http://technet.Microsoft.com/en-us/library/ff428146(v = ws.10) .aspx

2
FirewallGuy