2017年6月8日 星期四

Oracle Linux 7.3 安裝 NetFlow(Nfsen) 網路流量分析軟體

Oracle Linux 就和 CentOS 一樣是 RHEL 版本的分支 Linux 系統,相容所有的 RPM 套件及一樣可使用 yum 來安裝套件,這次就用它來安裝 NetFlow(NFSEN) 試試。

安裝 NetFlow 所需的各項套件:
# yum install -y nfdump perl-Sys-Syslog perl-MailTools perl-Socket6 php-mysql perl-Mail-Sender perl-Data-Dumper php php-gd httpd

以下四個套件必須下載 rpm 安裝(用 yum 找不到套件):
libpcap-devel (libpcap-devel-1.5.3-8.el7.x86_64.rpm)

php-mbstring (php-mbstring-5.4.16-42.el7.x86_64.rpm,HostStats plugin 會使用的套件 )

rrdtool (rrdtool-1.4.8-9.el7.x86_64.rpm,這個可以用 yum 安裝,但須和另兩個 rrdtool 套件版本要相同,所以一起下載)

rrdtool-devel (rrdtool-devel-1.4.8-9.el7.x86_64.rpm)

rrdtool-perl (rrdtool-perl-1.4.8-9.el7.x86_64.rpm)


新增一個 netflow 帳號並加入 apache 群組:
# useradd -r -g apache -s /sbin/nologin -d /opt/nfsen -M netflow

修改 /etc/php.ini 時區參數:
# vi /etc/php.ini
date.timezone = "Asia/Taipei"

建立 Nfsen 所要使用的各資料夾:
# mkdir -p /opt/nfsen
# mkdir -p /var/www/html/nfsen

下載 nfdump 及 nfsen 兩個 source 檔編譯安裝:
# cd /usr/local/src
# wget http://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.8/nfsen-1.3.8.tar.gz

新增 Apache 裡 nfsen.conf :  
# vi /etc/httpd/conf.d/nfsen.conf
內容:
<Directory "/var/www/html/nfsen">
  AllowOverride None
  Require all granted
</Directory>

啟動 apache service:
# systemctl restart httpd.service
# systemctl enable httpd.service

安裝 nfsen :
# cd /usr/local/src
# tar -xf nfsen-1.3.6p1.tar.gz
# cd nfsen-1.3.6p1
# cp etc/nfsen-dist.conf etc/nfsen.conf

修改下列變數為上面步驟所建立的資料夾:
# vi etc/nfsen.conf
$BASEDIR= "/opt/nfsen";
$HTMLDIR = "/var/www/html/nfsen";
$PREFIX  = '/bin';      //因為是使用 yum install nfdump

$WWWUSER = "www";
$WWWGROUP = "www";
修改為:
$WWWUSER = "apache";
$WWWGROUP = "apache";
%sources = (
    'RouterOS'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
);
$MAIL_FROM = 'nfsen@example.com';
$SMTP_SERVER = 'msr.hinet.net';

修改完上面的變數環境後:
# ./install.pl etc/nfsen.conf

啟動 nfsen service :
# /opt/nfsen/bin/nfsen start

Nfsen安裝 nfsen-1.3.6p1 確認正常運作後,可再下載新版本編譯安裝,直接安裝 nfsen-1.3.8 會出現某些問題,利用 nfsen-1.3.6p1 升級方式則可正常運作 nfsen-1.3.8 版本
# cd ../nfsen-1.3.8/
# cp ../nfsen-1.3.6p1/etc/nfsen.conf etc/
# ./install.pl etc/nfsen.conf

使用 v1.3.6p1 升級安裝時,v1.3.8可不修改下列所講的問題:
(1)nfsen 1.3.6p1有一個 Socket6 的 bug 須處理,修改解壓後 libexec 目錄下的 AbuseWhois.pmLookup.pm 兩個檔案:
# vi libexec/AbuseWhois.pm
# vi libexec/Lookup.pm

