目次

Netflow および sFlow によるネットワーク監視

Pandora FMS ドキュメント一覧に戻る

リアルタイムネットワーク分析の概要

Pandora FMSは、NetFlow® と sFlow® というツールを使ってネットワークをリアルタイムで分析します。イーサネットを介して継続的に「リスニング」を行い、トラフィックを分析して統計情報を生成するという原理に基づいています。

ネットワークトラフィックを傍受して分析するには、ネットワークキャプチャポイントが最も適切な場所である必要があるため、そのネットワークへの物理的なアクセスが必要です。このようなデータをキャプチャするには、「ポートミラー」を使用して、トラフィックをあるスイッチポートから別のポートにリダイレクトする必要があります。すべてのネットワークデバイスがこれに対応しているわけではありません(中級/高級デバイスのみ)。ポートミラーは、一部の商用ファイアウォールデバイスでも実行できます。これはトラフィックを傍受する最も簡単な方法であり、追加のハードウェアは必要ありません。すべてのトラフィックを1つのポートに送信することで、そのポートはネットワークアナライザ(プローブ)に直接接続されます。

これらの高性能スイッチやファイアウォールを使用することで、監視をより容易に行うことができます。これは、これらのデバイスが独立したプローブを必要とせずに、ネットワークフローの統計情報を Pandora FMS コレクターに直接送信するためです。NetFlow や sFlow を有効にして、フローを独立したコレクター(この場合は Pandora FMS コレクター)に送信できるかどうかは、ハードウェア仕様書を参照してください。

NetFlow ネットワーク監視

Pandora FMS は、NetFlow プロトコルを使用して IP トラフィックを監視できます。

NetFlow® は Cisco Systems® によって開発されたネットワーク プロトコルで、現在 Cisco IOS® および NXOS® に加えて、Juniper®、Enterasys Switches® などのメーカーのデバイスや Linux®、FreeBSD®、NetBSD®、OpenBSD® などのオペレーティングシステムなど、いくつかのプラットフォームでサポートされています。

NetFlow プロトコル

NetFlow 対応デバイスは、この機能が有効になると、小さな情報断片からなる「NetFlow レコード」を生成し、中央デバイス(NetFlow サーバまたはコレクター)に送信します。中央デバイスは、デバイス(NetFlow プローブ)から情報を受け取り、それを保存および処理します。

この情報は、UDP または SCTP に基づく NetFlow プロトコルを使用して送信されます。各 NetFlow レコードは、最小限の情報を含む小さなパケットですが、生のトラフィックデータは一切含まれません。つまり、コレクターを通過するトラフィックのペイロードは送信されず、統計データのみが送信されます。

Cisco の従来の定義では、7要素のキーを使用します。

時が経つにつれ、他のメーカーもネットワーク機器向けに同様のシステムを設計するようになり、名称は異なるものの、目的はほぼ同じです。

Netflow コレクタ

Netflow コレクタは、ルータやスイッチから送られた全ての Netflow 情報を収集するためにネットワーク上に置かれたデバイス(PCやサーバ)です。Netflow サーバは、データを受け取り保存するために必要です。

Pandora FMS は、この目的に nfcapd を利用しています。Pandora FMS が Netflow データを処理できるようにするには、これをインストールする必要があります。Pandora FMS は、必要なときに自動的にこのサーバを起動・停止します。

Netflow プローブ

プローブ (Raspberry Pi など) は通常、NetFlow が有効化され、設定され、情報を NetFlow コレクター (この場合は nfcapd デーモンが有効な Pandora FMS サーバです) に送信するルータです。

インストールと必要要件

Pandora FMS は、全ての netflow 通信を処理するためにオープンソースのツールである nfcapd (nfdump パッケージに含まれています) を利用します。このデーモンは、Pandora FMS サーバにより自動的に起動されます。このシステムは、データを特定の場所のバイナリファイルに保存します。Netflow を使うには、nfcapd をインストールする必要があります。

