Azure Firewall のパケット キャプチャ機能を使用すると、トラブルシューティングのためにネットワーク トラフィックをキャプチャして分析できます。 この記事では、フィルターの構成、トラフィックのキャプチャ、結果の分析を行う方法について説明します。
[前提条件]
- Azure サブスクリプション。 お持ちでない場合は、 無料アカウントを作成してください。
- 管理 NIC が有効になっている Azure Firewall。
「Azure Firewall とポリシーのデプロイと構成」を参照してください。
- Basic SKU と Virtual WAN のデプロイでは、管理 NIC が既定で有効になっています。
- 仮想ネットワークの Standard または Premium SKU については、 Azure Firewall Management NIC を参照して有効にします。
ストレージ アカウントを作成する
ストレージ アカウントを作成し、キャプチャされたパケットが格納されているコンテナーの SAS URL を取得します。
ストレージ アカウントを設定する
Azure portal で、[ リソースの作成] を選択し、 ストレージ アカウントを検索して、[ 作成] を選択します。
[ 基本 ] タブで、ストレージ アカウントに必要な情報を入力します。
[ 詳細設定 ] タブの [ セキュリティ] で、[ 個々のコンテナーで匿名アクセスを有効にする] を選択します。 その他の既定の設定はそのままにします。
コンテナーを作成する
ストレージ アカウントを作成したら、リソースに移動し、[データ ストレージ] の下の [コンテナー] を選択します。
[ + コンテナー] を選択し、新しいコンテナーの名前を指定します。
[匿名アクセス レベル] で、[コンテナー ] (コンテナーと BLOB の匿名読み取りアクセス) を選択します。
SAS URL を生成する
コンテナーを作成したら、コンテナーの横にある ... (省略記号) を選択し、[ SAS の生成] を選択します。
[ SAS の生成 ] ページの [ アクセス許可] で、[ 読み取り ] アクセス許可をクリアし、[ 書き込み] を選択します。
[ SAS トークンと URL の生成] を 選択し、生成された SAS URL をコピーします。
Important
ストレージ アカウントの SAS URL が正しく構成されていない場合、パケット キャプチャは失敗します。 すべての手順を正確に実行します。
- 個々のコンテナーで匿名アクセスを有効にする
- 匿名アクセス レベルをコンテナーに設定 する
- 書き込みアクセス許可のみを付与し、読み取りを解除する
一般的な構成エラー:
- SAS URL に対する書き込みアクセス許可がありません
- コンテナー レベルのアクセスが有効になっていない
- コンテナーではなく BLOB ストレージを指す SAS URL
パケット キャプチャを構成して実行する
ファイアウォールでパケット キャプチャを構成して開始します。
パケット キャプチャへのアクセス
- Azure portal でファイアウォールに移動します。
- [ヘルプ] で、[パケット キャプチャ] を選択します。
キャプチャ設定を構成する
[パケット キャプチャ] ページで、次の設定を構成します。
- パケットキャプチャ名: キャプチャファイルに一意の名前を入力します。
- 出力 SAS URL: 作成したストレージ コンテナーの SAS URL を貼り付けます。
ヒント
キャプチャごとに一意のファイル名を使用して、前の結果を保持します。 同じファイル名を持つ複数のキャプチャを同じ SAS URL に実行すると、既存のファイルが上書きされます。
基本的なキャプチャ パラメーターを設定します。
- 最大パケット数: 100 ~ 90,000 パケットの値を入力します。
- 時間制限 (秒): 30 ~ 1,800 秒の値を入力します。
- プロトコル: キャプチャするプロトコル ( Any、 TCP、 UDP、または ICMP) を選択します。
- TCP フラグ: TCP または 任意の プロトコルを選択した場合は、キャプチャするパケットの種類 ( FIN、 SYN、 RST、 PSH、 ACK、 URG) を選択します。
注
最大パケット数と時間制限の両方を指定します。 キャプチャは、最初の制限に達すると停止します。
キャプチャ フィルターを定義する
[フィルタリング] セクションで、キャプチャするパケットを指定します。
- ソース IP アドレスまたはサブネット
- 宛先 IP アドレスまたはサブネット
- 宛先ポート
注
- 少なくとも 1 つのフィルターが必要です。
- パケット キャプチャは、各フィルターに一致する双方向トラフィックを記録します。
- 複数の値にコンマ区切りリストを使用します (例: 192.168.1.1、192.168.2.1、192.168.1.0/24)。
- SNAT の使用時、インターネットへの接続時、またはアプリケーション 規則の処理時に受信パケットと送信パケットの両方をキャプチャするには、ソース フィールドに
AzureFirewallSubnetアドレス空間を含めます。
キャプチャを開始する
[ 状態 ] セクションで、[ 状態の更新 ] を選択して、パケット キャプチャが現在実行されていないことを確認します。
- ファイアウォールの準備ができたら、状態は パケット キャプチャが進行中でないことを示します。新しいパケット キャプチャを開始できます。
- パケット キャプチャが既に進行中の場合は、[ パケット キャプチャの停止] を選択し、状態を更新して、新しいキャプチャを開始する前に停止したことを確認します。
[ パケット キャプチャの開始] を選択して、構成した設定でパケットのキャプチャを開始します。
注
Azure では、ファイアウォールの基になるコンピューティング インスタンスの少なくとも半分からキャプチャが取得されると、パケット キャプチャ操作が成功として報告されます。 ポータルにはキャプチャを提供したインスタンスが表示されないため、ステータス メッセージは成功の主要なインジケーターです。
パケット キャプチャを分析する
パケット キャプチャが完了すると、状態に [パケット キャプチャが正常に完了しました]と表示されます。新しいパケット キャプチャを開始する準備ができました。
キャプチャ ファイルをダウンロードして確認する
Azure portal でストレージ コンテナーに移動します。
キャプチャ ファイルは、コンテナーのルート フォルダーに保存されます。 ファイアウォールのバックエンド内の仮想マシン インスタンスごとに 1 つずつ、複数の
pcapファイルが表示されます。pcapファイルをダウンロードします。Wireshark などのパケット分析ツールを使用してファイルを分析します。
パケット フロー パターンについて
各パケット キャプチャには、受信パケットと送信パケットのペアが含まれます。 ファイアウォールが処理するすべてのパケットについて、キャプチャに対応するペアが表示されます。 次の表では、4 つの一般的なパケット フロー パターンについて説明します。
| Scenario | 受信パケット | 送信パケット |
|---|---|---|
| 仮想ネットワークから仮想ネットワーク (SNAT を使用しないで) オンプレミスへの仮想ネットワーク (SNAT なし) |
ソース: クライアント 宛先: サーバー |
ソース: クライアント 宛先: サーバー レイヤー 2 のヘッダーは異なりますが、レイヤー 3 以降は同じままです。 |
| 仮想ネットワーク間から仮想ネットワークへ (SNAT を使用) オンプレミスへの仮想ネットワーク (SNAT を使用) インターネットへの仮想ネットワーク |
ソース: クライアント 宛先: サーバー |
ソース: ファイアウォール 宛先: サーバー SNAT によるレイヤー 3 ソース IP の変更。 レイヤー 4 以降は変更されません。 |
| アプリケーションのルールの流れ | ソース: クライアント 宛先: サーバー |
ソース: ファイアウォール 宛先: サーバー ファイアウォールが接続をプロキシし、宛先への新しいセッションを確立するため、レイヤー 4 以降は異なります。 受信パケットと送信パケットを照合するには、HTTP キーまたは TLS キーを使用します。 レイヤー 7 は同じままです。 |
| DNAT フロー | ソース: クライアント 宛先: ファイアウォールのパブリック IP |
ソース: ファイアウォール 宛先: DNATed プライベート IP レイヤ 3 宛先 IP は DNAT による着信パケットとは異なりますが、レイヤ 4 は同じままです。 |
これらのシナリオの詳細な手順については、「 Azure Firewall フローのトラブルシューティングにパケット キャプチャを使用する」を参照してください。
よく寄せられる質問
宛先ポートを 0 に設定して、すべてのポートのトラフィックをキャプチャできますか。
各フィルターには、少なくとも 1 つの宛先ポートを指定する必要があります。 すべてのポートでのトラフィックのキャプチャはサポートされていません。
フィルターで IP アドレス範囲を使用できますか?
フィルターは個々の IP アドレスまたはサブネットをサポートしますが、IP アドレス範囲はサポートしません。 範囲をキャプチャする必要がある場合は、それらのアドレスをカバーするサブネットを使用します。 フィルターを 5 つ以下の IP アドレスまたはサブネットに制限します。
すべてのトラフィックをキャプチャするために、最大パケット数または時間制限を空白のままにすることはできますか?
両方の値が必要です。 必要に応じて、許可される最大値に設定します。 いずれかの制限に達すると、キャプチャは自動的に停止します。
実行中のパケット キャプチャを手動で停止できますか?
はい。構成された制限に達する前にキャプチャを終了するには、[ パケット キャプチャの停止] ボタンを選択します。
パケット キャプチャでは、連続キャプチャまたは循環キャプチャはサポートされますか?
循環 (連続) パケット キャプチャはサポートされていません。 トラブルシューティングのために拡張キャプチャまたは繰り返しキャプチャが必要な場合は、 Azure サポート 要求を開きます。 Microsoft サポートは、ユーザーに代わってより長いキャプチャを実行できます。
すべてのトラフィックをキャプチャするために宛先を 0.0.0.0/0 に設定できますか。
パケット キャプチャは、特定のフローのトラブルシューティングを行うように設計されています。 宛先を 0.0.0.0/0 に設定すると、キャプチャが空になり、すべてのトラフィックがキャプチャされるわけではありません。
IP アドレスの代わりにフィルターで FQDN を使用できますか?
フィルターは FQDN をサポートしていません。 ただし、DNS を使用して FQDN を IP アドレスに解決し、それらの IP アドレスをフィルターに追加できます。
TCP フラグをオフのままにすることは、すべてのフラグを選択する場合と同じですか?
TCP フラグが選択されていない場合 (既定値)、すべてのパケットの種類がキャプチャされます。 特定のパケットの種類をキャプチャする場合にのみ、特定のフラグを選択します。
ICMP、TCP、および UDP パケットを同時にキャプチャできますか。
はい。すべてのパケットタイプをキャプチャするプロトコルとして[ 任意 ]を選択します。 プロトコル フィールドは、必要に応じ特定のプロトコルをフィルター処理するように設計されています。
パケット キャプチャが成功したかどうかを確認するにはどうすればよいですか?
基になるコンピューティング インスタンスの少なくとも半分からキャプチャが取得されると、Azure は成功を報告します。 空のキャプチャ ファイルは操作が成功したことを示しますが、フィルターに一致するトラフィックが見つかりませんでした。 フィルターを広げて、キャプチャをもう一度実行します。