備忘録、のようなもの

頭を使うために書き始めることにしました。わりと何でも書くつもりです。

Azureネットワークウォッチャーでパケットキャプチャー

いろいろとサボってたら、1年半近くブログ書いてない事に気付いてしまった。

何をしてたのかと問われると困るけれど、社会人デビューしてました。


ccnw-jun.hatenablog.com


1年半前のネスペに見事落ちましたが、

昨年は無事に合格しました。進展はそれくらいです。

最近仕事でAzureに触れることが非常に多いので、

せっかくなのでAzureのこと書いてみるか~と思い立って早数ヶ月。

先月あたりにひょっこり登場した、

「Azure Network Watcher」を導入してみたいと思います。

Network Watcherの導入


blogs.msdn.microsoft.com


ひとまずこちらのページを参考に導入を試みましたが、導入方法がざっくりすぎたので公式のドキュメントに行きました。
docs.microsoft.com



f:id:idx_ccd3:20170312141836j:plain
まだプレビュー機能なので、登録するところから始まります。

Register-AzureRmProviderFeature -FeatureName AllowNetworkWatcher -ProviderNamespace Microsoft.Network
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.Network

f:id:idx_ccd3:20170312141931j:plain

しばらく待つと登録が完了します。

Get-AzureRmProviderFeature -FeatureName AllowNetworkWatcher -ProviderNamespace Microsoft.Network

f:id:idx_ccd3:20170312151441j:plain

お次はポータルから有効化をぽちぽちと。
f:id:idx_ccd3:20170312142420j:plain

この画面で気付いたんですが、
現在提供されてるのは米国西部、米国中北部、米国中西部の3リージョンのみのようです。

パケットキャプチャの有効化

ネットワークウォッチャーが有効化できたので、パケットキャプチャ機能を使ってみたいと思います。
と、パケットキャプチャの追加ボタンを押したら何やらメッセージが…
f:id:idx_ccd3:20170312143204j:plain
エージェント入れないといけないみたいですね、ええ

docs.microsoft.com
ちゃんとドキュメントにも書いてありました。

パワーシェルで以下のコマンドを

Set-AzureRmVMExtension -ResourceGroupName "リソースグループ名" `
                       -Location "リージョン" `
                       -VMName "仮想マシン名" `
                       -Name "networkWatcherAgent" `
                       -Publisher "Microsoft.Azure.NetworkWatcher" `
                       -Type "NetworkWatcherAgentWindows" `
                       -TypeHandlerVersion "1.4"

f:id:idx_ccd3:20170312143825j:plain

こちらはAzure CLIの模様

azure vm extension set リソースグループ名 仮想マシン名 NetworkWatcherAgentLinux Microsoft.Azure.NetworkWatcher 1.4

f:id:idx_ccd3:20170312143814j:plain
OKが返ってきたら、やっとパケットキャプチャを追加できます。
対象のマシンやら、保存先のストレージアカウントやら簡単な設定だけでOKです。
f:id:idx_ccd3:20170312145251j:plain
プロトコルやIP、ポートでフィルターもかけられますが一旦省略。

追加が完了すると、実行中になります。
f:id:idx_ccd3:20170312144827j:plain

ちなみにコレ、設定した制限時間経つか、キャプチャを停止しないとファイルに出力されません。
規定の設定だと5時間後です。
待つのも辛かったので、一旦キャプチャを停止しました。

指定したストレージアカウントを見てみると、ちゃんと保存されてます。
f:id:idx_ccd3:20170312145647j:plain
あとはこれをWiresharkや、Microsoft Message Analyzerで開けばOKです。
試しにMicrosoft Message Analyzerで開いた画面がこちら。
f:id:idx_ccd3:20170312150032j:plain

Azure上の必要な通信については、以下のサイトで説明してくれてます。
blogs.msdn.microsoft.com

パケットキャプチャのちょっと困ったところ
  • エージェントを手動で追加する必要がある

 パワシェかAzure CLIでエージェント入れないといけないのは地味に面倒でした。
 GAするころには、キャプチャ追加時にエージェントも自動でインストールするようになってるはず…

 Windowsマシンであればファイルの保存が出来るんですが、
 Linuxだとエラー吐かれます。
 f:id:idx_ccd3:20170312151113j:plain

  • 一度キャプチャを停止すると、再開できない

 先ほどファイルに保存するために停止しましたが、停止したら削除以外の操作ができないです。
 同じ条件でまたキャプチャしたいときも、再度追加しないとダメなのはちょっと面倒そうな?

その他の使い方

公式のドキュメント見た感じ、いろいろと使いみちはありそうです。

  • Azure Automation を使用して VPN Gateway を監視する
  • VPNゲートウェイを使用してオンプレミスの接続を診断する
  • パケットキャプチャを分析して異常を検出する
  • パケットキャプチャを使用してAzure機能によるプロキシブなネットワーク監視を実行する
  • パワーBIを使用してフロアを視覚化する
  • オープンソースツールを使用して、フロアを視覚化する
  • オープンソースツールを使用してネットワークトラックパラメータを視覚化する
  • PowerShellを使用してネットワークのコンプライアンスと監査を実行する
  • オープンソースツールを使用して侵入調査を実行する
  • Azure Log Analyticsでアプリケーションゲートウェイのログを分析する

が、私の能力不足のため今日はとりあえずはここまで