【表示フィルタを徹底活用しNetFlowを抽出】Wireshark達人への道 第十三歩 NetFlowパケットの抽出方法

本連載は、筆者がWiresharkの達人となるまでを追うドキュメンタリー作品である。

今回の記事では、以下の3ステップでNetFlowパケットを分析します。

  1. パケット取得時に特にフィルタをかけずに取得したキャプチャファイルからNetFlowパケットのみをフィルタ
  2. 1:N(特定IPアドレスから対抗装置N台)でフィルタ
  3. NetFlowプロトコルに合わせた表示のカスタマイズ

今回検証に利用した構成は、以下の通りです。有線接続したWindows 10がWiresharkを起動し、apu4から送信されたトラフィックを全受信しています。

図1 検証環境

1. NetFlowパケットの抽出

収集したパケットは、NetFlow以外のパケットを含んでいます。NetFlowパケットだけを抽出し、さらにエクスポーター(NetFlowを送信するルータ/スイッチ)が複数存在するケースを考え、送信元IPアドレスでもフィルタします。

((udp.port == 2055) && (ip.src == 192.168.1.254))

図2 表示フィルタ

ステップ2の条件でトラフィックを絞るために、単一のIPv4アドレスに着目します。今回は、Windows 10(192.168.1.2)の通信で生成されたフローし絞ります。以下のフィルタを追加で入力します。

((((udp.port == 2055) && (ip.src == 192.168.1.254))) && (cflow.ip_version == 4)) && ((cflow.srcaddr == 192.168.1.2) or (cflow.dstaddr == 192.168.1.2))

フィルタを手入力すると難しく感じる方もいらっしゃると思います。図3のように「…and Selected/… or Selected」を活用すると簡単にフィルタを入力することができます。

図3 GUIによるフィルタの追加

ここまでのフィルタで十分と思われると思いますが、実際NetFlowにはFlowSetという考え方があり、1パケットに複数のフローパケットが含まれているため残念ながら、特定のIPアドレスのみのトラフィックに完全に絞るといったことは現状できません。

2. NetFlowプロトコルに合わせた表示のカスタマイズ

最後に筆者が考えるWiresharkにおける表示フィルタの設定項目をご紹介します。表示フィルタの設定方法に関しては、第二歩の表示のカスタマイズに詳しく設定方法を記載しておりますので、ご参照ください。以下が当方が考える表示フィルタの設定項目です。

  • Time → Time(format as specified)
  • FlowSequence → cflow.sequence
  • SourceID → cflow.source_id
  • SrcAddr → cflow.srcaddr
  • SrcPort → cflow.srcport
  • DstAddr → cflow.dstaddr
  • DstPort → cflowdstport

この表示フィルタであれば、特定ホストがどのようなトラフィックを生成しているかをWireshark上でもある程度はGUIで確認することができます。こういった手間を省くために各メーカがフローコレクターを商用製品として販売しているんだなということが何となく感じていただけるのではないでしょうか。図4に上記の表示項目で表示したWiresharkの画面をご紹介して第十三歩は終わりたいと思います。

図4 NetFlowプロトコル用カスタム表示

(Visited 2,187 times, 1 visits today)
The following two tabs change content below.
【好きなもの】 インフラ技術が好き。古いものが好き。 【生きてきたフィールド】 システム運用、ソフトウェア開発、ミドルウェア検証、OSSサポート、プリセールスエンジニア、プロジェクトマネジメント 【このサイトでの役割】 サイト管理者。