nfcapd デーモンのデフォルトの待ち受けポートは 9995/UDP です。ファイアーウォールがある場合は、このポートを開ける必要があることに注意してください。

nfcapd のインストール

nfcapd は、手動でインストールする必要があります。Pandora FMS 自身は nfcapd をインストールしません。インストール方法の詳細は、nfcapd プロジェクトの公式ページを参照してください。

Pandora FMS はデフォルトで、Netflow データを保存するのに “/var/spool/pandora/data_in/netflow” ディレクトリを利用します。Pandora FMS サーバによって起動されるときに、nfcapd にこのディレクトリが指定されます。何を行っているかがわからない場合は、変更しないでください。

Pandora FMS では、Netflow データを処理するのに nfdump バージョン 1.6.8p1 が必要です。

nfcapd が正しくインストールできたか確認するには、以下のようにコマンドを実行してプロセスを起動します。

nfcapd -l /var/spool/pandora/data_in/netflow

すべて正しく動作していれば、以下のような出力が見られます。

 Add extension: 2 byte input/output interface index
 Add extension: 4 byte input/output interface index
 Add extension: 2 byte src/dst AS number
 Add extension: 4 byte src/dst AS number
 Add extension: 4 byte output bytes
 Add extension: 8 byte output bytes
 Add extension: NSEL Common block
 Add extension: NSEL xlate ports
 Add extension: NSEL xlate IPv4 addr
 Add extension: NSEL xlate IPv6 addr
 Add extension: NSEL ACL ingress/egress acl ID
 Add extension: NSEL username
 Add extension: NSEL max username
 Add extension: NEL Common block
 Bound to IPv4 host/IP: any, Port: 9995
 Startup.
 Init IPFIX: Max number of IPFIX tags: 62

Pandora FMS コンソール(具体的には、それを実行する Web サーバ)がデータにアクセスできる必要があることに注意してください。 この例では次の場所です。

/var/spool/pandora/data_in/netflow

プローブのインストール

NetFlow に対応したルーターが利用できない場合でも、そのトラフィックが Linux システムを経由する場合は、プローブとして機能し、NetFlow トラフィック情報をコレクターに送信するソフトウェアをインストールできます。

fprobe のインストール

fprobe がトラフィックを取得し Netflow サーバへ送信します。インターフェイスを通過するすべてのトラフィックから、Netflow トラフィックを生成できます。

Ubuntu 22 では、次のようにインストールおよび設定します。

sudo apt install fprobe

インストールでは、デフォルトのインターフェースとして eth0 が設定されますが、有効なネットワークインターフェースで設定する必要があります。最近のディストリビューションでは、イーサネットインターフェースは enp1s0、ワイヤレスネットワーク インターフェースは wlp2s0 という名前になっていますが、ハードウェアによってはこれらの名前が異なる場合があります

次に、データを収集するデバイス (この場合は PFMS サーバ) の IP アドレスと待ち受けポート (例: 192.168.70.185:9995) を確認します。

インストールが完了したら、操作をテストできます。

sudo systemctl status fprobe

そして、次のような応答が返されます。

システムの起動ごとに有効にするには:

sudo systemctl enable fprobe

完全な fprobe ヘルプを読むには:

https://manpages.ubuntu.com/manpages/resolute/man8/fprobe.8.html

トラフィックが生成されると、次のコマンドを使用して、PFMS サーバ の NetFlow コレクターでトラフィック統計を表示できます。

nfdump -R /var/spool/pandora/data_in/netflow

pmacct のインストール

実験的

pmacct プローブは、IPv4 および IPv6 を介して NetFlow v1/v5/v7/v8/v9、sFlow v2/v4/v5 で動作する機能があります。

ソースコードは以下にあります。

依存ファイルの管理者権限でのインストール。

Rocky Linux 8

dnf config-manager --set-enabled powertools
dnf groupinstall 'Development Tools'
dnf install libpcap libpcap-devel

Rocky Linux 9

