安裝 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)
# wget ftp://rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/libpcap-devel-1.5.3-8.el7.x86_64.rpm
php-mbstring (php-mbstring-5.4.16-42.el7.x86_64.rpm,HostStats plugin 會使用的套件 )
# wget ftp://rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/php-mbstring-5.4.16-42.el7.x86_64.rpm
rrdtool (rrdtool-1.4.8-9.el7.x86_64.rpm,這個可以用 yum 安裝,但須和另兩個 rrdtool 套件版本要相同,所以一起下載)
rrdtool-devel (rrdtool-devel-1.4.8-9.el7.x86_64.rpm)
# wget ftp://rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/rrdtool-devel-1.4.8-9.el7.x86_64.rpm
rrdtool-perl (rrdtool-perl-1.4.8-9.el7.x86_64.rpm)
# wget ftp://rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/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.pm 及 Lookup.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 目錄,自己遇到的情況是如此)。
沒有留言:
張貼留言