2022年2月9日(水)に、本ブログ記事のシリーズ【ntopng and nProbeによる高速トラフィック分析入門】がもととなったebookを弊社サイトに公開しました。
本サイトで紹介する以上の内容が盛だくさんで、かつ本ブログ執筆当時ではntopngのバージョンが4系でしたが、こちらのebookは5系を対象に執筆しております。
是非、無料のebook「ntopによる高速トラフィック分析入門(ntopngバージョン5.0.2系)」をご入手ください。ダウンロードはこちらからお願いします。
第7章 フローテンプレート設定とnProbeプラグイン
本章では、nProbeがntopngに送信するフロー情報(例: 送信元MAC, 宛先MAC, 送信元IPアドレス,宛先IPアドレス,送信元ポート,宛先ポート..etc..)である、フローテンプレートについて解説します。
文:ジュピターテクノロジー よしひろ
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が表示されます。
実は、ntopngを直接ミラーポートに接続する構成であれば、図7-1と同等のレベルまでトラフィック情報を可視化できます。
しかし、nProbe起動時のオプションで指定するようなコンテンツ情報の収集等は出来ません。
HTTPプラグインでどうしても利用したいオプションがあれば、追加ライセンスの購入を検討するといった考えで良いかと思います。
次章はこちらをご覧ください。
お問い合わせ・製品情報
本記事で扱っているntop社のnProbe, ntopng製品にご興味のある方は、以下のリンクから弊社までお問い合わせください!