dnf config-manager --set-enabled crb
dnf groupinstall 'Development Tools'
dnf install libpcap libpcap-devel

pmacct のソースをダウンロード(wget の代わりに curl も使えます)してビルドします。

cd /tmp
wget -O pmacct-1.7.7.tar.gz \ 
  "https://github.com/pmacct/pmacct/releases/download/v1.7.7/pmacct-1.7.7.tar.gz"
tar xvzf pmacct-1.7.7.tar.gz
cd pmacct-1.7.7
./autogen.sh
./configure
make && make install

デーモンモードで、pmacct を NetFlow プローブとして起動します。

例では、すべての eth0 インターフェイストラフィックが、IP アドレス 192.168.70.185 のポート 9995 で待ち受けている NetFlow コレクタに送信されます。

cat> ~/pmacctd_probe.conf <<EOF
daemonize: true
pcap_interface: eth0
aggregate: src_host, dst_host, src_port, dst_port, proto, tos
plugins: nfprobe
nfprobe_receiver: 192.168.70.185:9995
nfprobe_version: 9
EOF
/usr/local/sbin/pmacctd -f ~/pmacctd_probe.conf

Pandora FMS における Netflow の動作

Pandora FMS は、補助システムとしての Netflow と連動します。つまり、データベースに NetFlow データを保存しません。 Pandora FMS は、その情報をオンデマンドでレポートとして表示します。

Pandora FMS は、フィルタを使って Netflow データを処理します。フィルタは、通信パターンにマッチするルールのセットです。ルールは、'all the traffic from 192.168.70.0/24 network'(サブネット 192.168.70.0/24 からの通信すべて) といったように簡単です。また、pcap のフィルタ書式も利用できます。

フィルタが定義されると、データの視覚化方法(グラフ、リストなど)と時間間隔を決定するレポートが定義されます。フィルタとレポートを定義することで、その情報は Pandora FMS レポートと同様に定義されたままになり、必要に応じてオンデマンドで使用できます。NetFlow レポートは、Pandora FMS カスタムレポートセクションに「レポートタイプ」として表示されるため、通常の Pandora FMS レポートに組み込むことができます。

一方、トラフィックを分析し、ルールを直接作成できる「リアルタイム」表示コンソールも用意されています。これは、問題の調査や、特定のフィルタに該当しない特定のグラフの確認などに役立ちます。

設定

Netflow データが保存されるハードディスクアクセス速度は、通常、パフォーマンスに関わる重要な要素です。

まず、NetFlow を有効にして、操作メニューと管理メニューからアクセスできるようにする必要があります。設定画面には、NetFlow をグローバルに有効または無効にするオプションがあります。

有効化すると、新たに Netflow 設定オプションが表示されます。

ここでは、nfcapd デーモンが Pandora FMS サーバと同時に起動するように正しく設定する必要があります。

コンソールで NetFlow を設定したら、Pandora FMS サーバを再起動して、nfcapd サーバを起動します。 このサーバは、実行する前に適切にインストールする必要があります。 疑わしい場合はサーバのログを確認してください。

