歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> BSD

Netflow(FreeBSD)


本文為轉貼
Netflow提供網絡流量的會話級視圖,記錄下每個TCP/IP事務的信息。也許它不能象tcpdump那樣提供網絡流量的完整記錄,但是當匯集起來是,它更加易於管理和易讀。Netflow由Cisco創造。
Netflow
Netflow提供網絡流量的會話級視圖,記錄下每個TCP/IP事務的信息。也許它不能象tcpdump那樣提供網絡流量的完整記錄,但是當匯集起來是,它更加易於管理和易讀。Netflow由Cisco創造。
Netflow結構
一個Netflow系統包括三個主要部分:探測器,采集器,報告系統。探測器是用來監聽網絡數據的。采集器是用來收集探測器傳來的數據的。報告系統是用來從采集器收集到的數據產生易讀的報告的。
探測器設置
探測器有很多種,常用的如softflowd,freebsd自帶的ng_netflow。
(1)softflowd
a.安裝
#/usr/ports/net-mgmt/softflowd/make install clean
b.運行
#softflowd -i 監聽網卡 -n 采集器IP:端口
c。監控程序
#softflowctl statistics 查看狀態,還有很多參數,自己看man
(2)ng_netflow
a.配置
ng_ether_load="YES"
ng_one2many_load="YES"
2.ng配置文件/etc/ng_conf
mkpeer 監聽網卡: netflow lower iface0
name 監聽網卡:lower netflow
connect 監聽網卡: netflow: upper out0
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow:export connect inet/采集器IP:端口
b.運行
#/usr/sbin/ngctl -f /etc/ng_conf
如果需要自動運行,需要在/usr/local/etc/rc.d/目錄下加入相應的啟動腳本
采集器設置
(1)安裝flow-tools
#/usr/ports/net-mgmt/flow-tools/make install clean
(2)運行
#/usr/local/bin/flow-capture -p /var/run/flow-capture.pid -n 287 -N 0 -w /var/log/netflows/ -S 5 本地監聽IP/遠端IP/監聽端口
:D
其中,/var/log/netflows/目錄為日志目錄,需要手動創建;本地監聽IP為0,則在所有IP監聽;遠端IP為0,接受任意探測器的數據;其它可以不用更改。
一旦啟動flow-capture,日志目錄下就會出現日志文件。例如tmp-v05.2005-12-12.174000+0800,表示臨時的,Netflow版本5的數據,采集開始時間是2005-12-12,17:40:00,距離GMT(標准時間)+8小時。每隔5分鐘,flow-capture就會把臨時文件移動到永久位置,並開始記錄新的臨時文件。永久文件就是把tmp替換成ft,文件名的其它部分一樣,文件也在同樣的日志目錄下。
報告系統
(1)Cflow.pm
日志文件是二進制形式,需要特殊的工具閱讀。很多工具均利用Cflow.pm。你可以把它當作一個簡單的命令行工具。
a.安裝
#/usr/ports/net-mgmt/p5-Cflow/make install
注意,這裡沒有用"clean"這個參數,因為,安裝過程可能出錯,錯誤提示包括這樣一行
"Note (probably harmless): No library found for -lnsl"
如果是這樣你還需要做下面的工作:
# cd /usr/ports/net-mgmt/flow-tools/work/flow-tools-0.68/contrib
# tar -xzvf Cflow-1.051.tar.gz
# cd Cflow-1.051
# perl Makefile.PL
# make
# make install
這樣才算安裝成功,可以"clean"了
b.使用
#flowdumper -s ft-v05.2005-12-12.174000+0800
後面會出來很多記錄信息。結果很容易閱讀。但是沒有我們關心的匯總之類的圖形化的東西,當然你可以在flowdumper的基礎上自行書寫程序,但是,當然,肯定已經有很多非常棒的程序在那裡等著我們了。
(2)flowscan和CUFlow
flowscan是把采集器采集到的數據(/var/log/netflows/ft-*)分類整理,輸出rrd格式的文件;CUFlow是flowscan使用的模塊(或者插件)。同時CUFlow包含一個程序,方便我們通過WEB訪問定制的圖形化數據。
a.flowscan設置
1.安裝:
#/usr/ports/net-mgmt/flowscan/make install clean
由於一段時間來沒有官方的升級版本,所以要從這裡
下載升級版本(V1.5至V1.6)才能正確處理日志數據。然後
#cp 01-FlowScan.pm /usr/local/var/db/flows/bin/FlowScan.pm
2.配置:
#cd /usr/local/var/db/flows/bin/;
#cp flowscan.cf.sample flowscan.cf
#vi flowscan.cf /*修改配置文件flowscan.cf*/
------------------------------------------------------------------------------
FlowFileGlob /var/log/netflows/ft-v*[0-9] #需要分析的數據的位置
ReportClasses CUFlow #使用的分析模塊
WaitSeconds 300 #分析數據產生間隔,單位是秒,這裡是5分鐘
Verbose 1 #詳細日志,但是可以在系統調試完成後關閉它,設置為0
------------------------------------------------------------------------------
b.配置CUFlow
#tar xvfz CUFlow-1.5.tgz;cd CUFlow-1.5
#cp CUFlow.pm CUFlow.cf /usr/local/var/db/flows/bin
#vi CUFlow.cf /*修改配置文件CUFlow.cf*/
---------------------------------------------------------------------------------------
Subnet 192.168.2/23 #告訴CUFlow內網的IP段高,意區分外出和進入流量
Network 192.168.1.3,192.168.1.5 webservers #設置要分別處理的流量,當然你
Network 192.168.1.9,192.168.1.1 mailservers #會得到分別的數據顯示。注意:
Network 192.168.1.0/25 infrastructure #設置的地址可以交疊
OutputDir /var/log/cuflow #輸出結果的位置(RRD)
Scoreboard 10 /usr/local/www/data/scoreboard /usr/local/www/data/scoreboard/topten.html
#產生過去5分鐘內TopN用戶的網頁,這裡N是10,就是頭10位最大用戶
AggregateScore 10 /var/log/cuflow/agg.dat /usr/local/www/data/overall.html
#產生所有5分鐘采樣的平均值,這裡是頭10位
Router 192.168.1.1 fred #如果你的網絡有比較復雜,多個網段都有自己的探測器,這裡就是區分各個
Router 192.168.2.1 barney #不同的探測器的流量
Service 20-21/tcp ftp #你感興趣的服務,可以很多,可以自定義
Service 22/tcp ssh
Service 23/tcp telnet
Protocol 1 icmp #你感興趣的協議
Protocol 6 tcp
Protocol 17 udp
#ASNumber 1 Genuity #這一項是Cisco專用的,所以我注釋掉了
----------------------------------------------------------------------------------------
#mkdir /var/log/cuflow
#mkdir /usr/local/www/data/scoreboard
c.運行:
# /usr/local/var/db/flows/bin/flowscan
可以看到flowscan開始處理/var/log/netflows/下的文件了,處理完後就會sleep等待300秒了。
d.啟動腳本
# cp /usr/local/etc/rc.d/cflowd-flowscan.sh.sample /usr/local/etc/rc.d/cflowd-flowscan.sh
日志在/var/log/flowscan.log
(3)圖形結果
a.還記得剛才那個CUFlow的包麼,裡面有一個叫做CUGrapher.pl的文件,把它復制到/usr/local/www/cgi-bin/下。
b.修改
#vi /usr/local/www/cgi-bin/CUGrapher.pl
--------------------------------------------------------------------------------
my $rrddir = "/var/log/cuflow"; #要處理的rrd文件的位置
my $organization = "My Network"; #修改成自己公司的名字
--------------------------------------------------------------------------------
c.浏覽
d.如果你配置無誤,並且幸運的話,一切都會正常。但是我在這裡遇到了問題。有些(除了Network之外的幾乎全部)選項無法產生圖象。在google了一通未能找到答案後,開始了痛苦的程序debug過程。好在CUGrapher.pl是個perl程序,並不很長,讓我找到了問題的所在。需要修改一下CUGrapher.pl這個文件:
# vi CUGrapher.pl
--------------------------------------------------------------------------------
# router name
if( scalar @} || scalar @} || scalar @}
|| exists $total ) {
push @args, 'COMMENT: Router: '.$r;
}
---------------------------------------------------------------------------------
找到上面這部分,全部注釋掉。
Copyright © Linux教程網 All Rights Reserved