パケット ドロップ イベントを調査するときは、Windows フィルタリング プラットフォーム (WFP) の Filter Run-Time ID
フィールドを使用して、 5157
または 5152
を監査できます。
フィルター ID は、パケットドロップの原因となったフィルターを一意に識別します。 フィルター ID は、WFP 状態ダンプ出力で検索して、フィルターの送信元であるファイアウォール規則にトレースバックできます。 ただし、フィルター ID はフィルターまたはルールに戻ってトレースするための信頼できるソースではありません。フィルター ID は、ルールがまったく変更されていないにもかかわらず、さまざまな理由で変更される可能性があります。 ID の変更により、診断プロセスのエラーが発生しやすく、困難になります。
パケット ドロップ イベントを正しく効率的にデバッグするには、ブロック フィルターに関するコンテキスト (配信元など) が必要です。 ブロック フィルターは、次のフィルターの配信元の下に分類できます。
- ファイアウォール規則
- ファイアウォールの既定のブロック フィルター
- AppContainer ループバック
- ブート時間の既定値
- 検疫の既定値
- クエリ ユーザーの既定値
- ステルス
- ユニバーサル Windows プラットフォーム (UWP) の既定値
- Windows サービスのセキュリティ強化 (WSH) の既定値
次のセクションでは、Windows 11 および Windows Server 2022 の5157
と5152
を監査するための機能強化と、これらのイベントでのフィルターの配信元の使用方法について説明します。
ファイアウォール監査の強化
Windows 11 および Windows Server 2022 以降、監査5157
および5152
イベントに追加された 2 つの新しいフィールドは、フィルターの配信元とインターフェイス インデックスです。
- [フィルターの配信元] フィールドは、ドロップの原因を特定するのに役立ちます。 ファイアウォールからのパケット ドロップは、Windows ファイアウォール サービスによって作成された既定のブロック フィルターまたはユーザー、ポリシー、サービス、アプリによって作成される可能性があるファイアウォール規則によって明示的に削除されます。フィルター配信元' は、 ルール ID (ファイアウォール規則の一意の識別子) または既定のブロック フィルターの名前のいずれかを指定します
- [インターフェイス インデックス] フィールドは、パケットがドロップされたネットワーク インターフェイスを指定します。 このフィールドは、フィルターの配信元が検疫の既定値である場合に、検疫されたインターフェイスを識別するのに役立ちます
特定の監査イベントを有効にするには、管理者コマンド プロンプトで対応するコマンドを実行します。
監査# | Enable コマンド | Link |
---|---|---|
5157 | Auditpol /set /category:"System" /SubCategory:"Filtering Platform Connection" /success:enable /failure:enable |
5157(F): Windows フィルタリング プラットフォームが接続をブロックしました。 |
5152 | Auditpol /set /category:"System" /SubCategory:"Filtering Platform Packet Drop" /success:enable /failure:enable |
5152(F): Windows フィルタリング プラットフォームがパケットをブロックしました。 |
フィルター配信元を使用したパケット ドロップのデバッグ フローの例
監査によって [フィルターの配信元 ] と [インターフェイス インデックス] が表示されるため、ネットワーク管理者は、ネットワーク パケットドロップの根本原因と、それが発生したインターフェイスを特定できます。
次のセクションは フィルターの配信元 の種類で割られます。値はルール名か、既定のブロック フィルターの 1 つの名前です。 フィルターの配信元が既定のブロック フィルターの 1 つである場合は、「ファイアウォールの 既定のブロック フィルター」セクションに進みます。
ファイアウォール規則
次の PowerShell コマンドを実行して、 Filter Origin
を使用してルール情報を生成します。
Get-NetFirewallRule -Name "<Filter Origin>"
Get-NetFirewallRule -Name " {A549B7CF-0542-4B67-93F9-EEBCDD584377} "
削除の原因となったルールを特定した後、ネットワーク管理者は、使用可能な ツールの 1 つを介して必要なトラフィックを許可するようにルールを変更または無効にすることができます。 ネットワーク管理者は、ルールの DisplayName を使用して UI でルールを見つけることができます。
注
Windows ファイアウォール UI を使用して、Mobile デバイス管理 (MDM) ストアからのファイアウォール規則を検索することはできません。 さらに、上記の方法は、 フィルターの配信元 が既定のブロック フィルターの 1 つである場合、ファイアウォール規則に対応していないため機能しません。
ファイアウォールの既定のブロック フィルター
AppContainer ループバック
AppContainer ループバック ブロック フィルターの配信元からのネットワーク ドロップ イベントは、ユニバーサル Windows プラットフォーム (UWP) アプリで localhost ループバックが正しく有効になっていない場合に発生します。
- ローカル デバッグ環境で localhost ループバックを有効にするには、「localhost との通信」を参照してください。
- 別の UWP またはパッケージ化された Win32 アプリと通信するためにループバック アクセスを必要とする発行済みアプリに対して localhost ループバックを有効にするには、「uap4:LoopbackAccessRules」を参照してください。
ブート時間の既定値
ブート時の既定のブロック フィルター配信元からのネットワーク ドロップ イベントは、コンピューターが起動中で、ファイアウォール サービスがまだ実行されていない場合に発生します。 サービスでは、トラフィックを許可するブート時間許可フィルターを作成する必要があります。 ファイアウォール規則を使用してブート時間フィルターを追加することはできません。
検疫の既定値
検疫の既定の ブロック フィルター からのネットワークドロップは、インターフェイスがファイアウォール サービスによって一時的に検疫されるときに発生します。 ファイアウォール サービスは、ネットワーク上の変更を検出するとインターフェイスを検疫し、その他のいくつかの要因に基づいて、ファイアウォール サービスによってインターフェイスがセーフガードとして検疫される可能性があります。 インターフェイスが検疫されると、検疫の既定の ブロック フィルター によって、新しいループバック以外の受信接続がブロックされます。
次の PowerShell コマンドを実行して、インターフェイスに関する詳細情報を生成します。
Get-NetIPInterface -InterfaceIndex <Interface Index>
検疫機能の詳細については、「検疫の 動作」を参照してください。
注
検疫関連のパケット ドロップは一時的な場合が多く、インターフェイスのネットワーク変更以外の何も意味しません。
クエリ ユーザーの既定値
クエリ ユーザーの既定のブロック フィルターからのネットワーク パケットドロップは、パケットの受信接続を許可する明示的な規則が作成されていない場合に発生します。 アプリケーションがソケットにバインドするが、そのポートでパケットを許可するための対応する受信規則がない場合、Windows は、使用可能なネットワーク カテゴリでアプリがパケットを受信することを許可または拒否するためのポップアップを生成します。 ユーザーがポップアップで接続を拒否することを選択した場合、アプリへの後続の受信パケットは削除されます。 ドロップを解決するには:
- このアプリケーションのパケットを許可する受信ファイアウォール規則を作成します。 ルールを使用すると、パケットはクエリ ユーザーの既定のブロック フィルターをバイパスできます
- ファイアウォール サービスによって自動生成された可能性があるブロック クエリ ユーザー ルールを削除する
すべてのクエリ ユーザー ブロック 規則の一覧を生成するには、次の PowerShell コマンドを実行します。
Get-NetFirewallRule | Where {$_.Name -like "*Query User*"}
クエリ ユーザーのポップアップ機能は、既定で有効になっています。 クエリ ユーザーのポップアップを無効にするには、管理コマンド プロンプトで次のコマンドを実行します。
Netsh set allprofiles inboundusernotification disable
または、PowerShell で次の手順を実行します。
Set-NetFirewallProfile -NotifyOnListen False
ステルス
通常、ポート スキャンを防ぐために、ステルス フィルターからのネットワーク ドロップが行われます。
ステルス モードを無効にするには、「 Windows でステルス モードを無効にする」を参照してください。
UWP の既定値
ユニバーサル Windows プラットフォーム (UWP) の既定の受信/送信ブロック フィルターからのネットワークドロップは、多くの場合、UWP アプリが正しく構成されていない (つまり、UWP アプリに正しい機能トークンがないか、ループバックが有効になっていない) か、プライベート範囲が正しく構成されていないことが原因です。
UWP の既定のブロック フィルターによって引き起こされるドロップをデバッグする方法の詳細については、「 UWP アプリ接続の問題のトラブルシューティング」を参照してください。
WSH の既定値
Windows Service Hardening (WSH) の既定のフィルターからのネットワークの削除は、保護されたサービスのネットワーク トラフィックを許可する明示的な Windows サービスセキュリティ強化許可ルールがなかったことを示します。 ブロックが予期されない場合は、サービス所有者がサービスの 許可規則 を構成する必要があります。