一种基于数据包重定向的透明代理方法和系统技术方案

技术编号:34891148 阅读:18 留言:0更新日期:2022-09-10 13:49
本发明专利技术公开了一种基于数据包重定向的透明代理方法,其应用在Windows主机中,其通过设置网络数据包的重定向规则,包括发送数据包重定向规则和接收数据包重定向规则,从而实现精准的网络数据包重定向,实现对Windows程序的透明代理。在接收数据包重定向规则中,将数据包P1的目的端口号加入到重定向规则中,从而实现多对一的重定向,将多台主机的数据包重定向到一台主机上,允许一台堡垒机对多台运维主机的代理;通过设计数据包过滤模块实现对数据包的拦截和修改,对符合重定向规则的网络数据包进行重定向操作;本发明专利技术进一步在数据包过滤模块中引入了过滤器,其目的在于,数据包过滤模块只选择感兴趣的流量子集,该方式可以提高代理效率,避免网络拥塞。避免网络拥塞。避免网络拥塞。

【技术实现步骤摘要】
一种基于数据包重定向的透明代理方法和系统


[0001]本专利技术属于Windows网络数据包传输重定向
,更具体地,涉及一种基于数据包重定向的透明代理方法和系统。

技术介绍

[0002]在这个互联网盛行的时代下,企业数据的安全性尤其重要。
[0003]为保障企业数据的安全,堡垒机技术得到了快速发展,并已开始广泛应用于企业。堡垒机是针对运维人员的一种运维安全审计系统,主要是对运维人员的运维操作进行安全审计和权限控制,同时堡垒机还有账号集中管理、单点登录功能。因此,堡垒机客户端如果需要运维代理多台内网主机和多个账号,必须准确识别被运维主机的身份、高效以及安全的代理服务。
[0004]然而,现有的堡垒机客户端代理服务存在一些不可忽略的缺陷:第一,由于其客户端代理服务的机制是:客户端代理与堡垒机通信,然后堡垒机与被运维主机通信,因此会造成客户端代理无法准确识别被运维主机的信息;第二,由于其客户端代理要同时维护多台被运维主机,因此会造成堡垒机客户端代理混淆被运维对象的身份;第三,由于其客户端代理是通过应用层同时维护对多台主机的运维,应用层捕获网络包信息,相比驱动层,将会消费更多的时间,因此存在代理速度慢的问题。

技术实现思路

