2015年12月19日

開源NetFlow分析軟體-NfSen安裝

LAB環境:CentOS 6 x64版  + RouterBoard設備(Support NetFlow的Router)
目的:讓RouterBoard送出NetFlow給安裝了NfSen軟體的Server主機去做NefFlow畫圖分析
前置做業:先在RouterBoard設定送出NetFlow資料給Server (192.168.88.70)


安裝NfSen軟體與相關NfSen Plugin軟體
安裝apache:
yum install -y httpd
service httpd start
chkconfig httpd on
安裝php:
yum install -y php php-gd php-mbstring php-mysql
service httpd restart
安裝rrdtool及所需套件:
yum install -y perl-rrdtool rrdtool rrdtool-devel rrdutils flex byacc php
安裝所需perl套件:
yum install -y perl-Socket6 perl-MailTools perl-Mail-Sender
安裝程式編譯工具
yum install -y gcc gcc-c++ kernel-devel perl-core
安裝Nfdump工具:
cd /usr/local/src/
wget http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.6/nfdump-1.6.6.tar.gz
tar zxvf nfdump-1.6.6.tar.gz
cd nfdump-1.6.6/
./configure --enable-nfprofile --with-rrdpath=/usr/bin
make
make install
下載設定Nfsen:
cd /usr/local/src/
mkdir -p /usr/local/nfsen
wget http://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz
tar zxvf nfsen-1.3.6p1.tar.gz
cd nfsen-1.3.6p1/
cp etc/nfsen-dist.conf etc/nfsen.conf
修改Nfsen設定文件:
vi etc/nfsen.conf
修改下列參數
$BASEDIR = "/usr/local/nfsen";                  #第21行
$HTMLDIR    = "/var/www/html/nfsen/";   #第39行
$USER    = "apache";                                    #第91行    
$WWWUSER  = "apache";                          #第95行
$WWWGROUP = "apache";                       #第96行
#新增flow設備 #第162行 
#(RouterBoard用udp 9995送出給主機接收,不同的設備設定不同的udp port)
%sources = (
    'device1'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
    'device2'    => { 'port' => '9996', 'col' => '#00ff00', 'type' => 'netflow' },
    'device3'    => { 'port' => '9997', 'col' => '#ffff00', 'type' => 'netflow' },
);
#'col' => '#ffff00' <- p="">
安裝Nfsen:
./install.pl etc/nfsen.conf
啟動Nfsen:
/usr/local/nfsen/bin/nfsen start
重啟apache:
service httpd restart

http://server-ip/nfsen/nfsen.php
大概過個10分鐘左右就會開始有圖型分析資料顯示出來


若沒有圖型顯示的話,可檢查一下目錄權限與看NetFlow資料是否有從設備丟出來給Server
tcpdump -i eth0 port 9995
nfdump 的 log  在 /usr/local/nfsen/profiles-data/live/
netstat -an |more
Nfsen Plugin實用安裝
PortTracker安裝
cd /usr/local/src/nfdump-1.6.6/
./configure --enable-nfprofile --enable-nftrack --with-rrdpath=/usr/bin
make
cp bin/nftrack /usr/local/bin/
建立PortTracker存放目錄:
mkdir /usr/local/nfsen/ports-db
chown -R apache:apache /usr/local/nfsen/ports-db/
編輯PortTracker.pm修改$PORTSDBDIR目錄:
vim /usr/local/src/nfsen-1.3.6p1/contrib/PortTracker/PortTracker.pm
my $PORTSDBDIR = "/usr/local/nfsen/ports-db";    #第61行
複製PortTracker插件至對應目錄:
cp /usr/local/src/nfsen-1.3.6p1/contrib/PortTracker/PortTracker.pm /usr/local/nfsen/plugins/
cp /usr/local/src/nfsen-1.3.6p1/contrib/PortTracker/PortTracker.php /var/www/html/nfsen/plugins/
修改Nfsen設定文件加入Plugin連結:
vim /usr/local/nfsen/etc/nfsen.conf
#第213行 ()括號內,新增[ 'live',   'PortTracker' ],
@plugins = (
    # profile    # module
    # [ '*',     'demoplugin' ],
    [ 'live',   'PortTracker' ],
);
產生PortTracker測試數據:
sudo -u apache /usr/local/bin/nftrack -I -d /usr/local/nfsen/ports-db/
#Create DBs ...
Creating tcp:flows | Left: 341 files
依主機運算效能,大概要等候10~15分鐘左右
Nfsen重啟:
/usr/local/nfsen/bin/nfsen reload
Plugin分析資料如下

