基于旁路的web访问监控系统的设计与实现毕业论文(编辑修改稿)内容摘要:
( 3) Web 服务器接收到请求之后,会发送一个状态行。 ( 4) Web 服务器断开 TCP 连接。 步骤( 2)请求行中包含了下列的信息: ( 1)方法,如下图 所示: 图 HTTP 请求报 文 ( 2)统一资源定界符 URL:用于指明要下载的 Web 对象的位置。 ( 3) HTTP 的版本号,现在版本主要为 . 步骤( 3)响应如图 所示: 图 HTTP 响应报文 IP 协议 IP 协议是 TCP/IP 协议网络层中的主要成员。 它提供无连接的数据报传送机制。 IP协议的实现十分简单,它提供了“尽力而为的服务( Besteffort Service)” ,意思是它并不能担保传输是正确的。 IP 协议只是负责将分组发送到目标结点上,它不能确保是按分组的准确次序发送的。 IP协议大致可以实现以下 几个功能: ( 1) 无连接的数据报发送。 ( 2) IP 路由; ( 3) 分组的重组和分段; IP包的格式如下图所示: 图 IP 包格式 一个 IP 包由两部分构成,分别是首部和数据量。 IP包首部固定部分各字段意义如下 : (1)版本 :长度为 4 比特。 表示与 IP 分组对应的 IP 协议版本号。 目前广泛采用的是版本 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 位被保留,另外两位中: DF 用于指明 IP分组是否允许分段, MF 用于表明是否有后续分段。 (7)(报文)片偏移量域 :长度为 13 比特。 以 8 个字节为单位,用来 指明当前报文片在原始分组中的位置,这是分段和重组的前提条件。 (8)生存时间域 :长度为 8比特,用于指明 IP分组可在网络中传输的最长时间,这个数值每通过一个路由时要减 1,直至减到 0 时,这个分组就会被舍弃。 这个域用来保障IP分组不会在网络出现错误的时候发生无限的传输这种现象。 (9)协议域 :长度为 8比特。 用来指明调用 IP协议进行传输的高层协议,高层协议的编号由 TCP/IP 中央权威管理机构统一分配。 例如: ICMP 的值为 1(十进制), TCP的值为 6, UDP 的值为 17。 ( 10)分组头校验和域:长度为 16 比特。 用来保 障 IP 分组头的完整性。 其算法为:该域初始值为 0,然后对 IP 分组头以每 16 位为单位进行求异或和,然后将所得到的结构取反,从而得到校验和。 ( 11)源地址域:长度为 32比特。 用来指明发送 IP 分组的源主机的 IP 地址。 ( 12)目的地址域:长度为 32 比特。 用来指明接收 IP 分组的目的主机的 IP地址。 ( 13)任选项域:长度不是固定不变的,是可以变化的。 该域允许在以后的版本中包括在当前的设计的分组头中未出现的信息,该域的使用有一些特殊的规定。 ( 14)填充域 长度固定不变。 因为 IP 分组头必须是 4 字节的整数倍,所以当使用 任选项的 IP 分组头长度不足 4字节的整数倍时候,必须用 0填入填充域来满足这一要求。 数据捕获函数的一些函数 ( 1)启动函数 WSAStartup int PASCAL FAR WSAStartup (DWORD wVersionRequested , LPWSADATA lpWSAData); 所有的 套接字应用程序都 首先运行这个 函数 完成 初始化工作, 仅仅当完成调用返回后 , 才可以使用 套接字, 括号中 wVersionRequested 是版本号,参数 lpWSAData 是指向 WSADATA 结构的指针。 ( 2)套接字 创建函数 socket SOCKET socket (int af , int type , int protocol)。 socket 函数 就是为每个通信的建立创建一个套接字 , 括号中 af 全称是 address family, UDP 或 TCP 的 决定即将要建立的套接字的时候 ,需要设置 af 为 AF_INET。 括号中 type 是指套接字 的 类型, 有几种形式 SOCK_STREAM(流式) , SOCK_DGRAM(数据报 ), SOCK_RAW(原始 )。 ( 3)绑定函数 bind int bind ( SOCKET s , struct sockaddr_in* name , int namelen)。 完成创建套接字之后,接下来就是将套接字和当地的网络接口绑定 , 括号中 s 是已经创建号的套接字 , 括号中 name 指的是用来 绑定的通信对象的信息结构体指针,namelen 是 一共有多少个字符。 需要注意 的是 sockaddr_in 结构: struct sockaddr_in{ short sin_family。 //地址族,设置为 AF_INET unsigned short sin_port。 //指定的端口号 struct in_addr sin_addr。 //IP地址 char sin_zero[8]。 }。 ( 4)设置接口模式函数 WSAIoctl int WSAAPI WSAIoctl(SOCKET s, DWORD dwIoControlCode, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer, LPDWORD lpcbBytesReturned, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)。 其中, s 为一个套接口的句柄, dwIoControlCode 为操作控制代码, lpvInBuffer为输入缓冲区的地址, cbInBuffer 为输入缓冲区的大小, lpvOutBuffer 为输出缓冲区的地址, cbOutBuffer 为输出缓冲区的大小, lpcbBytesReturned 为输出实际字节数的地址, lpOverlapped 为 WSAOVERLAPPED 结构的地址, lpCompletionRoutine 为一个指向操作结束后调用的例程指针。 调用成功后, WSAIoctl 函数返回 0, 否则的话,将返回 INVALID_SOCKET 错误,应用程序可通过 WSAGetLastError 来获取错误代码。 ( 5)数据接收函数 recv int recv (SOCKET s , char* buf ,int len , int flags)。 本章小结 本章阐述了关于 OSI 参考模型, TCP/IP 模型以及两者的异同点。 还介绍了 HTTP 协议和 IP协议的一些基本知识,最后简单说了关于数据包捕获的几个函数。 在接下来的几章会以这几个概念作为本文论述的一个基础,例如网络监听模块 (如何设置混杂模式 )会用到数据包捕获的的函数。 可行性分析 可行性分析是以经济效益为核心,围绕影响工程的各种因素,如技术、经济等运用大量的数据资料论证该工程是否可行。 本文从技术可行性、经济可行性、社会可行性等几个方面进行了阐述。 技术可行性 Web 访问监测系统地最主要的功能是判断用户访 问的网站是否含有有害信息,对于有有害信息的网站要进行拦截,并转入一个健康的网站。 要实现这个功能,有以下几个关键问题需要解决: ( 1) 如何获得访问网站的 IP。 ( 2) 如何判断该某个网址是非法的并予以拦截。 解决方案如下: ( 1)可以通过把网卡设置为混杂模式,通过捕获数据包来进行监听,接着通过TCP/IP 协议,再从数据包中提取对工程有用的信息。 ( 2)在 HTTP 协议中有规定,可以通过发送 HTTP 重定向报文,再利用一些网络技术,可以实现。 因此, Web 访问监控系统在技术方面是完全可行的。 经济可行性 这个工 程的成本主要由两部分构成:硬件成本和软件成本。 硬件成本包括:交换机、服务器等,软件成本主要是黑名单与白名单的数据库,维持系统正常运转的资金。 从经济方面,也是可以实现的。 社会可行性 最近几年,中国政府为了维护公民良好、绿色的网络环境,对于非法网站的打击力度不断加大。 不难发现我国对于净化网络环境的重视程度,尽管这样,仍有很多非法网站逍遥法外,严重危害着社会的和谐稳定,这些非法网站的服务器大多都设在中国境外,这也给相关查处部门带来了不小的难度。 本监测系统主要功能是禁止员工或学生的浏览一部分非 法网站,当员工或学生输入无关网址时,管理员的服务器就可以抢在其打开网页前与其进行“握手”,从而达到了组织其正常访问的目的,提高了工作或学习的效率。 这有利于社会的和谐与文明,符合国家倡导的相关政策,因此是得到国家大力支持的。 另一方面,这个系统很大程度上弥补了防火墙的不足,不会使网络速度变慢。 综上所述, Web 访问监控系统有着很大的市场前景和社会效益。 系统需求分析 功能需求 Web 访问监控系统的主要任务是捕获通过网卡的数据包,并加以分析,并与之前建立的数据库的网址黑名单进行匹 配。 Web 访问监控系统由六个模块组成包括,如下图 所示。 图 功能需求模块结构图 ( 1) 网络监听模块 网络监听模块在服务器上工作 ,此时的网卡已经被设置为了混杂模式,它的主要职责就是捕获通过网卡的网址,并提取有用的部分交给下一个模块( IP 包处理模块)进行分析。 其用例图如图 所示。 图 网络监听模块用例图 ( 2) 拦截策略控制模块 这个模块具有很强的自主性,它可以随时根据管理员的需要进行开启或者关闭。 拦截策略控制模块维护一个称为“白名单”的文件。 白名单的更新是由消息模块控制的,当消息模 块发来消息添加新的数据时,它才更新。 当管理员关闭网页拦截服务时 ,消息服务器会发给拦截服务器一个命令 ,拦截策略控制模块阻止的浏览器转去访问消息服务器的提供的网页。 从用户的角度看 ,就是所要访问的网页被拦截了。 ( 3) IP 包分析模块 IP 包分析模块在拦截服务器上工作。 其职责是对上个模块(网络监听模块)收集到的数据包进行分析和处理,把一些无关紧要的数据舍弃掉,从而大大的提高了处理的效率,分析出是否含有非法的网址成分并予以阻止访问的请求。 这个模块由两部分构成 :IP 包过滤模块和网址匹配模块。 IP 包过滤部分的主要作用就 是只保留 HTTP 协议中的 GET 报文和 POST 报文,而把除此之外的数据舍弃掉,这样就可以极大的减少工作量,并且可以加快网址匹配的速度。 提取出 URL 地址后,发送到网址匹配模块。 其用例图如图 所示。 图 IP 包过滤部分用例图 网址匹配模块的主要任务是把提取到 URL 和数据库的黑名单逐个进行对照人,如果发现有非法网址,就把这个消息通知给拦截模块。 其用例图如图 所示。 图 网址匹配部分用例图 ( 4) 网页拦截模块 网页拦截模块是本系统最为关键的一部分。 网页拦截模块的任务是拦截 经过上个模块分析出的有害网址。 网页拦截模块向用户展示预先做好的界面用于替代用户要访问的界面。 从用户的角度看 ,就是所要访问的网页被拦截了。 其用例图如图 所示。 图 网页拦截模块用例图 ( 5) 数据更新模块 数据更新模块是指已经拦截到的非法网站加入到已经建立好的数据库的黑名单中。 数据库的维护有专门的管理人员,他们的主要职责就是对拦截服务器拦截到的非法网址进行检查,当发现这个情况属实后,把这个网址加载到黑名单中。 等下一次 有人访问时,拦截服务器就可以直接组织其正常访问并弹出管理员预先设置好的界面。 这样就可以节省掉不少的工作量和时间。 ( 6) 消息提示模块 假如有用户要浏览的网站含有非法内容时,将提前做好的界面以弹窗的形式提示用户。 当用户输入正确的通行口令时,用户可以正常访问其网址。 性能需求 本文的 Web 监测系统需要满足的性能需求主要有以下若干方面。 ( 1)我单位局域网内的用户数量很大,不适宜在每个终端用户的计算机上安装 系统所必需的模块, Web 监测系统的部署、运行与维护对于局域网用户来说是透 明的。 ( 2)整个。基于旁路的web访问监控系统的设计与实现毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。