use Socket6;
change to :
Socket6->import(qw(pack_sockaddr_in6 unpack_sockaddr_in6 inet_pton getaddrinfo));

修改完上面的變數環境後:
# ./install.pl etc/nfsen.conf

重啟 nfsen service :
# /opt/nfsen/bin/nfsen reload


都正常完成以上安裝動作,可開啟瀏覽器連線 nfsen 管理介面:
http://host_ip/nfsen/nfsen.php


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

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

3.複製 PortTracker.pm 與 PortTracker.php 這兩個檔案到對應目錄
# cp PortTracker.pm /opt/nfsen/plugins/
# cp PortTracker.php /var/www/html/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 目錄權限
# chmod 775 -R /opt/nfsen/ports-db
# chown -R netflow:apache /opt/nfsen/ports-db

6.執行 nftrack 並將資料產生在 ports-db 路徑
# sudo -u netflow /bin/nftrack -I -d /opt/nfsen/ports-db

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

8.重啟 nfsen、apache 服務
# /etc/init.d/nfsen restart

二、安裝HostStats套件
1.下載、安裝 HostStats 軟體
# cd /usr/local/src
# tar -xf hoststats-1.1.5.tar.gz
# cd hoststats-1.1.5
# yum groupinstall -y "Development tools"
先執行 ./install-libnfdump.sh 後再執行 ./configure
# ./install-libnfdump.sh     //安裝 libnfdump 模組
# ./configure
# make && make install    //安裝路徑和 nfsen 一樣: /opt/hoststats

2.修改 hoststats.conf
# vi /opt/hoststats/hoststats.conf
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

flow-data-path = /opt/nfsen/profiles-data/live/%source/%y/%m/%d/nfcapd.%y%m%d%H%M

3.修改 HostStats 目錄權限
# chmod 775 -R /opt/hoststats/data /opt/hoststats/log
# chown -R netflow:apache /opt/hoststats

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

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

6.重啟 nfsen 服務
# /opt/nfsen/bin/nfsen reload

7.啟動 HostStats
# sudo -u netflow /opt/hoststats/hoststats restart

8.最後設定開機啟動 nfsen、HostStats,修改 /etc/rc.local
# chmod +x /etc/rc.local
# vi /etc/rc.local
加入:
/opt/nfsen/bin/nfsen start
sudo -u netflow /opt/hoststats/hoststats start


Debug 工具:
# yum install -y tcpdump
# tcpdump -i eth0 port 9995


有支援 NetFlow 的設備,可設定將封包轉發一份到  NetFlow Server :
1.MikroTik RouterOS :
/ip traffic-flow target
add src-address=0.0.0.0 dst-address=192.168.1.249 port=9995 version=9

2.Cisco 設備:
int fa24
ip route-cache flow
show ip cache flow
clear ip flow stats
ip flow-export destination 192.168.1.249 9996


修改 /etc/nfsen.conf 接收設備轉發來的封包:
vi /etc/nfsen.conf
%sources = (
'RouterOS' => { 'port' => '9995', 'col' => '#088A08', 'type' => 'netflow' },
'CiscoRouter' => { 'port' => '9996', 'col' => '#0000ff', 'type' => 'netflow' },
);


問題:
如果有出現小工具的按鈕圖示無法正常顯示,則必須修改 Apache 的 DocumentRoot "/var/www/html" 路徑(不可包含 nfsen 目錄,自己遇到的情況是如此)。




沒有留言:

張貼留言

OCS Inventory 匯出資料到 Google 試算表(依電腦設備類型)

OCS Inventory 匯出到 Google 試算表的程式是從網路上其他高手分享出來( 參考資料出處 ),並依個人需求調整。 如要取用請注意,因程式是用 python 寫的,程式段落可能會移位導致無法正常運作。 下列程式調整SELECT電腦 設備類型 為Noteboo...