流量分析
所需主機:
nfsen伺服器一台:192.168.0.4(centos6.5)
需要:nfdump、nfsen、nfsight、PortTracker、HostStats、SURFmap
被監控主機一台:192.168.0.5(centos6.5)
需要:Fprobe
需要倒流的伺服器上安裝Fprobe
fprobe用于把流量導給nfsen
yum install libpcap-devel gcc -y
cd /root/soft
wget http://jaist.dl.sourceforge.net/project/fprobe/fprobe/1.1/fprobe-1.1.tar.bz2
tar jxvf fprobe-1.1.tar.bz2
cd fprobe-1.1
./configure
make
make install
安裝完成後,使用如下指令将eth0的流量導入到192.168.0.4(流量分析伺服器,預設端口9995) fprobe -i eth0 192.168.0.4:9995
在centos6.5上安裝nfsen及插件
通過Fprobe把流量導給 nfsen 機器,在再nfsen機器上安裝插件,分析流量狀況
網絡需求環境
内網nfsen伺服器
iptables -F
setenforce 0
如要使得外網能夠通路,需在網關做端口映射
所需編譯環境
yum install -y httpd php wget gcc make rrdtool-devel rrdtool-perl perl-MailTools perl-Socket6 flex byacc perl php-mysql gcc-c++
安裝nfdump,(nfsen安裝過程中需要)
mkdir /root/soft/
cd /root/soft/
wget http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.11/nfdump-1.6.11.tar.gz
tar -zxvf nfdump-1.6.11.tar.gz
cd nfdump-1.6.11
./configure --enable-nfprofile --enable-nftrack --enable-sflow --with-rrdpath=/usr/bin/
安裝nfsen
mkdir /var/www/netflow
chown apache:apache /var/www/netflow
wget http://iweb.dl.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
将etc/nfsen.conf中對應的值設定為如下值
$BASEDIR = "/var/www/netflow";
$USER = "apache";
$WWWUSER = "apache";
$WWWGROUP = "apache";
%sources = (
'upstream1' => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
);
開始安裝
./install.pl etc/nfsen.conf
啟動nfsen:
/var/www/netflow/bin/nfsen start
配置apache
vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/nfsen/
ServerName dummy-host.example.com
</VirtualHost>
檔案末尾添加就行
啟動apache,并通路http://192.168.0.4/nfsen.php
因為被監控主機已經向本機9995端口導入流量,是以開啟9995端口後就會接收到資訊
是以浏覽器通路到服務時已經有些許資訊了
設定啟動腳本
把nfsen添加到/etc/init.d/
touch /etc/init.d/nfsen
vi /etc/init.d/nfsen
添加如下内容:
#!/bin/bash
#
# chkconfig: - 50 50
# description: nfsen
DAEMON=/var/www/netflow/bin/nfsen
case "$1" in
start)
$DAEMON start
;;
stop)
$DAEMON stop
status)
$DAEMON status
restart)
sleep 1
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
添權重限設定開機啟動并啟動:
chmod 755 /etc/init.d/nfsen && chkconfig –add nfsen && chkconfig nfsen on
安裝Nfsight插件
wget http://sourceforge.net/projects/nfsight/files/nfsight-beta-20130323.tgz/download
tar zxvf download
cd nfsight-beta-20130323/
cp backend/nfsight.pm /var/www/netflow/plugins/
mkdir /var/www/netflow/plugins/nfsight
chown -R apache:apache /var/www/netflow/plugins/nfsight
mkdir /var/www/nfsen/nfsight
cp -r frontend/* /var/www/nfsen/nfsight/
#nfsight的安裝服務配置檔案
chown -R apache:apache /var/www/nfsen/nfsight
如果沒有安裝MySQL,先安裝啟動
yum install mysql-server -y
service mysqld start
chkconfig mysqld on
設定下mysql的root密碼為root(随意)
mysqladmin -uroot -p password 'root'
Mysql這裡預設密碼是空,回車即可
建立Mysql資料庫Nfsight:
mysql -u root -proot -e “create database nfsight;”
打開浏覽器,通路如下位址,開始安裝
http://ip/nfsight/installer.php
第一步
确定環境已經搭建好
第二步
URL:預設
允許登入主機:設定成你需要在哪台主機上浏覽此服務
管理者名稱:随意
ID:随意
密碼:随意
# 請記住自己的配置
第三步
Back-end settings設定頁中Path to data files設定為如下:
/var/www/netflow/plugins/nfsight
第四步
資料庫所在:如果是本機上裝的資料庫預設
資料庫端口:mysql為3306
資料庫使用者:我的為root
資料庫密碼:我的為root
資料庫名稱:我的為nfsight
最後一步:
将浏覽器上顯示的配置添加到/var/www/netflow/etc/nfsen.conf對應的選項下
下為示例請勿照抄
@plugins = (
[ '*', 'nfsight' ],
);
%PluginConf = (
nfsight => {
path => "/data/nfsen/plugins/nfsight",
expiration => "180",
network => {
"10.2.1.0" => "24",
"10.1.200.0" => "24",
},
scanner_limit => "5",
print_int_scanner => "1",
print_ext_scanner => "1",
print_int_client => "1",
print_ext_client => "1",
print_int_server => "1",
print_ext_server => "1",
print_int_invalid => "1",
print_ext_invalid => "1",
sql_host => "localhost",
sql_port => "3306",
sql_user => "nfsight",
sql_pass => "nfsight",
sql_db => "nfsight",
},
安裝完成後,重新開機服務
service nfsen restart
添加計劃任務
crontab -e
05 * * * * wget –no-check-certificate -q -O - http://management:[email protected]/nfsight/aggregate.php
通路 http://ip/nfsight
安裝PortTracker插件
cd /root/soft/nfsen-1.3.6p1/contrib/PortTracker
cp PortTracker.pm /var/www/netflow/plugins/
cp PortTracker.php /var/www/nfsen/plugins/
建立PortTracker資料存放目錄
目錄路徑可以在PortTracker.pm配置檔案中的PORTSDBDIR參數配置
vi /var/www/netflow/plugins/PortTracker.pm
修改PORTSDBDIR參數為/var/www/netflow/ports-db/
mkdir /var/www/netflow/ports-db/
chown -R apache:apache /var/www/netflow/ports-db/
chmod 775 /var/www/netflow/ports-db/
修改Nfsen配置檔案添加插件資訊: vi /var/www/netflow/etc/nfsen.conf
@plugins = (
# profile # module
# [ ‘*’, ‘demoplugin’ ],
[ ‘*’, ‘nfsight’ ],
[ ‘live’, ‘PortTracker’ ],
生成PortTracker資料: nftrack -I -d /var/www/netflow/ports-db/
重新加載Nfsen:
等5分鐘左右通路Nfsen界面選擇Plugins即可看到相應資訊
安裝HostStats插件
用hoststats,可以根據時間來顯示流量狀況.
wget http://jaist.dl.sourceforge.net/project/hoststats/hoststats-1.1.5.tar.gz
tar zxvf hoststats-1.1.5.tar.gz
cd hoststats-1.1.5
./install-libnfdump.sh
mkdir /var/www/hoststats
這個時候會提示要确認安裝路徑,輸入/var/www/hoststats
還要輸入資料與日志檔案目錄/var/www/hoststats/data-log
會在其下自動建立/data與/log目錄
修改目錄屬主屬組
chown apache:apache -R /var/www/hoststats
啟動
/var/www/hoststats/hoststats start
添加到/etc/rc.local,開機啟動
echo '/var/www/hoststats/hoststats start' /etc/rc.local
以上步驟完成後,稍等幾分鐘,即可在plugins菜單上看到界面.
安裝SURFmap插件
SURFmap可以通過google map來展示ip連接配接情況
yum install php-gd php-pdo sqlite php-mbstring -y
service httpd restart
wget http://sourceforge.net/projects/surfmap/files/install.sh
chmod +x install.sh
./install.sh
重新開機nfsen,稍等幾分鐘,再看界面.
/var/www/netflow/bin/nfsen reload
如此,http://IP/nfsen.php頁面中的Plugins下會顯示出SURFmap、HostStats、PortTracker