web-dev-qa-db-ja.com

どのWindowsファイアウォールルールがトラフィックをブロックしているかを確認する方法

すべての着信トラフィックを受け入れるが、特定のIPへの発信トラフィックのみを許可するようにコンピューターをセットアップしようとしています。受信のすべて許可ルールと、IPアドレスを唯一の受け入れ可能な送信アドレスとして指定する許可ルールを設定しました。また、他のルールが優先されることを前提に、すべての送信ルールを拒否するように設定しました。

私が抱えている問題は、許可されていると指定したIPへのトラフィックであっても、すべてのトラフィックがブロックされていることです。

ファイアウォールを通過するトラフィックを追跡し、トラフィックをブロックしているルールを正確に確認する方法を探しています。ファイアウォールの監視によって生成されたログは、トラフィックがドロップされたが、どのルールがそれをブロックしていないかを示しています。

16
Josh

(注:これはWindows 7に適用され、新しいバージョンでは機能しない場合があります)

次の手順を実行すると、接続をブロックするルールが表示されます。

  • コマンドを入力するには、Windowsコンソール(管理権限付き)を開きます。
  • Windowsフィルタリングプラットフォーム(WFP)の監査を有効にします:
    • コマンドを実行:
      auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
    • コマンドを実行:
      auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
  • (これにより、イベントログデータが失われる可能性があります。失敗の監査のみを有効にし、接続の失敗のみを有効にすると、ログエントリの数が減ります。実際に必要なものを選択してください)
  • 問題を再現する
  • コマンドを実行:netsh wfp show state(現在のフォルダーにXMLファイルを作成します)
  • イベントビューアを開きます。実行(Windows+R)> eventvwr.msc
    • [Windowsログ]> [セキュリティ]に移動します
    • リストで、ドロップするパケットログを特定します(ヒント:右側のメニューの検索機能を使用して、問題に固有の項目(ソースIP、宛先ポートなど)を検索します)
    • ログの詳細を下にスクロールして、パケットのブロックに使用されたフィルターIDをメモします。
  • 生成されたXMLファイルを開きます:
    • 上記のfilterIDを検索し、ルール名をチェックアウトします(対応するXMLノードの要素「displayData> name」)

これは、ブロックルールを見つけるための良いスタートになります。

完了したら、監査をオフにすることを忘れないでください。

  • コマンドを実行:
    auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:disable /failure:disable
  • コマンドを実行:
    auditpol /set /subcategory:"Filtering Platform Connection" /success:disable /failure:disable

注: Windowsの言語設定によっては、監査サービスで英語以外の異なる名前が使用される場合があります。サブカテゴリ名を見つけるには、次のコマンドを実行します:auditpol /get /category:*と、システム言語の「フィルタリングプラットフォームパケットドロップ」および「フィルタリングプラットフォーム接続」に対応するサブカテゴリを見つけます。

20
Bob