NetFlow データを PFMS サーバ以外のデバイス ((nfcapd のインストール手順 および 分散設定 を参照) に保存する場合は、バイナリファイル /usr/bin/nfexpire をそのデバイスに追加し、次のエントリを /etc/crontab に追加します。

0 * * * * root yes 2>/dev/null | /usr/bin/nfexpire -e "/var/spool/pandora/data_in/netflow" -t X_days d

ここで、x_dias は、デバイスに残す NetFlow データの最大日数です(Pandora FMS コンソールの設定とは関係ありません)。

フィルタ

リソース(Resources) > NetFlow フィルタ(NetFlow Filters) をクリックすることにより、作成および編集ができます。このセクションには、変更または削除できる作成済みのフィルタのリストが含まれています。

NetFlow ライブビューからすぐにフィルタを作成し、アクティブなフィルタを新しいフィルタとして保存することもできます。 NetFlow フィルタには “基本(basic)” または “高度(advanced)” があります。 違いは、前者には固定のフィルタリングフィールド (ソース IP、ターゲット IP、ソースポート、ターゲットポート) があるのに対し、高度なフィルタリングフィールドは pcap 式 (ネットワークトラフィックのフィルタリング式の標準) によって定義され、あらゆる種類を使用することができます。

NetFlow 監視の有効化

フィルターを作成するときに、Enable NetFlow monitoring トークン を有効にすることでフィルタ監視を有効にできます。

パラメータは次の通りです。

レポート

NetFlow レポートは Pandora FMS レポート と統合されています。

新たにレポートアイテムを作成するには、netflow レポートアイテムの一つを選択します。

以下の設定オプションが利用可能です。

netflow レポートのアイテムは、3種類あります。

リアルタイム表示

この表示は、さまざまな検索フィルタに基づいて取得されたデータの履歴を調べるために使用します。フィルタを使用して、さまざまな異なる情報を表示することができます。データの視覚化をするには、表示された情報をグループ化する方法と、この情報を取得する方法があります。

フィルタした情報は、操作(Operation)モニタリング(Monitoring)ネットワーク(Network)Netflow ライブビュー(Netflow Live View) から表示できます。このツールで、フィルタの変更のプレビューおよび、好みの出力結果を保存できます。設定したフィルタをロードし編集することもできます。

情報を取得する方法は、送信元 IP アドレス、宛先 IP アドレス、送信元ポート、または宛先ポートです。 たとえば、宛先 IP アドレス情報を表示することを選択した場合、情報は、宛先へのトラフィックが最も多い IP アドレスによって、最高から最低の順に並べ替えられて表示されます。 宛先ポートを選択して、プロトコルごとのネットワークの消費量を見る場合も同じことが行われます。

可能な表示方法は以下の通りです。

ネットワークトラフィックマップ

これにより、ノード間のトラフィックに基づいて動的なネットワーク マップを作成できます。 異なるアドレス間の関係 (接続) が表示され、最も重要な N 個の接続が (接続間で転送されるデータのサイズごとに) 表示されます。

分散設定

コンソールから独立したホスト上に Netflow データを収集する pandora ノードを配置することも可能です。大量の Netflow データがある環境では、高速ディスクと 2コア以上の高速 CPU を備えたサーバに配置することをお勧めします。 Pandora コンソールがNetflow データを抽出するためには、以下の手順に従ってシステムのデフォルト設定を変更する必要があります。

その設定には、次の手順を実行する必要があります。

EL 8 上の Pandora FMS 環境のみ

mkdir /usr/share/httpd/.ssh/
chown -R apache. /usr/share/httpd/.ssh/
su apache -s /bin/bash
ssh-keygen
ssh-copy-id < User >@< IP_Address >
ssh < User >@< IP_Address >

Pandora FMS 設定の NetFlow セクションで、リモート設定(Remote Settings) セクションに前のデータを入力して、NetFlow リモートデータにアクセスできます。

sFlow でのネットワーク監視

Pandora FMS バージョン 770 以降では、sFlow のサポートが含まれています。sFlow は、データネットワークトラフィック用のハードウェアにおける業界標準のネットワークプロトコルです。

The operation of sFlow in PFMS is similar to the one established with NetFlow. In case both protocols are active, data will be grouped; in any case, they will always be viewed by accessing the Operation menu in the left sidebar, and then clicking on Views → Network.

Pandora FMS での sFlow の動作は NetFlow で確立しているものと同様 です。 両方のプロトコルが有効な場合、データはグループ化されます。いずれの場合も、左側のサイドバーの 操作(Operation) メニューにアクセスし、ネットワーク(Network) をクリックすると、常に表示されます。

sFlow 設定

操作管理 メニューからアクセスできるように、sFlow を有効化する必要があります。 NetFlow 設定セクションに、sFlow をグローバルに有効または無効にするオプションがあります。

sFlow 専用の新しいタブが有効になります。

Pandora FMS ドキュメント一覧に戻る