如果有發生PortTracker 的Top 10 Statistics有數據出現,但是沒有產生分析圖型,檢查/var/log/message日誌文件是否有"nfsen[17392]: Error reading channel stat information. Missing key 'first'  "錯誤訊息,如果有,則執行/usr/local/nfsen/bin/nfsen -r live即可解決沒圖型產生的問題。

HostStats前置安裝作業
因HostStats需要使用到libnfdump的函式庫,所以要先安裝一下libnfdump
否則等會做編譯時會有失敗畫面出現
** libnfdump not found **
HostStats uses a library called libnfdump to read nfdump files.
Please run './install-libnfdump.sh' (as root) or install libnfdump manually
and then run './configure' again.
Libnfdump website: http://sourceforge.net/projects/libnfdump/

開始安裝HostStats
wget http://sourceforge.net/projects/hoststats/files/hoststats-1.1.5.tar.gz
tar zxvf hoststats-1.1.5.tar.gz
cd hoststats-1.1.5
./install-libnfdump.sh
./configure
make
make install
/usr/local/nfsen/bin/nfsen reload
vi /data/hoststats/hoststats.conf
依需求調整顯示Filter設定
profiles = all,ssh,http,https,TCP,UDP
all:filter = any
all:max-size = 10G
all:color = 008DFF

ssh:filter = proto TCP and port 22
ssh:max-size = 5G
ssh:color = CCBB00

http:filter = proto TCP and port 80
http:max-size = 5G
http:color = FF00BB

https:filter = proto TCP and port 443
https:max-size = 5G
https:color = 009F67

TCP:filter = proto TCP
TCP:max-size = 5G
TCP:color = FF5700

UDP:filter = proto UDP
UDP:max-size = 5G
UDP:color = 8D00BA
依需求調整%source的變數
flow-data-path = /usr/local/nfsen/profiles-data/live/%source/%y/%m/%d/nfcapd.%y%m%d%H%M
flow-data-path = /usr/local/nfsen/profiles-data/live/%source/%y/%m/%d/nfcapd.%y%m%d%H%M
flow-data-path = /usr/local/nfsen/profiles-data/live/%source/%y/%m/%d/nfcapd.%y%m%d%H%M
存檔離開,接著輸入下面指令
執行chown  apache.apache -R /data/hoststats
執行 sudo -u apache /data/hoststats/hoststats start
會有Error訊息:Error While Loading Shared Libraries, Cannot Open Shared Object File產生
主要是因為沒有關聯Libraries,接著再輸入以下指令關聯
export LD_LIBRARY_PATH="/usr/local/lib"
接著設定開機自動執行NfSen與Plugin
# vi /etc/rc.local
加入以下三行設定
/usr/local/nfsen/bin/nfsen start
export LD_LIBRARY_PATH="/usr/local/lib"
/data/hoststats/hoststats start
存檔離開,再接著執行,便可看到程式已正常運作分析資料(大約要等10分鐘才有圖出來)
/usr/local/nfsen/bin/nfsen reload
/data/hoststats/hoststats restart








SURFmap安裝
wget http://sourceforge.net/projects/surfmap/files/install.sh
chmod +x install.sh
yum -y install php-mbstring 
yum -y install php5-sqlite php-pdo 
yum -y install php-gd 
./install.sh
service httpd restart
/usr/local/nfsen/bin/nfsen reload

其它雜項
關閉iptable
service iptables stop   //停用
chkconfig iptables off  //重開機不執行
關閉SELinux
sestatus                    //查看SELinux狀態
vi /etc/sysconfig/selinux   //編輯SELinux 
enforcing                   //啟動
permissive                  //寬容
disabled                    //禁用

0 回應:

Copyright © 2009 New Life in Taipei All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.