顯示具有 Oracle 標籤的文章。 顯示所有文章
顯示具有 Oracle 標籤的文章。 顯示所有文章

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 目錄,自己遇到的情況是如此)。




CubeCOS 虛擬機刪除網路介面,且主機內沒有 virtio 驅動程式成為孤島主機時,進行 virtio iso 掛載流程

 # 當 CubeCOS 虛擬機刪除網路介面,且主機內沒有 virtio 驅動程式成為孤島主機時,進行 virtio iso 掛載流程。 # 步驟一:確認目標虛擬機的底層名稱 # 在 Compute Node(計算節點)上列出運行中的 instance,並反查對應的 OpenSt...