免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7916 | 回复: 13

[FreeBSD] [原创]Netflow(FreeBSD) [复制链接]

论坛徽章:
0
发表于 2005-12-13 09:46 |显示全部楼层
Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来是,它更加易于管理和易读。Netflow由Cisco创造。

这篇文章主要参考http://www.onlamp.com/lpt/a/6137http://www.onlamp.com/lpt/a/6177这两篇文章,由于自行加入了ng_netflow和修改了部分程序,勉强算做原创吧

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.配置

1./boot/loader.conf

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/监听端口

其中,/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

由于一段时间来没有官方的升级版本,所以要从这里

http://net.doit.wisc.edu/~plonka ... 0848/01-FlowScan.pm

下载升级版本(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

在这里(http://www.columbia.edu/acis/networks/advanced/CUFlow/)下载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.浏览

http://youip/topten.html #Top10列表

http://youip/overall.html #总汇总列表

http://youip/cgi-bin/CUGrapher.pl #可定制输出

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;

}

---------------------------------------------------------------------------------

找到上面这部分,全部注释掉。

由于我较懒,所以采用了回避(注释)的方法。

图形结果也许不那么令你满意,当然,你可以根据自己的需要修改CUGrapher.pl来定制。如果你有改好的文档,十分感谢能告诉我。

论坛徽章:
0
发表于 2005-12-13 10:18 |显示全部楼层
这么好的帖子值得珍藏!

论坛徽章:
0
发表于 2005-12-13 10:37 |显示全部楼层
原帖由 mafa 于 2005-12-13 10:18 发表
这么好的帖子值得珍藏!

呵呵,谢谢!希望能对大家有所帮助!

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
发表于 2005-12-13 12:36 |显示全部楼层
为什么不上个截图?

论坛徽章:
0
发表于 2005-12-13 14:31 |显示全部楼层
原帖由 bdwy 于 2005-12-13 12:36 发表
为什么不上个截图?

不会在论坛上发图。

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
发表于 2005-12-13 14:46 |显示全部楼层
原帖由 eliumao 于 2005-12-13 14:31 发表

不会在论坛上发图。

倒.新贴在输验证码的那一页.
编辑的话应该编辑时就可以加上.

论坛徽章:
0
发表于 2005-12-13 14:48 |显示全部楼层
原帖由 congli 于 2005-12-13 14:46 发表

倒.新贴在输验证码的那一页.
编辑的话应该编辑时就可以加上.


知道了,下次注意。
我会试试的。
谢谢!

论坛徽章:
0
发表于 2005-12-13 17:49 |显示全部楼层
不错!~

论坛徽章:
0
发表于 2005-12-13 22:17 |显示全部楼层
灭图不过瘾。

论坛徽章:
0
发表于 2008-08-23 21:42 |显示全部楼层
很好  谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2021中国数据库技术大会

【数造未来】2021年10月18日-20日第十二届中国数据库技术大会
ITPUB、大会的会员您们好: 因目前国内疫情严峻,为响应北京市最新疫情防控要求,保障参会人员的健康和安全,组委会经协商决定:DTCC2021第十二届中国数据库技术大会延期至10月18日-20日(周一~周三)在北京国际会议中心举行,由此给各位带来的不便,敬请谅解!

大会官网
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP