はじめに
Azure Firewallの2025年11月のアップデートについて自分用にまとめてみました。
11月は2つの機能がGAされました。
1.DNSフロートレースログ
Learnはこちらから参照できます。
1-1.できること
以下のログを取得できるようになりました。
・Client Query クライアントから送信される最初の DNS クエリ
・Forwarder Query Azure Firewallから外部 DNS サーバーに DNS クエリを転送する※
・Forwarder Response Azure Firewall に対する DNS サーバーの応答
・Client Response Azure Firewall からクライアントへの最終的な応答。
※キャッシュされていない時
以前は以下しか取れませんでした
・AZFWDNSQuery - 初期クライアントクエリ
・AZFWInternalFqdnResolutionFailure- FQDN解決失敗
今回のアップデートでより詳しくログが取れるようになりました。
1-2.方法
方法は2つあります。
- PowerShell
- Azure Portalにて設定
1:PowerShell
以下を実行します
Set-AzContext -SubscriptionName <SubscriptionName>
$firewall = Get-AzFirewall -ResourceGroupName <ResourceGroupName> -Name <FirewallName>
$firewall.EnableDnstapLogging = $true
Set-AzFirewall -AzureFirewall $firewall
無効にする場合
Set-AzContext -SubscriptionName <SubscriptionName>
$firewall = Get-AzFirewall -ResourceGroupName <ResourceGroupName> -Name <FirewallName>
$firewall.EnableDnstapLogging = $false
Set-AzFirewall -AzureFirewall $firewall
2:Azure Portalにて設定
- Azure FirewallのDNSプロキシを有効にする
DNSプロキシについてはこちらで試していますのでよければ合わせてご一読ください。
1.診断設定より、「DNSフロートレースログ」を選択
2. ログの保存先を選択
3. 保存
診断設定について補足
診断設定では普段以下のログが表示されます。
普段は以下の設定が表示されています。
AZFWNetworkRule
AZFWFatFlow
AZFWFlowTrace
AZFWApplicationRule
AZFWThreatIntel
AZFWNatRule
AZFWIdpsSignature
AZFWDnsQuery
AZFWInternalFqdnResolutionFailure
AZFWNetworkRuleAggregation
AZFWApplicationRuleAggregation
AZFWNatRuleAggregation
AzureActivity
AzureMetrics
AzureDiagnostics
DNSプロキシを有効にすることでこの中に”Azure Firewall DNS Flow Trace Log”が浮いてきます。
2.パケットキャプチャ
Learnはこちらから参照できます。
2-1.前提条件
管理NICを有効にする必要があります。
方法は2つあります。
1.Azure Firewall作成時に以下のチェックを入れる
Learnはここです。
2.あとから管理NICを有効にする
1.「AzureFirewallManagementSubnet」というサブネットを作成
2.作成済みのAzure Firewallと同じSKU,LocationでパブリックIPを作成
3.Azure Firewall停止
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw
Learnはここです。
4.管理パブリックIPとさきほど作成したサブネットを設定してAzure Firewall起動
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name"
$vnet = Get-AzVirtualNetwork -Name "VNet Name" -ResourceGroupName "RG Name"
$pip = Get-AzPublicIpAddress -Name "azfwpublicip" -ResourceGroupName "RG Name"
$mgmtPip = Get-AzPublicIpAddress -Name "mgmtpip" -ResourceGroupName "RG Name"
$azfw.Allocate($vnet, $pip, $mgmtPip)
$azfw | Set-AzFirewall
Azure portal上でAzure Firewallを表示し、管理パブリックIPが表示されていればOKです。
2-2.ストレージアカウント作成
キャプチャした結果を保存しておくために設定していきます。
-
ストレージアカウントを作成する際に「詳細設定」タブの「セキュリティ」にて
「個々のコンテナーで匿名アクセスを有効にする」を選択 -
ストレージアカウント作成ができたらコンテナーを作成
-
「匿名アクセスレベル」で「コンテナー(コンテナーと BLOB の匿名読み取りアクセス) 」
-
SAS URL生成
-
「SAS の生成」ページの「アクセス許可」で、「読み取り」アクセス許可をクリアし、「書き込み」を選択
-
「SAS トークンと URL の生成」を 選択
-
SAS URLコピー ※のちほど使用
2-3.パケットキャプチャ構成
Azure Firewallの「ヘルプ」より「パケットキャプチャ」選択
- パケットキャプチャ名:適当
- SAS URL:2-2でコピーしたものを貼り付け
- 最大パケット数: 100 ~ 90,000
- 時間制限 (秒): 30 ~ 1,800 秒の値
- プロトコル:Any、 TCP、 UDP、ICMPを選択
- TCP フラグ: TCP または 任意の プロトコルを選択
フィルタリングより送信元と宛先、宛先ポートを指定
- 最大パケット数や時間制限はどちらもキャプチャ終了判定に使われますが、どちらも入力が必要なようです。
なお、キャプチャは手動で停止も可能です。 - 宛先を0.0.0.0/0にしてもすべての通信のキャプチャが取れるということはないので、宛先は入力が必要です。
- フィルタはFQDN単位では設定ができません。
TCPフラグは選択しなかった場合、TCPを含む全ての種類をキャプチャしてくれます。
あとはパケットキャプチャ開始し、完了したら作成したストレージコンテナーにpcapファイルが作成されます。
最後に
2つのアップデートについてまとめてみました。
何か誤りがあれば教えていただけますと幸いです。
参考文献


