2017年6月1日 星期四

Ubuntu 16.04 安裝 NetFlow(NFSEN) 網路流量分析軟體

安裝後有點小問題;就是一些工具按鈕的小圖示無法顯示。不知是套件版本的問題還是.............
我在 CentOS 6 的版本裝起來是沒有下列問題的!
找到問題了!
原因是在步驟 10 的 Apache 設定檔的 DocumentRoot 路徑指定為 /var/www/nfsen,把它改成 /var/www  就正常了。另 DirectoryIndex nfsen.php 也可以不用指定。



1.更新系統
# apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade

2.安裝相關套件
# apt-get install -y make gcc byacc flex

# apt-get install -y rrdtool librrd-dev librrds-perl librrdp-perl libpcap-dev php php-common libsocket6-perl apache2 libapache2-mod-php libmailtools-perl libio-socket-ssl-perl

3.安裝 nfsen 所需模組套件
# cpan App::cpanminus
# cpanm Mail::Header
# cpanm Mail::Internet

4.下載、安裝 nfdump 套件
# /usr/local/src/
# tar -xf nfdump-1.6.13.tar.gz
# rm -rf nfdump-1.6.13.tar.gz
# cd nfdump-1.6.13
# ./configure --prefix=/usr/local/nfdump --enable-nftrack --enable-nsel --enable-nfprofile --enable-sflow --enable-readpcap --enable-nfpcapd
# make && make install

5.下載、安裝 nfsen 套件(從 1.3.6p1 升級到 1.3.8 版本,才能順利裝完成)
# tar -xf nfsen-1.3.6p1.tar.gz
# tar -xf nfsen-1.3.8.tar.gz
# rm -rf *.tar.gz
# cd nfsen-1.3.x

6.修改 nfsen-dist.conf 設定檔(將此設定檔複製到各版本,並從 1.3.6p1 版本開始安裝、升級)
# cp etc/nfsen-dist.conf etc/nfsen.conf
# vi etc/nfsen.conf
修改內容:
$BASEDIR = "/data/nfsen";
$PREFIX = '/usr/local/nfdump/bin/';
$USER = "www-data";
$WWWUSER = "www-data";
$WWWGROUP = "www-data";
%sources = ( 'RouterOS' => {'port'=>'9995','col'=>'#0000ff','type'=>'netflow'}' );

7.確認是否有 www-data 帳號,沒有請新增 www-data 帳號
# useradd -M -s /bin/false -G www-data www-data

8.建立 nfsen 目錄
# mkdir -p /data/nfsen

9.安裝 nfsen
# ./install.pl etc/nfsen.conf

PS:
(1)nfsen 1.3.6p1有一個 Socket6 的 bug 須處理,修改解壓後 libexec 目錄下的 AbuseWhois.pm 及 Lookup.pm 兩個檔案
use Socket6;
change to :
Socket6->import(qw(pack_sockaddr_in6 unpack_sockaddr_in6 inet_pton getaddrinfo));
(2)出現 Can not get semaphore: at libexec/Nfsync.pm line 48 錯誤訊息,再執行一次安裝命令就OK了
(3)出現 RRD version '1.5001' not yet supported! 錯誤訊息,需修改 libexec/NfSenRRD.pm 約在第 76 行 ==> $rrd_version >= 1.2 && $rrd_version < 1.6

10.修改 Apache 設定檔
# vi /etc/apache2/sites-enabled/000-default.conf
內容:
DocumentRoot /var/www
#DirectoryIndex nfsen.php

11.啟動 Apache、nfsen
# systemctl restart apache2.service
# /data/nfsen/bin/nfsen start

12.設定開機啟動連結
# ln -s /data/nfsen/bin/nfsen /etc/init.d/nfsen

13.修改 /data/nfsen/bin/nfsen
vi /data/nfsen/bin/nfsen
在 #!/usr/bin/perl -w 底下加上下列內容
### BEGIN INIT INFO
# Provides:          nfsen
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: netflow server
# Description:       Start the NetFlow server
#  This script will start the nfsen server.
### END INIT INFO

存檔後,執行:
# update-rc.d nfsen defaults 20

14.修改目錄權限
chown -R www-data:www-data /data/nfsen
chown -R www-data:www-data /var/www/nfsen


安裝 plugin 套件
一、安裝PortTracker套件
1.建立 ports-db 目錄
# mkdir /data/nfsen/ports-db

2.修改 PortTracker.pm
# cd /usr/local/src/nfsen-1.3.8/contrib/PortTracker/
# vi PortTracker.pm
my $PORTSDBDIR = "/data/ports-db";
change to:
my $PORTSDBDIR = "/data/nfsen/ports-db";

3.複製 PortTracker.pm 與 PortTracker.php 這兩個檔案到對應目錄
# cp PortTracker.pm /data/nfsen/plugins/
# cp PortTracker.php /var/www/nfsen/plugins/

4.修改 /usr/local/src/nfsen-1.3.8/etc/nfsen.conf
# cd /usr/local/src/nfsen-1.3.8
# vi etc/nfsen.conf
加上:
@plugins = (
    [ 'live', 'PortTracker'],
);

5.修改 ports-db 目錄權限
chown -R www-data:www-data /data/nfsen/ports-db

6.執行 nftrack 並將資料產生在 ports-db 路徑
# sudo -u www-data /usr/local/nfdump/bin/nftrack -I -d /data/nfsen/ports-db

7.執行 nfsen 設定更新
# ./install.pl etc/nfsen.conf

8.重啟 nfsen、apache2 服務
# systemctl daemon-reload
# systemctl restart nfsen.service apache2.service



連線 NetFlow 網頁:
http://server_ip/nfsen/nfsen.php


關機問題:
將下列三個跟關機關聯的 K01nfsen 刪除,關機就不會等很久。
# rm /etc/rc0.d/K01nfsen
# rm /etc/rc1.d/K01nfsen
# rm /etc/rc6.d/K01nfsen

PS:Kxx 數值取決執行 update-rc.d 加入自動開機時是否有指定數值,未指定時系統將自動設為 K01


參考資料:
Shunze 學園 Ubuntu安裝Nfsen 



1 則留言:

Nutanix平台虛擬機(UBUNTU),利用Veeam備份移轉至VMware平台,安裝套件、系統更新出現錯誤

 mount: /var/lib/grub/esp: special device /dev/disk/by-id/scsi-SNUTANIX_VDISK_NFS_4_0_7672_2d41cbaa_025e_4fac_849c_9e620eff5bff-part1 does n...