1、论文题目:基于旁路的Web访问监控系统的设计与实现学生姓名:指导教师:摘 要在实验室或者办公室,管理员总是希望学生或员工可以专心自己的任务,而不去浏览观看与学习或工作无关的网页或网站。因而,当学生或员工输入无关网址时,管理员的服务器可以抢在其打开网页前与其进行“握手”并发送管理员提前准备好的页面,从而阻止了其正常访问,提高了学习工作效率。首先介绍了不良网站对于正常网络的入侵以及危害,通过把网卡设置为混杂模式实现了捕获数据包的操作,从而有效的对于整个网络进行监听,通过IP包过滤模块把HTTP中除GET包和POST包过滤掉,提取出URL地址,然后与事先准备的数据库黑名单网址进行匹配,来判断出哪些是
2、对工作或学习无关的网址,进而拦截其访问,达到了净化网络环境的目的。最后,针对该系统实施了详细的性能和功能的测试,使功能完整,且系统的性能有一定的优化。关 键 词:混杂模式 捕获数据包 网页Title: Base on the bypass web access montitoring system deisign and implementationName: Supervisor: AbstractIn the laboratory or office, administrators or employees can always expect students to concentrate
3、 on their own tasks, rather than to browse watch and study or work unrelated pages or sites. Thus, when students or staff independent of the input URL, the server administrator can grab it on the page in front of their handshake prepared in advance and send the administrator page, thus preventing it
4、s normal access, improve the learning efficiency.First introduced the bad sites for normal network intrusion and damage, the card is set by the operator to achieve a packet capture to promiscuous mode, so as to effectively monitor the entire network through IP packet filtering module in addition to
5、the HTTP GET and POST package packet filter to extract the URL address, and then prepared a database with URL blacklist matching to determine which is unrelated to work or study site, thus blocking its access to the network environment to achieve the purpose of purification.Finally, a detailed embod
6、iment of the system for testing the performance and functionality, so that the functional integrity and performance of the system with some optimization.KEY WORDS: Library management system; Cache; efficient1绪论11.1课题背景61.2国内外发展现状61.3本文主要任务81.4论文的组织结构82.相关知识理论92.1 OSI参考模型92.2 TCP/IP体系结构102.3 OSI与TCP/
7、IP的比较112.4 HTTP协议122.5 IP协议132.6数据捕获函数的一些函数152.7本章小结163.需求分析183.1可行性分析183.1.1技术可行性183.1.2经济可行性183.1.3社会可行性193.2系统需求分析193.2.1 功能需求193.2.2 性能需求233.2.3运行需求243.2.4安全需求分析244系统设计264.1网络监听模块264.2拦截策略控制模块274.3 IP包分析模块284.3.1IP包过滤模块284.3.2网址匹配模块314.4网页拦截模块324.5数据更新模块344.6消息提示模块355.系统测试375.1系统开发环境375.2系统测试376
8、.总结与展望406.1总结406.2展望411绪论1.1课题背景随着计算机网络的快速发展,给人们的工作和生活带来了极大的便利。1970年之后,网络环境日益恶化,网络信息安全第一次作为一个独立的学科来进行研究,但是当时侧重的是研究针对类似于访问控制安全策略、访问数据加密特定信息系统的一些控制手段。1990年之后,网络病毒、黑客攻击事件泛滥,网络非法入侵问题已经在全球范围内泛滥,并且呈现出越演越烈的趋势。虽然网络非法入侵问题给各个企业带来了不同程度的损害,但是计算机网络搭建了一个互相沟通学习的环境,包括了各个学科和不同领域的知识,能够很大的提高员工的工作学习效率,因此在学习工作中应用计算机网络得到
9、了支持。由于网络带来了无可比拟的方便,许多员工不能正确使用网络,这样不能给企业带来利益。并且,网络除了提供学习交流的资料之外,还有很多不利于社会和个人正常发展的内容,尤其是对缺少基本判别能力的青少年的危害不小。所以,这篇论文综合了网址匹配、过滤技术和网络监测技术,提出了一个通过Web访问监测途径,当学生或员工输入无关网址时,管理员的服务器可以抢在其打开网页前与其进行“握手”并发送管理员提前准备好的页面,从而阻止了其正常访问,提高了学习工作效率。通过该方法设计并实现了一个用户上网行为监控系统,该系统不仅能够为员工过滤掉不健康的网址,还能够记录员工上网记录,及时察觉并拦截他们的行为,一是能够帮助员
10、工过滤掉不健康的信息,二是可以监视员工的网络上的行为动机,降低受到攻击几率,从而保证工作环境的安全性。1.2国内外发展现状阻止非健康网页一般有两种方法:一是杀毒软件,另一个是防火墙。杀毒软件既可以在本机上装载也可以在本机上卸载,由于这种方法相对来说比较经济实惠,多适用于家长对于不太懂计算机技术的孩子防止他们浏览不健康的网页,对于年龄稍大并且有一部分计算机基础的孩子,杀毒软件这种方法基本没有什么用,由于每台设备都要安装一遍,所以这种方法管理起来有些不方便。 20世纪90年代,江民杀毒软件遥遥领先于其他杀毒软件。到了21世纪初,江民,瑞星,金山毒霸三足鼎立,再到现在的360,可牛,东方微点等杀毒软
11、件的挤入,杀毒软件的发展呈现多元化的趋势。一种方法是防火墙,他部署在受保护网络的边界,通过一些管理者设置的原则检查通过网络的流量,来决定是否允许还是拒绝访问这个网页。这种方法只需安装在服务器上,所以管理起来比较方便,但是当上网人数过多的时候,导致网络延迟,成为网络的瓶颈。在防止非法网络入侵的领域,有两个人将永载史册。 一是俄罗斯的eugene kaspersky。从1989年,eugene kaspersky进行有关计算机病毒现象的研究。20世纪90年代,他在莫斯科一个大型计算机公司kami的信息技术中心,在助手的帮助下研发出了arginine vasopessin反病毒编程程序。kasper
12、sky lab于1997年成立,eugene kaspersky是创始人之一。2000年11月,avp更名为kaspersky anti-virus。eugene kaspersky是caro的成员,该协会包括了国际顶级的反病毒大师。avp的反病毒引擎和病毒库,在业界有很好的杀毒口碑。 另一位是doctor soloman。他创建的doctor soloman,这个公司曾经是欧洲最领先的杀毒软件公司,接着就被mcafee收购,成为安全托拉斯nai的一部分。在早些时候,mcafee与欧洲的同行发生了不太愉快的合作,但是由于自身杀毒引擎并不具备自己的特色,于是mcafee停用之前的杀毒引擎,转而使
13、用兼并来自于doctor soloman产品的杀毒引擎。2009年6月,微软开始正式举行了Microsoft Security Essentials(简称MSE)新版杀毒软件的测试。此次测试版仅对Windows XP、Vista及Windows 7等微软旗下的三大终端Microsoft操作系统提供支持,首批测试版将仅支持English、Brazilian、Portuguese语等三种语言种类。本次微软向用户提供免费的杀毒软件,是因为微软实行市场扩张和正版推动策略。这个举动可能带来杀毒软件市场的震动,对于其他公司的杀毒软件的研发产生巨大影响。本文所做的弥补了前两种方法的缺陷,通过监听网络上的数据
14、,从而分析出哪些网址是不允许被访问的,拦截这个网页。这个方法的优点是管理起来方便,不会导致网络的延迟。1.3本文主要任务本文的主要任务是维护一个良好、绿色的网络学习办公环境,面对日益猖獗的网络攻击以及非法网站的入侵,采取Web访问监控系统予以拦截。通过网络监听模块、IP包过滤、网址匹配模块等主要模块实现其功能,然后进行了详细的设计部分,最后是测试阶段。1.4论文的组织结构第一章主要介绍了论文的研究背景,国内外的发展现状;第二章主要介绍了相关研究理论,主要是OSI模型各个层的功能,TCP/IP体系以及两者的比较,HTTP协议和IP协议的基本知识以及数据包捕获的一些理论知识;第三章主要是需求分析,
15、介绍了设计系统时候的需求,有软件需求以及硬件需求;第四章主要是设计模块,各个模块的需求进行完善而详尽的设计;第五章是对所设计的系统进行了测试,包括功能测试以及性能测试,对测试的内容进行了详细的分析;第六章对本文进行了总体阐述以及对论文中由于技术或非技术原因而没有实现的部分进行展望;附录是附录的参考英文文献以及翻译。2.相关知识理论2.1 OSI参考模型OSI模型是1995年进行了修订,其基础是国际标准化组织的一份提案,其结构如图1所示。不难发现,OSI一共有七层,每一层都实现不同的功能:(1)物理层,其主要任务是在通信信道传输0或1二进制数据流这样的比特流,数据的基本单位是比特。物理层要保证当
16、一端发送比特位0时,另一端接收到的也是比特0,而不是比特1,因此,物理层要决定使用多少伏的电压来表示比特0,每一个比特持续多长时间,传输是否要求从两个方向同时进行,初始物理如何建立;(2)数据链路层,让发送端将输入的数据拆开,并且分装到数据帧中,然后再将这些数据帧按顺序传送(如果是可靠的服务,接收端必须确认每个帧都能准确无误的收到,即发送给发送端一个确认帧);(3)网络层,是对子网运行过程的控制。从源端到目的端的途径可以建立在静态表的设计之上,这些途径可以在每一次会话的开始就确定下来,也可以是高度动态的;(4)传输层,它的基本功能是接受来自于上一层的数据,并且在必要的时候把这些数据单元切割成更
17、小的单元,紧接着把这些数据单元准确无误的发送到网络层。这一层还决定了它的上一层(会话层)哪种类型的服务,例如完全无差错的点到点信道;(5)会话层,类似于两个人之间的交谈,它的功能就是在传输层服务的基础上增加控制会话的机制,建立、组织和协调应用进程的交互过程。会话层提供的会话服务种类包括双工(双向同时)、半双工(双向交替)和单工(单向);(6)表示层,规定应用程序或者用户之间交换数据的格式,提供数据之间的转换服务,确保传输的数据在到达目的端后不发生改变。数据转换任务涵盖了不同类型的计算机内部的格式转换,密码转换和文本压缩转换;(7)应用层,直接面向用户应用,为用户提供对各种网络资源的访问服务。O
18、SI系统参考模型如图2.1所示:图2.1 OSI参考模型2.2 TCP/IP体系结构TCP/IP模型也被称作DoD模型(Department of Defense Model)。TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议)。1983年1月1日,在因特网的前身(ARPA网)中,TCP/IP协议取代了旧的网络控制协议(NCP,Network Control Protocol),从而成为今天的网络的基石。TCP/IP的体系结构如图2.2所示。 图2.2 OSI与TCP/IP对照TCP/IP在设计时重点并没有放在具体通信的实现上,所以对最后两层没有做出具体规定,同时表明它
19、允许不同类型的通信网络参与通信。它的四个层次功能如下。(1)网络接口层,任务是从物理网络接收数据帧,提取IP数据报给网际层或将网际层的IP数据报通过物理网络发送,因为没有具体的网络接口层的协议,从而保证了其灵活性,从而可以在不同物理网络适用,如LAN、MAN,严格上它并不是一个独立的层次,仅仅是一个接口,TCP/IP并没有对它定义具体的内容;(2)网际层,提供一种无连接、不可靠却又竭尽所能的数据报传输服务,把数据在源主机和目的端主机之间传送。通过牺牲一些非必须的操作来保证高效的传输速度;(3)传输层,提供端到端的应用程序之间的通信,可以使用传输控制协议TCP(Transmission Cont
20、rol Protocol)或用户数据报协议UDP(User Datagram Protocol)协议,TCP提供面向连接的可靠的源端口到目的端口的传输服务,它可以在低层不可靠的情况下提供可靠的传输机制。UDP提供无连接不可靠的源端口到目的端口的传输服务,由于不需要提前建立连接,因此传输的效率高;(4)应用层,提供面向用户的网络服务。2.3 OSI与TCP/IP的比较两者都是通过协议栈的概念为基础的,而且在其中的协议是相互独立的。两个模型各个层次中的功能也大致相同:网络接口层(TCP/IP)对应OSI的物理层和数据链路层(OSI),网际层(TCP/IP)对应网络层和传输层(OSI),传输层(TC
21、P/IP)对应对应传输层(OSI),应用层(TCP/IP)对应会话层表示层和应用层(OSI)。而且,传输层上面的各个层都是传输服务的用户,并且都是面向应用的用户。TCP/IP是协议先出现,而OSI正好相反,在参考模型之后才出现的,因此OSI模型不会偏向于任何一个特定的协议,适用的范围更加大。虽然它们实现的功能大致相同,但是它们划分的层次和数目也是一个不同点,另外,无连接和面向连接的通信范围也有所不同,OSI的网络层两种连接同时支持,但是传输层知识支持面向连接的通信。TCP/IP的网际层只有无线连接通信一种模式,但在传输层同时支持无线连接和面向连接的两种通信模式。2.4 HTTP协议超文本传输协
22、议HTTP(Hyper Test Transfer Protocol)定义了Web用户(本质是浏览器)在Web服务器请求Web对象,和Web服务器怎么把Web对象传给Web用户的过程。这是一种请求和响应的模式。如果用户输入一个网址(请求一个Web访问)的时候,浏览器就把该页面的每一个Web对象的HTTP请求发到Web服务器上。当它收到这些消息的时候,就发送包含上述对象的HTTP响应消息。其工作模式如图所示。图2.3 HTTP工作模式HTTP有两种连接,持久连接(persistent connection)和非持久连接(no persistent connection)。在这里重点说明一下HTT
23、P的非持久连接。非持久连接的工作过程主要由以下几个步骤组成:(1) 浏览器(客户端)向Web服务器发送TCP连接建立请求。(2) 当得到Web服务器允许后,客户端(浏览器)向Web服务器发出一个数据帧,其中包括请求的方法、URL、用户信息等内容。 (3) Web服务器接收到请求之后,会发送一个状态行。(4) Web服务器断开TCP连接。步骤(2)请求行中包含了下列的信息:(1)方法,如下图2.4所示:图2.4 HTTP请求报文(2)统一资源定界符URL:用于指明要下载的Web对象的位置。 (3)HTTP的版本号,现在版本主要为1.1.步骤(3)响应如图2.5所示:图2.5 HTTP响应报文2.
24、5 IP协议IP协议是TCP/IP协议网络层中的主要成员。它提供无连接的数据报传送机制。IP协议的实现十分简单,它提供了“尽力而为的服务(Best-effort Service)”,意思是它并不能担保传输是正确的。IP协议只是负责将分组发送到目标结点上,它不能确保是按分组的准确次序发送的。IP协议大致可以实现以下几个功能:(1) 无连接的数据报发送;(2) IP路由;(3) 分组的重组和分段;IP包的格式如下图所示:图2.6 IP包格式一个IP包由两部分构成,分别是首部和数据量。IP包首部固定部分各字段意义如下:(1)版本:长度为4比特。表示与IP分组对应的IP协议版本号。目前广泛采用的是版本
25、4的IP协议,即IPv4。(2)分组头长域:长度为4比特。用于指明IP分组头的长度,其单位是4个字节。因为IP分组头长度不是固定不变的,所以分组头长域是不可或缺的。(3)服务类型:长度为8比特。用于指明IP分组所要求得到的有关优先级、准确性、处理量、延迟等方面的服务质量要求。(4)总长度域:长度为16比特,用于指明IP分组的总长度,单位是字节,包括分组头和数据区长度。由于总长度域为16比特,所以IP分组最多可以有65536个字节。 (5)标识符域:长度为16比特,用于唯一标识IP分组。标识符域是IP分组在传输中实行重组和分段所必备的。(6)标志域:长度为3比特。在3比特中有1位被保留,另外两位
26、中:DF用于指明IP分组是否允许分段,MF用于表明是否有后续分段。(7)(报文)片偏移量域:长度为13比特。以8个字节为单位,用来指明当前报文片在原始分组中的位置,这是分段和重组的前提条件。(8)生存时间域:长度为8比特,用于指明IP分组可在网络中传输的最长时间,这个数值每通过一个路由时要减1,直至减到0时,这个分组就会被舍弃。这个域用来保障IP分组不会在网络出现错误的时候发生无限的传输这种现象。(9)协议域:长度为8比特。用来指明调用IP协议进行传输的高层协议,高层协议的编号由TCP/IP中央权威管理机构统一分配。例如:ICMP的值为1(十进制),TCP的值为6,UDP的值为17。(10)分
27、组头校验和域:长度为16比特。用来保障IP分组头的完整性。其算法为:该域初始值为0,然后对IP分组头以每16位为单位进行求异或和,然后将所得到的结构取反,从而得到校验和。(11)源地址域:长度为32比特。用来指明发送IP分组的源主机的IP地址。(12)目的地址域:长度为32比特。用来指明接收IP分组的目的主机的IP地址。(13)任选项域:长度不是固定不变的,是可以变化的。该域允许在以后的版本中包括在当前的设计的分组头中未出现的信息,该域的使用有一些特殊的规定。(14)填充域 长度固定不变。因为IP分组头必须是4字节的整数倍,所以当使用任选项的IP分组头长度不足4字节的整数倍时候,必须用0填入填
28、充域来满足这一要求。2.6数据捕获函数的一些函数(1)启动函数WSAStartupint PASCAL FAR WSAStartup (DWORD wVersionRequested , LPWSADATA lpWSAData);所有的套接字应用程序都首先运行这个函数完成初始化工作,仅仅当完成调用返回后,才可以使用套接字,括号中wVersionRequested是版本号,参数lpWSAData是指向WSADATA结构的指针。(2)套接字创建函数socketSOCKET socket (int af , int type , int protocol);socket函数就是为每个通信的建立创建一
29、个套接字,括号中af全称是address family, UDP或TCP的决定即将要建立的套接字的时候,需要设置af为AF_INET。括号中type是指套接字的类型,有几种形式SOCK_STREAM(流式), SOCK_DGRAM(数据报), SOCK_RAW(原始)。(3)绑定函数bindint bind ( SOCKET s , struct sockaddr_in* name , int namelen);完成创建套接字之后,接下来就是将套接字和当地的网络接口绑定,括号中s是已经创建号的套接字,括号中name指的是用来绑定的通信对象的信息结构体指针,namelen是一共有多少个字符。需要
30、注意的是sockaddr_in结构:struct sockaddr_inshort sin_family; /地址族,设置为AF_INETunsigned short sin_port; /指定的端口号struct in_addr sin_addr; /IP地址char sin_zero8;(4)设置接口模式函数WSAIoctlint WSAAPI WSAIoctl(SOCKET s, DWORD dwIoControlCode, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer, LPDW
31、ORD lpcbBytesReturned, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);其中,s为一个套接口的句柄,dwIoControlCode为操作控制代码,lpvInBuffer为输入缓冲区的地址,cbInBuffer为输入缓冲区的大小,lpvOutBuffer为输出缓冲区的地址,cbOutBuffer为输出缓冲区的大小,lpcbBytesReturned为输出实际字节数的地址,lpOverlapped为WSAOVERLAPPED结构的地址,lpComplet
32、ionRoutine为一个指向操作结束后调用的例程指针。调用成功后,WSAIoctl 函数返回0,否则的话,将返回INVALID_SOCKET错误,应用程序可通过WSAGetLastError来获取错误代码。(5)数据接收函数recvint recv (SOCKET s , char* buf ,int len , int flags);2.7本章小结本章阐述了关于OSI参考模型,TCP/IP模型以及两者的异同点。还介绍了HTTP协议和IP协议的一些基本知识,最后简单说了关于数据包捕获的几个函数。在接下来的几章会以这几个概念作为本文论述的一个基础,例如网络监听模块(如何设置混杂模式)会用到数据
33、包捕获的的函数。3.需求分析3.1可行性分析可行性分析是以经济效益为核心,围绕影响工程的各种因素,如技术、经济等运用大量的数据资料论证该工程是否可行。本文从技术可行性、经济可行性、社会可行性等几个方面进行了阐述。3.1.1技术可行性 Web访问监测系统地最主要的功能是判断用户访问的网站是否含有有害信息,对于有有害信息的网站要进行拦截,并转入一个健康的网站。要实现这个功能,有以下几个关键问题需要解决:(1) 如何获得访问网站的IP?(2) 如何判断该某个网址是非法的并予以拦截?解决方案如下:(1)可以通过把网卡设置为混杂模式,通过捕获数据包来进行监听,接着通过TCP/IP协议,再从数据包中提取对
34、工程有用的信息。(2)在HTTP协议中有规定,可以通过发送HTTP重定向报文,再利用一些网络技术,可以实现。因此,Web访问监控系统在技术方面是完全可行的。3.1.2经济可行性 这个工程的成本主要由两部分构成:硬件成本和软件成本。硬件成本包括:交换机、服务器等,软件成本主要是黑名单与白名单的数据库,维持系统正常运转的资金。从经济方面,也是可以实现的。3.1.3社会可行性 最近几年,中国政府为了维护公民良好、绿色的网络环境,对于非法网站的打击力度不断加大。不难发现我国对于净化网络环境的重视程度,尽管这样,仍有很多非法网站逍遥法外,严重危害着社会的和谐稳定,这些非法网站的服务器大多都设在中国境外,
35、这也给相关查处部门带来了不小的难度。本监测系统主要功能是禁止员工或学生的浏览一部分非法网站,当员工或学生输入无关网址时,管理员的服务器就可以抢在其打开网页前与其进行“握手”,从而达到了组织其正常访问的目的,提高了工作或学习的效率。这有利于社会的和谐与文明,符合国家倡导的相关政策,因此是得到国家大力支持的。另一方面,这个系统很大程度上弥补了防火墙的不足,不会使网络速度变慢。综上所述,Web访问监控系统有着很大的市场前景和社会效益。3.2系统需求分析 3.2.1 功能需求 Web访问监控系统的主要任务是捕获通过网卡的数据包,并加以分析,并与之前建立的数据库的网址黑名单进行匹配。Web访问监控系统由
36、六个模块组成包括,如下图3.1所示。图3.1功能需求模块结构图(1)网络监听模块网络监听模块在服务器上工作,此时的网卡已经被设置为了混杂模式,它的主要职责就是捕获通过网卡的网址,并提取有用的部分交给下一个模块(IP包处理模块)进行分析。其用例图如图3.2所示。图3.2 网络监听模块用例图(2)拦截策略控制模块这个模块具有很强的自主性,它可以随时根据管理员的需要进行开启或者关闭。拦截策略控制模块维护一个称为“白名单”的文件。白名单的更新是由消息模块控制的,当消息模块发来消息添加新的数据时,它才更新。当管理员关闭网页拦截服务时,消息服务器会发给拦截服务器一个命令,拦截策略控制模块阻止的浏览器转去访
37、问消息服务器的提供的网页。从用户的角度看,就是所要访问的网页被拦截了。(3)IP包分析模块IP包分析模块在拦截服务器上工作。其职责是对上个模块(网络监听模块)收集到的数据包进行分析和处理,把一些无关紧要的数据舍弃掉,从而大大的提高了处理的效率,分析出是否含有非法的网址成分并予以阻止访问的请求。这个模块由两部分构成:IP包过滤模块和网址匹配模块。IP包过滤部分的主要作用就是只保留HTTP协议中的GET报文和POST报文,而把除此之外的数据舍弃掉,这样就可以极大的减少工作量,并且可以加快网址匹配的速度。提取出URL地址后,发送到网址匹配模块。其用例图如图 3.3所示。 图3.3 IP包过滤部分用例
38、图网址匹配模块的主要任务是把提取到URL和数据库的黑名单逐个进行对照人,如果发现有非法网址,就把这个消息通知给拦截模块。其用例图如图 3.4所示。图3.4 网址匹配部分用例图(4)网页拦截模块 网页拦截模块是本系统最为关键的一部分。网页拦截模块的任务是拦截经过上个模块分析出的有害网址。网页拦截模块向用户展示预先做好的界面用于替代用户要访问的界面。从用户的角度看,就是所要访问的网页被拦截了。其用例图如图 3.5所示。 图3.5 网页拦截模块用例图(5)数据更新模块 数据更新模块是指已经拦截到的非法网站加入到已经建立好的数据库的黑名单中。数据库的维护有专门的管理人员,他们的主要职责就是对拦截服务器
39、拦截到的非法网址进行检查,当发现这个情况属实后,把这个网址加载到黑名单中。等下一次有人访问时,拦截服务器就可以直接组织其正常访问并弹出管理员预先设置好的界面。这样就可以节省掉不少的工作量和时间。(6)消息提示模块假如有用户要浏览的网站含有非法内容时,将提前做好的界面以弹窗的形式提示用户。当用户输入正确的通行口令时,用户可以正常访问其网址。3.2.2 性能需求本文的 Web 监测系统需要满足的性能需求主要有以下若干方面。 (1)我单位局域网内的用户数量很大,不适宜在每个终端用户的计算机上安装系统所必需的模块,Web 监测系统的部署、运行与维护对于局域网用户来说是透明的。 (2)整个 Web 访问
40、监测系统必须能够稳定、正常地运转,性能消耗低,而且在这个系统正式投入使用后,如果出现这样或那样的问题,应该要有相应的解决手段。如果出现有新的功能需求时,要求系统必须可以进行扩充和修改。从而保证整个局域网的可用性、可生存性。 (3)面对错综复杂的庞大数据,要有较强的应对能力,来保证计算机网络的正常运转。 (4)监测记录的 Web 访问日志应该具有覆盖面广,拦截准确无误的特点。 (5)整个系统人机交互界面友好,可操作性强,容错性强,软件部分发生故障时应能够自动恢复。 (6)系统支持即插即用方式,系统的实施不需要改变原来现有网络结构,简言之就是安装这个系统并不影响网络的流畅性性。 3.2.3运行需求
41、(1) 拦截服务器内存至少2GB以上。(2) 网络监听服务器应该具备的能力:700个并发HTTP链接,300Pps。(3) 存储器最少应该留有半年的访问数据。(4) 数据库维护人员应该实时关注黑名单的更新,做到不漏掉一个非法网址。3.2.4安全需求分析 本系统的安全需求大致应该有如下几点: (1)该系统的用户仅面向我单位的专业技术人员及其有关领导,不同的用户应该有不同的访问权限。 (2)该系统记录所有用户的登录历史、操作历史等日志信息,为了确保系统的 安全,该类日志信息一次性写入,不可删除,一经写入不可更改。 (3)由于涉及到我单位的局域网络、我单位用户的隐私,因此必须保证记录的Web 访问页
42、面文件证据的机密性,并控制其扩散范围。 (4)该系统的运行前提是不影响我单位局域网的正常运转,更不能造成我单位局域网新的安全威胁。 (6) 每隔一段时间,就要把这些数据备份。并且要求备份数据的全面性和完整性。 4系统设计4.1网络监听模块获取经过网卡的数据帧需要分三步完成:(1)创建socket套接字。(2)将网卡设置为混杂模式。(3)调用recvfromo函数接收数据。网络监听模块的获取数据包流程图如图4.1所示: 图4.1 获取数据包的流程图建立初始套接字的函数如下:soeket(PF_PACKET,SOCK_RAW,ETH_P_IP);完成socket套接字后,接着调用recvfromo
43、函数来获取帧。这个时候并不能获取通过这个网卡的数据帧,对于不是发送到本机的数据帧,实行丢弃的方法,从而来减轻网卡的负担。但是我们要得到经过网卡的所有数据帧。所以正常下我们并不能达到监听的目的。因此,要把网卡设置成混杂模式,这样我们就可以获取所有经过网卡的数据帧。如果一个程序只是有一个或少数几个进程完成,处理器一方面要求分析模块要提取有效信息,进行网址匹配。另一方面还要继续接收新来的数据帧。这种情况下很容易出现数据帧丢失的现象。因此,要采取多进程的方式。一个程序的运行可以使用多个进程并发执行。这样可以使他们的工作最大程度上达到效率最高并且不会发生任何冲突,从而实现了资源利用率最高。套接字的建立、
44、绑定的操作部分关键程序如下所示:m_sockCap = socket(AF_INET , SOCK_RAW , IPPROTO_IP);/创建套接字bind(m_sockCap, (PSOCKADDR)&sa, sizeof(sa);/绑定setsockopt(m_sockCap, SOL_SOCKET, SO_REUSEADDR, (char*)&bopt, sizeof(bopt) ;/设置操作setsockopt(m_sockCap, IPPROTO_IP, IP_HDRINCL, (char*)&bopt, sizeof(bopt) ;/设置操作WSAIoctl(m_sockCap,S
45、IO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL);/混杂模式m_hCapThread = CreateThread(NULL, 0, CaptureThread, this, 0, NULL);/启动线程4.2拦截策略控制模块拦截策略控制模块和消息服务器进行通信,它监听端口10000,然后接收消息服务器传来的指令。消息服务器传来的指令主要有两种,开启或关闭服务。当传输开启或关闭命令式,消息服务器要将用户的IP地址一起发来。在这里要介
46、绍“白名单”。假如用户关闭网页拦截功能,用户策略模块将用户IP地址加入“白名单”中。假如是开启拦截功能,那么将用户IP地址从白名单中删除。IP包过滤模块将IP地址在“白名单”中的用户的所有lP包看作系统不感兴趣的IP包,将其过丢弃。拦截方法模块工作流程如图 4.2所示。图4.2 拦截方法模块流程图4.3 IP包分析模块4.3.1IP包过滤模块IP包过滤模块起着承前启后的作用,它位于网络监听模块之后,IP网址匹配模块之前。它负责去除帧的首部字段,只留下有用的IP部分,舍弃一些无用的IP包。由于获取的数据可能有多种的类型,而我们只想要其中的一些例如HTTP协议的数据帧。因此只分析关于GET和POST的报文,将这些报文交给下一个模块(网址匹配模块)。没有用的数据包采取舍弃的处理方式,这样可以很大程度上减轻网址匹配模块的工作量,使网址匹配模块可以更加迅速的处理非法网址。IP包过滤模块的流程图如图4.3。图4.3 IP包过滤模块流程图如果IP包中含有POST或GET报文,需要取出它的URL地址。HTTP请求