2021年1月4日月曜日

【ntopng and nProbeによる高速トラフィック分析入門】第7章 フローテンプレート設定とnProbeプラグイン

第7章 フローテンプレート設定とnProbeプラグイン

本章では、nProbeがntopngに送信するフロー情報(例: 送信元MAC, 宛先MAC, 送信元IPアドレス,宛先IPアドレス,送信元ポート,宛先ポート..etc..)である、フローテンプレートについて解説します。

(2022年2月9日(水) ebookの記載を追加)

文:ジュピターテクノロジー よしひろ

  • (2022年2月9日(水) 追記)
    2022年2月9日(水)に、本ブログ記事のシリーズ【ntopng and nProbeによる高速トラフィック分析入門】がもととなったebookを弊社サイトに公開しました。
    本サイトで紹介する以上の内容が盛だくさんで、かつ本ブログ執筆当時ではntopngのバージョンが4系でしたが、こちらのebookは5系を対象に執筆しております。
    是非、無料のebook「ntopによる高速トラフィック分析入門(ntopngバージョン5.0.2系)」をご入手ください。ダウンロードは、こちらからお願いします。

7.1 フローテンプレート

nProbeを導入するメリットは、エクスポートしたいフィールドを選択することができ、ntopngと親和性が高いソフトウェア型のNetFlowプローブであることです。

この為、筆者がntopngをご提案する時は他のフローコレクターを選択するのではなく、nProbeとntopngを連携させて導入してくださいとお願いしております。

この連携がもたらす効果は絶大で、ntopngが必要とするフローフィールドを全てnProbeがエクスポートしてくれます。

nProbeの起動時に-Tオプションでエクスポートするフローフィールドを定義します。

ntopngとnProbe相互運用性を確保する為の最小フィールドセットが、以下となります。
こちらの設定が、ntopngの設定で定義できるマクロ@NTOPNG@と同じ意味となります。
%IN_SRC_MAC %OUT_DST_MAC %SRC_VLAN %IPV4_SRC_ADDR %IPV4_DST_ADDR %L4_SRC_PORT %L4_DST_PORT %IPV6_SRC_ADDR %IPV6_DST_ADDR %IP_PROTOCOL_VERSION %PROTOCOL %L7_PROTO %IN_BYTES %IN_PKTS %OUT_BYTES %OUT_PKTS %FIRST_SWITCHED %LAST_SWITCHED %FLOW_TO_APPLICATION_ID %FLOW_TO_USER_ID %INITIATOR_GW_IP_ADDR %EXPORTER_IPV4_ADDRESS


この最小セットを一つずつ設定するのではなく、マクロ@NTOPNG@を指定すれば同じ設定となりますので、こちらを活用ください。


以下はntopngとnProbeを同一筐体にインストールし、インターフェイスeth1のトラフィック情報をZeroMQ経由でntopngにエクスポートする設定例です。

nprobe --zmq "tcp://*:5556" -i eth1 -n none -T "@NTOPNG@" 

 

7.2 nProbeプラグイン

"7.1 フローテンプレート"をご覧になった読者の方はお気づきかもしれませんが、プラグインを追加することで、nProbeがエクスポートするフローフィールドを増やすことができます

追加するプラグインには、有償ライセンスが必要なものがあります。

注)ライセンス購入なしで、このプラグインに関わるフローフィールドを指定した場合、それらは無視されることに注意してください。

2020年12月現在、nProbeの追加プラグインは以下の通りです。

  • DHCP Plugin
  • Diameter Plugin
  • DNS Plugin
  • ElasticSearch/JSON/Kafka Export Plugin
  • FTP Plugin
  • HTTP Plugin
  • IMAP/SMTP/POP Plugins
  • NetFlow-Lite Plugin
  • SIP/RTP Plugins
  • GTPv0
  • GTPv1
  • GTPv2
  • Radius Plugin

7.3 HTTPプラグイン

ライセンス購入が必要なプラグインの一例として、HTTPプラグインを取り上げます

このプラグインで追加可能なフローフィールドは以下の通りです。
%HTTP_URL %HTTP_METHOD %HTTP_RET_CODE %HTTP_REFERER %HTTP_UA %HTTP_MIME %HTTP_HOST %HTTP_SITE %HTTP_X_FORWARDED_FOR %HTTP_VIA 

また、以下のオプションをnProbeの起動オプションとして、付加することができます。

--http-dump-dir <dump dir>

    HTTPのログをダンプするディレクトリを指定します。

--http-content-dump-dir <dump dir>

    HTTPコンテンツ(リクエストのみ)をダンプするディレクトリを指定します。

--http-content-dump-response <dump dir>

    --http-content-dump-dirを使って、HTTPリクエストとレスポンス両方をダンプするディレクトリを指定します。

--http-exe-cmd <cmd>

    ディレクトリにダンプされた時に、毎回指定したコマンドを実行します。

--dont-hash-cookies

    クッキーハッシュの代わりにクッキーストリングをダンプします。

--http-verbose-level <level>

    0は、情報レベル。1は詳細レベルでデフォルトは1です。

--http-ports

    HTTPプロトコルで使われるポートをリスト定義します。(デフォルトは80)

--proxy-ports

    プロキシプロトコルで使われるポートをリスト定義します。(デフォルトは3128,8080)

--http-parse-geolocation

    モバイルアプリプロトコル内に明示的に存在する場合は、ジオロケーション情報をダンプします。(例: Nimbuzz)



HTTPプラグインのおかげで、以下の様な情報を取得することができます。

注)社内のグループウェアを表示している情報となります。
HTTP_URL HTTP_METHOD HTTP_UA HTTP_HOST HTTP_SITE
192.168.XXX.XXX:82/show_html.cgi?html=check_board GET Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 192.168.XXX.XXX:82 192.168.XXX.XXX:82

 

また、ntopng側では図7-1のように情報フィールドにURLが表示されます。


図7-1 ntopngの詳細情報


実は、ntopngを直接ミラーポートに接続する構成であれば、図7-1と同等のレベルまでトラフィック情報を可視化できます。

しかし、nProbe起動時のオプションで指定するようなコンテンツ情報の収集等は出来ません。

HTTPプラグインでどうしても利用したいオプションがあれば、追加ライセンスの購入を検討するといった考えで良いかと思います。


本記事で扱っているntop社のnProbe, ntopng製品にご興味のある方は、以下のリンクから弊社までお問い合わせください!