[0005]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于数据包重定向的透明代理方法和系统,其目的在于,解决现有堡垒机客户端代理服务存在的客户端代理无法准确识别被运维主机的信息的技术问题,以及堡垒机客户端代理混淆被运维对象的身份的技术问题,以及代理速度慢的技术问题。
[0006]为实现上述目的,按照本专利技术的一个方面,提供了一种基于数据包重定向的透明代理方法,其是应用在Windows主机中,用于为Windows程序提供基于数据包重定向的透明代理服务,所述透明代理方法包括如下步骤:
[0007](1)从具备过滤器功能的网络数据包过滤模块接收网络数据包P1。
[0008](2)对步骤(1)得到的网络数据包P1进行解析,并根据解析结果判断网络数据包P1的类型是Windows主机发送的数据包,还是Windows主机接收的数据包,如果是Windows主机发送的数据包,则进入步骤(3);如果是Windows主机接收的数据包,则进入步骤(5)。
[0009](3)根据步骤(2)的解析结果判断网络数据包P1的目的IP地址及其对应的目的端口号是否存在于预先建立的发送包重定向列表中,如果是则进入步骤(4),否则进入步骤(9);
[0010](4)将网络数据包P1的目的IP地址及其对应的目的端口号分别修改为预先建立的重定向列表中与该目的IP地址对应的重定向后的目的IP地址及其对应的目的端口号,从而得到网络数据包P2,并将网络数据包P1的源端口号和该网络数据包P1经过平重定向后的目
的IP地址及其目的端口号作为第一部分、以及该网络数据包P1的目的IP地址及其目的端口号作为第二部分保存在接收包重定向列表中,然后进入步骤(7);
[0011](5)根据步骤(2)的解析结果判断网络数据包P1的目的端口号和该网络数据包P1源IP地址及其对应的源端口号是否存在于预先建立的接收包重定向列表中,如果是则进入步骤(6),否则进入步骤(9);
[0012](6)将网络数据包P1的源IP地址及其源端口号分别修改为预先建立的接收包重定向列表中与该源IP地址及源端口号对应的重定向后的源IP地址及源端口号,从而得到网络数据包P2,然后进入步骤(7);
[0013](7)计算网络数据包P2的校验和,并使用计算得到的校验和更新该网络数据包P2固有的校验和,然后进入步骤(8);
[0014](8)通过具备过滤器功能的网络数据包过滤模块将网络数据包P2注入Windows主机的网络堆栈,过程结束;
[0015](9)通过具备过滤器功能的网络数据包过滤模块将网络数据包P1注入Windows主机的网络堆栈,过程结束。
[0016]优选地,具备过滤器功能的网络数据包过滤模块可以通过基于传输驱动程序接口(Transport Driver Interface,简称TDI)技术实现,或者通过基于Windows过滤平台(Windows Filtering Platform,简称WFP)技术编写的内核驱动程序实现。
[0017]优选地,对于带有过滤器功能的网络数据包过滤模块而言,只有匹配过滤器条件的数据包或事件才会被网络数据包过滤模块阻塞和捕获,所有其他不匹配的数据包或事件将被允许正常执行;
[0018]过滤器条件可以设置为网络数据包方向、数据包的源IP地址、目的IP地址、源端口号、目的端口号、传输层协议以及它们的任意组合;
[0019]优选地,判断网络数据包P1是Windows主机发送的数据包,还是Windows主机接收的数据包这一过程,是首先解析该网络数据包P1,以获取该网络数据包P1中的类型、源IP地址及其对应的源端口号、目的IP地址及其对应的目的端口号、传输层协议等信息;其中,如果类型字段中的值是1,则说明该网络数据包P1是Windows主机发送的数据包,如果类型字段中的值是0,则说明该网络数据包P1是Windows主机接收的数据包。
[0020]优选地,发送包重定向列表中体现的是目的IP地址及其目的端口号、与重定向后的目的IP地址及其目的端口号之间的映射关系,用户可以自由设定从某个目的IP地址到重定向后的目的IP地址、以及从该目的IP地址对应的目的端口到重定向后的该目的IP地址对应的目的端口号之间的映射关系。
[0021]优选地,接收包重定向列表中体现的是目的端口号和源IP地址及其源端口号、与重定向后的源IP地址及其源端口号之间的映射关系;
[0022]优选地,步骤(7)中计算网络数据包P2的校验和这一过程包括以下步骤:
[0023](A)把网络数据包P2中的校验和字段设置为0;
[0024](B)把网络数据包P2中需要校验的每个数据看成以16位为单位的数子组成,对该数据进行二进制反码运算,并将所有数据对应的二进制反码运算结果进行求和;
[0025](C)把步骤(B)中得到的求和结果存入校验和字段中。
[0026]按照本专利技术的另一方面,提供了一种基于数据包重定向的透明代理系统,其是应
用在Windows主机中,用于为Windows程序提供基于数据包重定向的透明代理服务,所述透明代理系统包括:
[0027]第一模块,用于从具备过滤器功能的网络数据包过滤模块接收网络数据包P1;
[0028]第二模块,用于对第一模块得到的网络数据包P1进行解析,并根据解析结果判断网络数据包P1的类型是Windows主机发送的数据包,还是Windows主机接收的数据包,如果是Windows主机发送的数据包,则进入第三模块;如果是Windows主机接收的数据包,则进入第五模块;
[0029]第三模块,用于根据第二模块的解析结果判断网络数据包P1的目的IP地址及其对应的目的端口号是否存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数据包重定向的透明代理方法,其是应用在Windows主机中,用于为Windows程序提供基于数据包重定向的透明代理服务,其特征在于,所述透明代理方法包括如下步骤:(1)从具备过滤器功能的网络数据包过滤模块接收网络数据包P1。(2)对步骤(1)得到的网络数据包P1进行解析,并根据解析结果判断网络数据包P1的类型是Windows主机发送的数据包,还是Windows主机接收的数据包,如果是Windows主机发送的数据包,则进入步骤(3);如果是Windows主机接收的数据包,则进入步骤(5)。(3)根据步骤(2)的解析结果判断网络数据包P1的目的IP地址及其对应的目的端口号是否存在于预先建立的发送包重定向列表中,如果是则进入步骤(4),否则进入步骤(9);(4)将网络数据包P1的目的IP地址及其对应的目的端口号分别修改为预先建立的重定向列表中与该目的IP地址对应的重定向后的目的IP地址及其对应的目的端口号,从而得到网络数据包P2,并将网络数据包P1的源端口号和该网络数据包P1经过平重定向后的目的IP地址及其目的端口号作为第一部分、以及该网络数据包P1的目的IP地址及其目的端口号作为第二部分保存在接收包重定向列表中,然后进入步骤(7);(5)根据步骤(2)的解析结果判断网络数据包P1的目的端口号和该网络数据包P1源IP地址及其对应的源端口号是否存在于预先建立的接收包重定向列表中,如果是则进入步骤(6),否则进入步骤(9);(6)将网络数据包P1的源IP地址及其源端口号分别修改为预先建立的接收包重定向列表中与该源IP地址及源端口号对应的重定向后的源IP地址及源端口号,从而得到网络数据包P2,然后进入步骤(7);(7)计算网络数据包P2的校验和,并使用计算得到的校验和更新该网络数据包P2固有的校验和,然后进入步骤(8);(8)通过具备过滤器功能的网络数据包过滤模块将网络数据包P2注入Windows主机的网络堆栈,过程结束;(9)通过具备过滤器功能的网络数据包过滤模块将网络数据包P1注入Windows主机的网络堆栈,过程结束。2.根据权利要求1所述的基于数据包重定向的透明代理方法,其特征在于,具备过滤器功能的网络数据包过滤模块可以通过基于传输驱动程序接口(Transport Driver Interface,简称TDI)技术实现,或者通过基于Windows过滤平台(Windows Filtering Platform,简称WFP)技术编写的内核驱动程序实现。3.根据权利要求1或2所述的基于数据包重定向的透明代理方法,其特征在于,对于带有过滤器功能的网络数据包过滤模块而言,只有匹配过滤器条件的数据包或事件才会被网络数据包过滤模块阻塞和捕获,所有其他不匹配的数据包或事件将被允许正常执行;过滤器条件可以设置为网络数据包方向、数据包的源IP地址、目的IP地址、源端口号、目的端口号、传输层协议以及它们的任意组合;4.根据权利要求1至3中任意一项所述的基于数据包重定向的透明代理方法,其特征在于,判断网络数据包P1是Windows主机发送的数据包,还是Windows主机接收的数据包这一过程,是首先解析该网络数据包P1,以获取该网络数据包P1中的类型、源IP地址及其对应的
源端口号、目的IP地址及其对应的目的端口号、传输层协议等信息;其中,如果类型字段中的值是1,则说明该网络数...

【专利技术属性】
技术研发人员:李肯立杨志邦袁理想唐伟罗汸段明星蔡宇辉吕婷余思洋
申请(专利权)人:湖南匡安网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1