Chinaunix首页 | 论坛 | 博客
  • 博客访问: 443075
  • 博文数量: 403
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -70
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-05 12:45
文章分类

全部博文(403)

文章存档

2014年(3)

2013年(1)

2012年(3)

2011年(21)

2010年(13)

2009年(64)

2008年(9)

2007年(36)

2006年(253)

分类: 系统运维

2006-08-01 18:26:04

在沒有高級的 cisco 時,該如何做 netflow 流量統計呢?

fprobe 會是你的好選擇...



安裝路徑在 /usr/ports/net-mgmt/fprobe/

不需要用什麼特殊參數...

裝完之後,假設你接 switch mirror port 的網卡是 bge0

則 /usr/local/sbin/fprobe -i bge0 127.0.0.1:9991

可以丟給本機 127.0.0.1 也可以丟到遠端的主機去..

這樣就會產生 netflow 的資料了..

再利用 flow-capture 來接收資料

/usr/local/bin/flow-capture -z 6 -n 143 -e 8928 -V 5 -w /home/netflow 127.0.0.1/127.0.0.1/9991

-z 壓縮比例 0-9

-n 一天產生幾份 netflow 檔案. 143 為每10分鐘一份 預設為 95 份 15min/per

-e 總共保留幾份 8928 是一個月

-V 板本..

-w 儲存資料夾

最後 localip/remoteip/port

接收端/發送端/連接埠

最後我通常會將這二個丟到 crontab 去..讓主機一開機便執行

@reboot (/usr/local/sbin/fprobe -i bge0 127.0.0.1:9991 ; /usr/local/bin/flow-capture -z 6 -n 143 -e 8928 -V 5 -w /home/netflow 127.0.0.1/127.0.0.1/9991) > /dev/null 2>&1

http://blog.jal.idv.tw/post/1/116

NetFlow 流量統計程式,由 netflow.nctu.edu.tw 取得,並依據 ericlin AT cabin.idv.tw,

所提供的修改,修改成可以使用 FreeBSD port tree 裡的 flow-tools



檔案列表

01.Show-mrtg.pl, 這是給 mrtg 的程式用的。寫的很潦草,有空再改。

02.TANet-10min.pl, 這是每 10 分鐘產生一次報表。

03.TANet-daily.pl, 每日流量報表

04.TANet-netflow.pl, 子程式檔案

(此為簡單版,並用 interface 為判斷依據,若要以 ip 判斷,請自行研究 Alpine-netflow.pl)

05.TANet-mysql.pl, 將流量資料塞進 MySQL

06.intranet, 內部網路清單

07.mrtg.10min.cfg, mrtg 讀 10 分鐘報表的設定檔

08.protocols, flow 檔產生 tcp udp icmp 的數字

09.services, 每日報表所要產生的 port 清單

10.services-10min, 每 10 分鐘所要產生的 port 清單

11.dnscan 是 Darkkiller 長輩提供的查詢網段反解的程式,好用!

不過請先安裝 p5-Net-Netmask



想使用 MySQL 的人:

使用之前請先按照這個網址的修正做修改,因為 port tree 裡的 flow-tools 中 flow-export對 MySQL 有問題



在編譯時請加上 --with-mysql=/usr/local (this is for FreeBSD)

以下是資料表的 table 結構

CREATE TABLE `Table_Name` (

`srcaddr` varchar(15) NOT NULL default '',

`dstaddr` varchar(15) NOT NULL default '',

`prot` smallint(2) NOT NULL default '0',

`srcport` smallint(6) NOT NULL default '0',

`dstport` smallint(6) NOT NULL default '0',

`dFlows` smallint(10) NOT NULL default '0',

`dPkts` smallint(10) NOT NULL default '0',

`dOctets` int(15) NOT NULL default '0'

) TYPE=MyISAM;

使用方式為

flow-export -f3 -mDOCTETS,SRCADDR,DSTADDR,SRCPORT,DSTPORT,PROT

-u "user:password:localhost:3306:database:table"

ft-v05.2004-10-20.001001+0800

如果要把所有欄位通通塞進去...

-mDFLOWS,DPKTS,DOCTETS,SRCADDR,DSTADDR,SRCPORT,DSTPORT,PROT

(不知道為什麼,只有這順序能跑)

若要上線使用的話請見 TANet-mysql.pl





給擁有 Interface 的使用者(使用高級的 router 或是 cisco 的 router):

你可以直接使用 TANet-netflow.pl 這個檔案,並修改當中 sub chkInOutNetwork 裡邊的

$sif 及 $dif 各分別是 Source Interface & Disternation Interface

相關資訊請查閱您自己的 router



給使用 mirror port 來做 流量統計的人:

請先研究 Alpine-netflow.pl 這個檔案,並修改裡面的內容符合您的需求,

這部分可以剔除 interface 判斷的部分,因為 mirror port 倒出來的 netflow 不會有 interface

所以全部都要使用 IP 來判斷進出。

至於 mirror port 的假設請參考 "fprobe + flow-capture 使用方式"



DarkKiller 大大曾經說過幾件作 netflow 一定要注意的事情:

詳情請至 kkcity 的 cszone 裡的 perl 版搜尋,不便直接引用

另外,也可以至 deer.twbbs.org 找,或是使用News Reader 讀取

group.nctu.edu.tw 上的 group.public.darkkiller 會有幫助的。



清大賴博士有寫了一套不正常流量檢測,據說很好用,

網址據他本人說不想流出,所以大家就想辦法找出來吧。



以下是下載網址



阅读(3151) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~