网络数据包分析工具的设计与实现(libpcap+apache+php)
无需注册登录,支付后按照提示操作即可获取该资料.
摘 要
当前,随着信息化发展,网络安全问题日渐突出,网络攻击日益泛滥,所以网络信息安全就变的非常重要。网络主机必须有足够的安全措施,否则网络的价值就会贬值。本系统的开发就是为了给网络使用者提供一个有用的网络数据包分析工具。本系统有四个主要功能:数据包的捕获、数据包解析、数据包信息分析和数据包信息的显示。为了实现系统功能,本系统选择在ubuntu(LINUX)、libpcap、apache、mysql和php的平台上开发,操作系统和软件开发包全部为开源免费的软件,这也是本系统的一个重要特点。本系统首先用libpcap捕获数据包,然后用C语言,并以TCP/IP协议为理论基础解析数据包,解析得到的信息存储到mysql数据库中。数据包信息分析模块从mysql数据库中读取数据,对信息进行统计分析,并对网络信息状况进行安全描述。最后通过apache和PHP技术来显示数据库信息。通过测试本系统实现了数据包捕获、解析、信息分析、信息显示,为使用者了解当前的网络数据包状况提供了很好的参考。
关键词:网络数据包;TCP/IP;数据包解析;数据包信息分析;攻击特征
The Design and Development of Tool about Network Packets Analysis
Abstract
Nowadays, with the development of information, the issue of network security is becoming prominent and the network attack is proliferation. Therefore, the security of network information is becoming very important. Network hosts must have adequate safety, or the value of the network would be devalued. The development of the system was to provide the users with a useful tool that analysis the network packets. The system has four main functions: capture the network packets, analysis the packet, analysis the information of packet and display packet information. To achieve the goal, I choose the system of ubuntu (LINUX), libpcap. apache, mysql and php platform to develop the system. The operating systems and software development kits are free, this is one of the system's features. The system used libpcap to capture data packets firstly, and then use the C language, and TCP / IP protocol as the basis theoretical to analytic packets, the database of mysql stored the result of Analysising information. Module of packet analysis reads the information from the database of mysql, statistic and analysis the information, and then describes security conditions. Finally, use the apache and PHP technology to display database information. Through the test of the system to achieve the goal that capture and analysis data packet, information analysis, display information, it is a good reference for users to keep up on the current state of network.
Key words: Network packets; TCP/IP; Packet analysis; Packet information analysis; Attack characteristic
本课题的理论基础
数据包的分析工具是在ubuntu+libpcap+apach+mysql+PHP的平台上进行设计。运用libpcap开发包进行网络设备的设置并进行数据包的抓捕,在解析模块中把获得的数据包按协议包头格式进行解析,并进行简单的解释,最后放到mysql数据库中等待后面统计分析模块的使用。统计分析模块中对数据库中的信息进行分类统计,获取所需要的数据信息,并与设定好的各种攻击特征进行比对,来对当前的主机安全状况进行简单的统计分析,另外,如果用户要进行手工分析,工具提供了可方便查询捕获数据包的包头信息页面。用户可通过这些数据进行手工分析来判断主机的状况。
整个系统的基础是建立在TCP/IP协议的基础上的。TCP/IP协议并不完全符合OSI的七层参考模型。OSI一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。[3]网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。另外还有TCP有连接协议,UDP,ICMP等协议。
系统模块划分
网络数据包分析工具有四个模块组成:一是 数据包的捕获,实现从网卡获取数据包。二是 数据包的解析,这两个模块是整个分析工具的基础部分,在整个系统中有着重要的作用,三是 捕获信息的分析,此模块主要是对捕获的信息进行统计,并与设定的特征值进行比较,得出简单的分析结论,四是 显示捕获数据包的信息,目的是为使用者提供一个方便进行手工分析的方式。四个模块之间的调用关系如图1。
数据包捕获模块设计
此模块是先从网卡获取各种数据包信息并复制到缓存,等待解析模块的调用。这个模块的关键部分是快速的捕获数据包,减少丢包的比率。
数据包捕获是以以太网为基础的。以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输。IEEE802.3标准的以太网采用的是持续 CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信息,这是捕获数据包的物理基础。[1]
以太网是一种总线型的网络,从逻辑上来看是由一条总线和多个连接在总线上的站点所组成各个站点采用上面提到的 CSMA/CD 协议进行信道的争用和共享。每个站点(这里特指计算机通过的接口卡)网卡来实现这种功能。网卡主要的工作是完成对于总线当前状态的探测,确定是否进行数据 的传送,判断每个物理数据帧目的地是否为本站地址,如果不匹配,则说明不是发送到本站的而将它丢弃。如果是的话,接收该数据帧,进行物理数据帧的 CRC 校验,然后将数据帧提交给LLC 子层。[1]
目 录
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 1
1.4 本课题的理论基础 1
2 网络数据包分析系统概述 2
2.1 网络数据包分析的意义 2
2.2 网络数据包分析的核心技术基础 2
2.3 网络数据包分析系统的主要功能 2
3 网络数据包分析系统的设计 3
3.1 系统模块划分 3
3.2 数据包捕获模块设计 4
3.3 数据包解析存储模块设计 4
3.4 数据包信息分析模块设计 5
3.5 数据包信息显示模块设计 6
4 网络数据包分析系统的解决方案 6
4.1 数据包捕获模块的解决方案 7
4.2 数据包解析及存储模块解决方案 7
4.3 数据包信息分析模块解决方案 8
4.4 数据显示模块解决方案 8
5 网络数据包分析系统的实现 8
(优秀毕业设计:www.2bysj.cn)
5.1 系统控制模块实现 9
5.2 数据包捕获模块实现 10
5.3 数据包解析及存储模块实现 12
5.4 数据包信息分析模块实现 14
5.5 数据包信息显示模块实现 15
6 网络数据包分析系统的测试分析 17
6.1 测试方案与测试环境 17
6.2 测试结果 17
6.2.1 数据包捕获 17
6.2.2 数据包解析及存储 17
6.2.3 数据包信息简单分析 18
6.2.4 数据包信息显示 19
结 论 20
参考文献 21
致 谢 22
声 明 23
附 录 24