首页  ·  知识 ·  安全
Windows环境下网络流量监测与分析
网友  万方数据     编辑:德仔   图片来源:网络
互连网的迅猛发展。推动了社会信息化进程,奠定了新经济时代信息基础设施,网络将决定我们的生存方式,网络的质量直接影响了社会生活和经
 互连网的迅猛发展。推动了社会信息化进程,奠定了新经济时代信息基础设施,网络将决定我们的生存方式,网络的质量直接影响了社会生活和经济生活的方方面面。随着用户对网络性能要求的提高,如果没有一个高效的管理系统对网络系统进行管理。就不能保证网络的稳定运行和有序发展。就很难保证向用户提供令人满意的服务。而网络管理中。流量监测、统计分析是最基本的,是网管的基础,可以有效的帮助网络管理员进行网络管理。
    一、网络管理及现状
    在网络发展早期。网络规模非常小,网络管理几乎无事可做,对网络的管理停留在使用ICMP和PING的基础上。通常一个或几个系统管理员采用一些临时措施来完成初期的网络管理工作。一般,管理员开机登录。执行命令完成所需的管理操作。在能够使用诸如rlogin、rsh、telnet等远程访问的命令和程序后,管理工作相对简化了一些,因为管理员可以在某个地方连接到远端的多台机器。但这些机器必须处于正常的运行状态,远端访问才可用。UNIX系统工具比如“ping”常被用来检查某个设备是否已连接到网络,另外一个工具是“traceroute”,它能够跟踪数据包在网络上从一点到另外一点的路径,这个工具常用来清查网络配置。
    随着网络规模的增大,网络管理者需要知道有关计算机网络的大量信息以进行有效的管理,为了帮助网络管理者完成这些工作,逐渐出现了网络管理的概念。网络管理是控制一个复杂的计算机网络使得它具有最高的效率和生产力的过程。根据进行网络管理的系统的能力,这一过程通常包括数据收集、数据处理,然后提交给管理者,用于在网络操作中使用,它还包括分析敷据并提供解决方案,生成对管理网络有用的报告。
    网络管理系统不仅仅只是完成常规任务,作为发现问题的辅助手段,它可以持续的监视网络,还可以产生网络信息日志并利用这些信息日志去研究和分析网络。
    二、网络流量监测的意义
    网络流量监测主要为对网络数据进行连续的采集.通过连续采集网络数据监测网络的流量。获得网络流量数据后对其进行统计和计算。从而得到网络及其主要成分的性能指标。定期形成性能报表,并维护网络流量数据库或日志,存储网络及其主要成分的性能的历史数据,网络管理员根据当前的和历史的数据就可对网络及其主要成分的性能进行性能管理,通过数据分析获得性能的变化趋势。分析制约网络性能的瓶颈问题。此外,在网络性能异常的情况下网络流量监测系统还可向网络管理者进行告警,使故障及时得到处理。在网络流量监测的基础上,管理员可对感兴趣的网络管理对象设置阈值范围以配置网络阈值对象,阈值对象监控实时轮询网络获取定义对象的当前值。若超出阀值的上限和下限则报警,帮助管理员发现网络瓶颈,这样即可实现一定程度上的故障管理,而网络流量监测本身也涉及到安全管理方面的内容。
    所以,网络流量监测是网络管理中一个非常基础也非常重要的一个环节,研究网络流量监测是非常有意义的。
    三、网络流量监测方法
    从目前的研究和现实来看,网络流量监测主要有两种方法:一是网络侦听,二是直接读取对象的流量信息。
    第一种方法,是专门使用一台计算机在网络中侦听,但是需要满足一定的条件:所有到达对象的流量都能监听到,否则造成数据的不准确。网络对象以路由器为例,即可以采用让路由器和流量监测工作站在同一个物理网段上来实现这种方法。所以必须是完完全全的第一层的互连设备。流量监测工作站的网卡必须使用混杂模式,以便能接收到以太网上所有的报文。对于这种方法,优点是可以减少路由器的负担,能够让路由器更好的参与路由,缺点就是实现起来有些困难,如何确保完整的流量数据是工作的难点。
    第二种方法就是直接从网络对象获取数据。
    以路由器为例,从路由器取得流量数据有三种方式:
    一是通过SNMP(Simple Network Managenet Protocol)利用它的Get—Request和Get—NextBeq遍历整个MIB表得到。虽然这种方法由于其格式(ASN.1)复杂,所以实现比较麻烦,但目前很多语言都已有了支持SNMP的库函数,利用它们可直接得到网络流量数据。而且采用SNMP软件可移植性高,具有可以对不同厂家路由器进行流量监测的广泛性,而不需要或少量改动。
    二是利用AAA(认证、授权、计费),但是这种方法需要在UNIX工作站上建立相应的TACACS服务器,实施起来也不方便,在此就不详细介绍了。
    三是比较简单,就是模拟Telnet程序。登陆到路由器上,获取其MIB数据源。也就是说,通过编码模仿Telnet(借用它的23号端口),把Telnet的在终端屏幕上的输出(计费依据)定向到一个临时文件中.通过对这个临时文件的分析,就得到流量数据。
    相对于Teket,SNMP协议具有通用性。基于Telnet的流量监测系统虽然实现起来比较简单,但其通用性并不好,有很大的局限性。有时,为了安全,还会封闭到Telnet。相反的是SNMP协议H益发展.已经成为网络管理规范,基于SNMP保证了流量监测系统的通用性和重要性。因此在最终的系统中,使用了SNMP来采集数据。网络管理人员根据实际流量设定采集时间问隔,定时采集计费数据,这样的方式可以缓解SNMP采集数据较慢地缺点。
    综上所述,我们采用SNMP协议的方式直接从路由器上读取网络流量数据。四、网络流量测量的监听技术
    网络监听技术本来是提供给网络安全管理人员进行管理的工具,可以用来监视网络的状态、数据流动情况以及网络上传输的信息等。当信息以明文的形式在网络上传输时,使用监听技术进行攻击并不是一件难事,只要将网络接口设置成监听模式。便可以源源不断地将网上传输的信息截获。网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解词器之间等,最关键的是需要一个监听器。如果不需要特别的硬件的话,通常的监听器都是软件实现的。
    一个简单监听程序大体可以将监听程序分为两个组成部分:
    1、内核空间部分:负责从网络中捕获以及过滤数据包。
    2、用户空间部分:负责处理用户界面、格式化、协议分析.此外如果核心层没有进行过滤的话。还必须负责过滤部分工作。对于目前很流行的以太网协议,其工作方式是:将要发送的数据包发往连接在一起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。但是,当主机工作监听模式下,无论数据包中的目标地址是什么,主机都将接收。
    在因特网上有很多使用以太网协议的局域网,许多主机通过电缆、集线器连在一起,传输数据时,包含物理地址的帧从网络接口(网卡)发送到物理的线路上,如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输。能够到达线路上的每一台主机。当使用集线器时,由集线器再发向连接在集线器上的每一条线路,数字信号也能到达连接在集线器上的每一台主机。
    然而,当主机工作在监听模式下。所有的数据帧都将被交给上层协议软件处理,也就是IP层软件处理。而且,当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网的主机的数据包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。另外,现在网络中使用的大部分协议都是很早设计的,许多协议的实现都是基于一种非常友好的、通信的双方充分信任的基础之上,许多信息以明文发送。因此,如果用户的账户名和口令等信息也以明文的方式在网上传输,而此时一个黑客或网络攻击者正在进行网络监听,只要具有初步的网络和TCP/IP协议知识,便能轻易地从监听到的信息中提取出感兴趣的部分。同理,正确的使用网络监听技术也可以发现入侵并对入侵者进行追踪定位。在对网络犯罪进行侦查取证时获取有关犯罪行为的重要信息,成为打击网络犯罪的有力手段。
    五、网络流量监测与分析的程序
    维护网络安全的一项重要技术就是网络的实时监控,它要对网络上的所有数据进行检查。而现在的大部分操作系统是不允许用户这样做的,但是我们可以自己开发或者利用现有的低层的网络驱动程序来实现。目前UNIX环境下网络监控程序的开发包有很多,而Windows环境下的开发包很少,因为Windows的封装性特别强,开发困难大。该程序采用VC++6.0实现及实现需要用到的开发程序包Winpcap。
    该程序可以实现对局域网内数据包的截获,并对包分析。由于能力有限只针对以下协议分析:TCP、UDP、ICMP。然后可将监测的结果数据及时地保存在Access数据库中,必要的时候可以查询数据库中的历史记录。并删除某个记录。另外能够通过柱状图将一段时间内前几位的流量比例显示出来。显示效果的优化方面还做的不足,可用合适的控件来实现,所以还有待提高。
    在Windows下监听网络,应先设置网卡状态,使其处于混杂模式以便监听网络上的所有数据帧。然后调用Winpcap中的库函数来截取数据帧。关键函数是PacketReceivePacket()。
本文作者:网友 来源:万方数据
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的