CN109347817B - 一种网络安全重定向的方法及装置 - Google Patents
一种网络安全重定向的方法及装置 Download PDFInfo
- Publication number
- CN109347817B CN109347817B CN201811186641.5A CN201811186641A CN109347817B CN 109347817 B CN109347817 B CN 109347817B CN 201811186641 A CN201811186641 A CN 201811186641A CN 109347817 B CN109347817 B CN 109347817B
- Authority
- CN
- China
- Prior art keywords
- data packet
- redirection
- udp
- protocol
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络通信安全重定向的方法,包括:S1:通过WFP驱动的分层设计实现指定网络通信的进程、IP地址、端口、协议目标数据包的过滤,并采用BPF规则进行预过滤处理过滤出目标网络数据包;S2:设定基于进程、IP地址、端口、协议的捕获及拦截,捕获目标网络数据包并按照TCP/IP协议栈进行解析还原,对目标网络数据包进行封包并进行转发;S3:根据Socks5代理协议与代理服务器建立通信;S4:通过代理服务器基于Socks5代理协议对目标网络数据包进行重定向代理转发,实现TCP重定向、UDP重定向及远程DNS重定向。还提出了一种重定向模块,包括:WFP驱动模块、TCP/IP协议解封包模块、重定向服务模块,完成TCP重定向、UDP重定向及远程DNS重定向功能。
Description
技术领域
本发明涉及领域网络重定向领域,具体涉及一种网络安全重定向的方法及装置。
背景技术
现今,互联网的发展已经深入到个人生活和商业行为的多个方面,如社交、跨境电商、网络支付、通信等应用,这些互联网上的应用存在地域限制、信息泄漏、带宽较小等问题,于是人们开始研究通过相关的网络通信技术来改进基于传统互联网上的不足,逐步形成了以虚拟专用网络、匿名通信网络及其他隧道代理网络的解决方案。这些解决方案通常由重定向软件、拨号客户端、中继服务器三部分构成,其中拨号客户端及中继服务器主要提供网络通信隧道的构建及数据转发,而重定向软件主要负责把本机应用程序产生的流量引流到隧道上,目前通信隧道协议众多且方便灵活扩展性极好,针对重定向软件的技术实现也众多,但灵活性不够。
目前,重定向软件主要以虚拟网卡技术、防火墙转发技术、通信进程劫持技术、直接使用应用程序代理三种方式来实现网络通信流量的引流。虚拟网卡技术通过利用网络驱动开发一块虚拟网络接口卡桥接到物理网卡上,通过修改计算机的默认路由表来实现通信数据引流,常见于IPSec、PPTP、IPSec等VPN通信网络,提供全局的网络重定向。防火墙转发技术借助网络防火墙本身提供的NAT转发功能,将指定通信源、目的、协议的网络数据转发给引流程序来实现,常见于Redsocks,DDProxy等软件。通信进程劫持技术通过对应用程序所使用的网络通信库或者服务提供者进行劫持来实现针对指定进程的引流,常见于LSP、NSP等。直接使用应用程序代理是指应用程序本身提供代理功能,可以针对不同的应用程序配置不同代理服务器地址,多应用于标准的HTTP代理、Socks代理等。这些重定向技术无法都无法实现基于进程、源\目的地址、全局或者局部代理的灵活运用,且受操作***本身安全策略限制较大。
发明内容
本发明所要解决的技术问题是:目前基于网络数据重定向的处理主要分为虚拟网卡(VNIC)、防火墙转发技术、通信程序劫持(LSP/NSP)、直接应用程序提供代理四种方式。虚拟网卡技术需将本机网络访问全部重定向,无法实现进程级的流量重定向需求,无法兼容有限带宽不同通信链路的需求;防火墙转发技术能够处理的网络协议有限,一般无法处理UDP数据包;通信程序劫持稳定性较差,无法保障应用程序本身异步通信或者IOCP等机制的有效运用,程序运行会出现卡顿现象;应用程序提供代理接口这种方式完全依赖于程序提供商,目前市面上很多程序自身是不提供代理功能。因此本发明提供了一种网络通信安全重定向的方法,包括如下步骤:
S1:通过WFP驱动的分层设计实现指定网络通信的进程、IP地址、端口、协议目标数据包的过滤,对进程、IP地址、端口、协议目标数据包采用BPF规则进行预过滤处理过滤出目标网络数据包;
S2:设定基于进程、IP地址、端口、协议的捕获及拦截,捕获目标网络数据包并按照TCP/IP协议栈进行解析还原,对目标网络数据包进行封包并进行转发;
S3:根据Socks5代理协议与代理服务器建立通信;
S4:通过代理服务器基于Socks5代理协议对目标网络数据包进行重定向代理转发,实现TCP重定向、UDP重定向及远程DNS重定向。
进一步地,WFP驱动的分层设计包括通过注册FWPM_LAYER_ALE_AUTH_CONNECT_V4/6的Callouts实现对网络通信的进程的检查过滤,通过注册FWPM_LAYER_INBOUND_IPPACKET_V4/6、FWPM_LAYER_IPFORWARD_V4/6的Callouts对IP地址、端口、协议目标数据包进行预过滤处理。WFP(Windows Filtering Platform)驱动为过滤层框架驱动,工作在内核的TCP/IP协议栈的全部层,可以对TCPIP协议栈进行全方位的过滤拦截。
进一步地,TCP重定向方法具体包括如下步骤:
S11:对应用程序发送的目标SYN数据包进行捕获及预过滤处理,并与代理服务器建立连接,完成TCP代理连接的建立;
S12:对目标SYN数据包通过TCP/IP协议栈进行解析还原并进行封包转发至代理服务器;
S13:与代理服务器完成Socks代理认证流程;
S14:根据与代理服务器的Socks5协商情况,发送SYN/ACK与应用程序完成TCP三次握手建立代理连接,应用程序通过代理服务器与目标站点进行通信。
进一步地,S11包括如下步骤:
S111:根据BPF规则及进程黑白名单捕获目标SYN数据包;
S112:通过驱动IO接口获取目标SYN数据包。
进一步地,S12包括如下步骤:
S121:根据TCP/IP协议栈对目标SYN数据包进行解析,修改其目的地址和目的端口为代理服务器地址及端口,同时重新计算TCP序列号;
S122:对修改后的数据包进行校验值计算并组包为SYN重定向数据包;
S123:通过驱动IO将SYN重定向数据包发送至代理服务器;
S124:通过驱动IO与代理服务器完成TCP连接的三次握手。
进一步地,S13的Socks代理认证流程包括如下步骤:
S131:通过驱动IO直接与代理服务器完成Socks5代理协议的Method选择;
S132:通过驱动IO将本次链接的真实目的地址发送给代理服务器;
S133:代理服务器同本次链接的真实目的地址建立连接,返回连接成功与否。
进一步地,UDP重定向方法具体包括如下步骤:
S21:建立用于UDP数据包传导的UDPtun通道,并对本地UDP通信进行监听,捕获目标UDP数据包;
S22:根据TCP/IP协议栈对目标UDP数据包进行解析修改,再封包重定向转发至代理服务器;
S23:代理服务器将目标UDP数据包发送到目标站点,目标站点产生UDP响应数据包并转发;
S24:代理服务器接收并转发UDP响应数据包到应用程序。
进一步地,S21包括如下步骤:
S211:重定向模块建立UDP数据中转端口;
S212:重定向模块与代理服务器建立基于TCP的传输连接UDPtun;
S213:根据BPF规则及进程黑白名单捕获UDP数据包,UDP数据包从网络层抓包并包含UDP传输协议头及UDP数据。
进一步地,S22包括如下步骤:
S221:通过驱动IO接口获取UDP数据包,并根据TCP/IP协议栈解析出本次UDP通信的源IP和源端口;
S222:通过源IP、源端口监听UDP数据中转端口得到由IP、端口构造的UDP传输协议头,并将UDP数据包通过驱动IO向下转发到UDP数据中转端口;
S223:UDP数据中转端口接收到UDP数据包后,再通过UDPtun转发UDP数据包到代理服务器;
S224:代理服务器对UDP数据包按照UDP传输协议进行解包处理,并转发至目标站点。
进一步地,S23包括如下步骤:
S231:代理服务器接收到来自目标站点的UDP响应数据包;
S232:代理服务器按照UDP传输协议将UDP响应数据包封装为网络层数据包,并通过UDPtun进行转发;
S233:通过驱动IO在网络层将网络层数据包转发到对应的应用程序。
进一步地,远程DNS重定向方法具体包括如下步骤:
S31:根据BPF规则捕获所有DNS请求,按照DNS协议规则回复一个伪IP地址;
S32:当应用程序与伪IP地址进行通信时,将伪IP地址替换为真实的域名;
S33:目标网络数据包流转到代理服务器时根据不同的传输层协议采取不同的处理措施;
S34:当代理服务器与指定域名的目标站点建立通信时,通过代理服务器所在的DNS客户端进行解析,获得真实的IP地址。
本发明还提出了一种重定向模块,包括:
WFP驱动模块,被设置为对指定的网络通信进程、IP地址、通信端口、协议目标网络数据包进行过滤处理;
TCP/IP协议解封包模块,被设置为对WFP驱动模块进行预过滤规则设置,对目标网络数据包进行解析以及对目标网络数据包进行封包转发;
重定向服务模块,被设置为根据Socks5代理协议建立与代理服务器的会话链接,实现基于Socks5代理协议的TCP、UDP、DNS代理转发功能,完成目标网络数据包的TCP重定向、UDP重定向及远程DNS重定向功能。
进一步地,WFP驱动模块通过注册FWPM_LAYER_ALE_AUTH_CONNECT_V4/6的Callouts实现对指定网络通信进程的检查过滤,通过注册FWPM_LAYER_INBOUND_IPPACKET_V4/6、FWPM_LAYER_IPFORWARD_V4/6的Callouts对指定IP地址、通信端口、协议目标网络数据包采用伯克利包过滤规则进行预过滤处理。
进一步地,预过滤规则设置包括对WFP驱动模块设定基于网络通信进程、IP地址、通信端口、协议的捕获及拦截。
进一步地,对目标网络数据包进行解析是通过物理接口层获取所捕获的目标网络数据包并按照TCP/IP协议栈进行解析还原。
进一步地,对目标网络数据包进行封包转发是将各种自定义协议数据包进行封包并通过指定的物理接口卡进行转发。
本发明还提出了一种计算设备,该计算设备包括处理器和存储介质,存储介质包括计算机程序指令,处理器通过执行计算机程序指令实现上述方法。
本发明提供了一种网络通信安全重定向的方法,首先通过WFP驱动的分层设计实现指定网络通信的进程、IP地址、端口、协议目标数据包的过滤,过滤出目标网络数据包;设定基于进程、IP地址、端口、协议的捕获及拦截,捕获目标网络数据包并按照TCP/IP协议栈进行解析还原,对目标网络数据包进行封包并进行转发;根据Socks5代理协议与代理服务器建立通信;过代理服务器基于Socks5代理协议对目标网络数据包进行重定向代理转发,实现TCP重定向、UDP重定向及远程DNS重定向。此方法采用网络分层驱动实现对指定进程、源\目的地址的流量数据包的拦截,通过TCP/IP协议模拟层实现对数据的解析及引流,可以较好的解决现有重定向技术在引流范围,功能扩展方面遇到的问题,用户可快速方便的定制网络安全重定向功能。并且提出一种重定向模块可实现基于进程、源\目的地址、全局或者局部代理的灵活运用,且受操作***本身安全策略限制较小。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例的网络安全重定向的方法的流程图;
图2为本发明的实施例的网络安全重定向的TCP重定向方法的流程图;
图3为本发明的实施例的网络安全重定向的TCP重定向方法的S11的流程图;
图4为本发明的实施例的网络安全重定向的TCP重定向方法的S12的流程图;
图5为本发明的实施例的网络安全重定向的TCP重定向方法的S13的流程图;
图6为本发明的实施例的重定向模块的UDP重定向的流程图;
图7为本发明的实施例的重定向模块的UDP重定向的的S21的流程图;
图8为本发明的实施例的重定向模块的UDP重定向的S22的流程图;
图9为本发明的实施例的重定向模块的UDP重定向的S23的流程图;
图10为本发明的实施例的重定向模块的DNS重定向的流程图;
图11为本发明的实施例的重定向模块的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提出了了一种网络通信安全重定向的方法,如图1所示,包括如下步骤:
S1:通过WFP驱动的分层设计实现指定网络通信的进程、IP地址、端口、协议目标数据包的过滤,对进程、IP地址、端口、协议目标数据包采用BPF规则进行预过滤处理过滤出目标网络数据包;
S2:设定基于进程、IP地址、端口、协议的捕获及拦截,捕获目标网络数据包并按照TCP/IP协议栈进行解析还原,对目标网络数据包进行封包并进行转发;
S3:根据Socks5代理协议与代理服务器建立通信;Socks 5只是简单地传递应用层产生的数据包,而不关心具体的应用层协议,较应用层代理具有更快的速度和更高的通用性。
S4:通过代理服务器基于Socks5代理协议对目标网络数据包进行重定向代理转发,实现TCP重定向、UDP重定向及远程DNS重定向。
进一步地,WFP驱动的分层设计包括通过注册FWPM_LAYER_ALE_AUTH_CONNECT_V4/6的Callouts实现对网络通信的进程的检查过滤,通过注册FWPM_LAYER_INBOUND_IPPACKET_V4/6、FWPM_LAYER_IPFORWARD_V4/6的Callouts对IP地址、端口、协议目标数据包进行预过滤处理。WFP(Windows Filtering Platform)驱动为过滤层框架驱动,工作在内核的TCP/IP协议栈的全部层,可以对TCPIP协议栈进行全方位的过滤拦截。基于经过过滤拦截后的数据实现重定向功能。
如图2所示,TCP重定向方法具体包括如下步骤:
S11:对应用程序发送的目标SYN数据包进行捕获及预过滤处理,并与代理服务器建立连接,完成TCP代理连接的建立;
如图3所示,S11还包括如下步骤:
S111:根据BPF规则及进程黑白名单捕获目标SYN数据包;
BPF(Berkeley Packet Filter)伯克利数据包过滤器是一个工作在操作***内核的数据包捕获机制,先将链路层的数据包捕获再过滤,最后提供给应用层特定的过滤后的数据包。
BPF主要是由两部分构成的,一是网络转发部分,二是数据包过滤部分。网络转发部分从链路层中捕获数据包,并把它们抓发给数据报过滤部分。数据报过滤部分从接收到数据报中接受过滤规则决定接受网络数据报,其他数据包就会被抛弃。BPF的这两个部分都是在操作***内核层实现的,它提供给应用层的数据包是过滤后的数据包,所以捕获数据包和过滤数据包的过程都是在内核中完成的,它的效率是很高的。
设立黑白名单,黑名单启用后,被列入到黑名单的用户(或IP地址、IP包、邮件、病毒等)不能通过。在白名单中的用户(或IP地址、IP包、邮件等)会优先通过,不会被拒收,安全性和快捷性都大大提高。
S112:通过驱动IO接口获取目标SYN数据包。
S12:对目标SYN数据包通过TCP/IP协议栈进行解析还原并进行封包转发至代理服务器;
其中,如图4所示,S12还包括如下步骤:
S121:根据TCP/IP协议栈对目标SYN数据包进行解析,修改其目的地址和目的端口为代理服务器地址及端口,同时重新计算TCP序列号;
S122:对修改后的数据包进行校验值计算并组包为SYN重定向数据包;
S123:通过驱动IO将SYN重定向数据包发送至代理服务器;
S124:通过驱动IO与代理服务器完成TCP连接的三次握手。
S13:与代理服务器完成Socks代理认证流程;
其中,如图5所示,S13的Socks代理认证流程包括如下步骤:
S131:通过驱动IO直接与代理服务器完成Socks5代理协议的Method选择;
S132:通过驱动IO将本次链接的真实目的地址发送给代理服务器;
S133:代理服务器同本次链接的真实目的地址建立连接,返回连接成功与否。
S14:根据与代理服务器的Socks5协商情况,发送SYN/ACK与应用程序完成TCP三次握手建立代理连接,应用程序通过代理服务器与目标站点进行通信。
如图6所示,UDP重定向方法具体包括如下步骤:
S21:建立用于UDP数据包传导的UDPtun通道,并对本地UDP通信进行监听,捕获目标UDP数据包;
其中,如图7所示,S21包括如下步骤:
S211:重定向模块建立UDP数据中转端口;
S212:重定向模块与代理服务器建立基于TCP的传输连接UDPtun;
S213:根据BPF规则及进程黑白名单捕获UDP数据包,UDP数据包从网络层抓包并包含UDP传输协议头及UDP数据。
S22:根据TCP/IP协议栈对目标UDP数据包进行解析修改,再封包重定向转发至代理服务器;
其中,如图8所示,S22包括如下步骤:
S221:通过驱动IO接口获取UDP数据包,并根据TCP/IP协议栈解析出本次UDP通信的源IP和源端口;
S222:通过源IP、源端口监听UDP数据中转端口得到由IP、端口构造的UDP传输协议头,并将UDP数据包通过驱动IO向下转发到UDP数据中转端口;
S223:UDP数据中转端口接收到UDP数据包后,再通过UDPtun转发UDP数据包到代理服务器;
S224:代理服务器对UDP数据包按照UDP传输协议进行解包处理,并转发至目标站点。
S23:代理服务器将目标UDP数据包发送到目标站点,目标站点产生UDP响应数据包并转发;
其中,如图9所示,S23包括如下步骤:
S231:代理服务器接收到来自目标站点的UDP响应数据包;
S232:代理服务器按照UDP传输协议将UDP响应数据包封装为网络层数据包,并通过UDPtun进行转发;
S233:通过驱动IO在网络层将网络层数据包转发到对应的应用程序。
S24:代理服务器接收并转发UDP响应数据包到应用程序。
如图10所示,远程DNS重定向方法具体包括如下步骤:
S31:根据BPF规则捕获所有DNS请求,按照DNS协议规则回复一个伪IP地址;
S32:当应用程序与伪IP地址进行通信时,将伪IP地址替换为真实的域名;
S33:目标网络数据包流转到代理服务器时根据不同的传输层协议采取不同的处理措施;
S34:当代理服务器与指定域名的目标站点建立通信时,通过代理服务器所在的DNS客户端进行解析,获得真实的IP地址。
本发明还提出了一种重定向模块,如图11所示,包括:
WFP驱动模块1,被设置为对指定的网络通信进程、IP地址、通信端口、协议目标网络数据包进行过滤处理;WFP驱动模块1通过注册FWPM_LAYER_ALE_AUTH_CONNECT_V4/6的Callouts实现对指定网络通信进程的检查过滤,通过注册FWPM_LAYER_INBOUND_IPPACKET_V4/6、FWPM_LAYER_IPFORWARD_V4/6的Callouts对指定IP地址、通信端口、协议目标网络数据包采用伯克利包过滤规则进行预过滤处理。WFP驱动模块1采用双层设计可以实现基于进程、源/目的IP、端口、通信协议的区分。根据不同的重定向规则采取不同的处理措施。由于WFP驱动模块1采用双层设计支持BPF规则过滤及操作,可实现网络通信防泄漏处理。同时支持多种ACL访问控制规则应用及实施。
TCP/IP协议解封包模块2,被设置为对WFP驱动模块1进行预过滤规则设置,对目标网络数据包进行解析以及对目标网络数据包进行封包转发;预过滤规则设置包括对WFP驱动模块1设定基于网络通信进程、IP地址、通信端口、协议的捕获及拦截。对目标网络数据包进行解析是通过物理接口层获取所捕获的目标网络数据包并按照TCP/IP协议栈进行解析还原。对目标网络数据包进行封包转发是将各种自定义协议数据包进行封包并通过指定的物理接口卡进行转发。
重定向服务模块3,被设置为根据Socks5代理协议建立与代理服务器的会话链接,实现基于Socks5代理协议的TCP、UDP、DNS代理转发功能,完成目标网络数据包的TCP重定向、UDP重定向及远程DNS重定向功能。重定向服务模块3同WFP驱动模块1交互采用直接内存拷贝技术,尽量减少由于走传统TCP/IP协议栈所带来的性能问题。重定向服务模块3针对TCP数据直接通过WFP驱动模块1抓包捕获所有SYN请求、修改编辑为标准的Socks5代理协议包,对应用程序是透明重定向,且可兼容目前市面上所有的应用软件。重定向服务模块3针对DNS采用直接驱动里面响应其请求为伪IP地址段,当应用程序使用该伪IP进行数据访问时,自动替换为域名到达出口端进行解析,减少因DNS解析速度慢和污染所带来的访问瓶颈。针对UDP通信处理,采用自定义协议代理转发,解决了目前市面上多数重定向软件不支持UDP的问题。
本发明还提出了一种计算设备,该计算设备包括处理器和存储介质,存储介质包括计算机程序指令,处理器通过执行计算机程序指令实现上述方法。
综上所述,本发明提供了一种网络通信安全重定向的方法,首先通过WFP驱动的分层设计实现指定网络通信的进程、IP地址、端口、协议目标数据包的过滤,过滤出目标网络数据包;设定基于进程、IP地址、端口、协议的捕获及拦截,捕获目标网络数据包并按照TCP/IP协议栈进行解析还原,对目标网络数据包进行封包并进行转发;根据Socks5代理协议与代理服务器建立通信;过代理服务器基于Socks5代理协议对目标网络数据包进行重定向代理转发,实现TCP重定向、UDP重定向及远程DNS重定向。此方法采用网络分层驱动实现对指定进程、源\目的地址的流量数据包的拦截,通过TCP/IP协议模拟层实现对数据的解析及引流,可以较好的解决现有重定向技术在引流范围,功能扩展方面遇到的问题,用户可快速方便的定制网络安全重定向功能,可实现基于进程、源\目的地址、全局或者局部代理的灵活运用,且受操作***本身安全策略限制较小。
并且提出一种重定向模块,采用WFP驱动双层设计可以实现基于进程、源/目的IP、端口、通信协议的区分。根据不同的重定向规则采取不同的处理措施。重定向服务模块3同WFP驱动模块1交互采用直接内存拷贝技术,尽量减少由于走传统TCP/IP协议栈所带来的性能问题。重定向服务模块3针对TCP数据直接通过WFP驱动模块1抓包捕获所有SYN请求、修改编辑为标准的Socks5代理协议包,对应用程序是透明重定向,且可兼容目前市面上所有的应用软件。重定向服务模块3针对DNS采用直接驱动里面响应其请求为伪IP地址段,当应用程序使用该伪IP进行数据访问时,自动替换为域名到达出口端进行解析,减少因DNS解析速度慢和污染所带来的访问瓶颈。针对UDP通信处理,采用自定义协议代理转发,解决了目前市面上多数重定向软件不支持UDP的问题。由于WFP驱动模块1采用双层设计支持BPF规则过滤及操作,可实现网络通信防泄漏处理。同时支持多种ACL访问控制规则应用及实施。
显然,本领域技术人员在不偏离本发明的精神和范围的情况下可以做出对本发明的实施例的各种修改和改变。以该方式,如果这些修改和改变处于本发明的权利要求及其等同形式的范围内,则本发明还旨在涵盖这些修改和改变。词语“包括”不排除未在权利要求中列出的其它元件或步骤的存在。某些措施记载在相互不同的从属权利要求中的简单事实不表明这些措施的组合不能被用于获利。权利要求中的任何附图标记不应当被认为限制范围。
Claims (15)
1.一种网络通信安全重定向的方法,其特征在于,包括如下步骤:
S1:通过WFP驱动的分层设计实现指定网络通信的进程、IP地址、端口、协议目标数据包的过滤,对所述进程、IP地址、端口、协议目标数据包采用BPF规则进行预过滤处理过滤出目标网络数据包,所述WFP驱动的分层设计包括通过注册FWPM_LAYER_ALE_AUTH_CONNECT_V4/6的Callouts实现对所述网络通信的进程的检查过滤,通过注册FWPM_LAYER_INBOUND_IPPACKET_V4/6、FWPM_LAYER_IPFORWARD_V4/6的Callouts对所述IP地址、端口、协议目标数据包进行预过滤处理;
S2:设定基于所述进程、IP地址、端口、协议的捕获及拦截,捕获所述目标网络数据包并按照TCP/IP协议栈进行解析还原,对所述目标网络数据包进行封包并进行转发;
S3:根据Socks5代理协议与代理服务器建立通信;
S4:通过所述代理服务器基于Socks5代理协议对所述目标网络数据包进行重定向代理转发,实现TCP重定向、UDP重定向及远程DNS重定向。
2.根据权利要求1所述的网络通信安全重定向的方法,其特征在于,所述TCP重定向方法具体包括如下步骤:
S11:对应用程序发送的目标SYN数据包进行捕获及预过滤处理,并与所述代理服务器建立连接,完成TCP代理连接的建立;
S12:对所述目标SYN数据包通过TCP/IP协议栈进行解析还原并进行封包转发至所述代理服务器;
S13:与所述代理服务器完成Socks代理认证流程;
S14:根据与所述代理服务器的Socks5协商情况,发送SYN/ACK与所述应用程序完成TCP三次握手建立代理连接,所述应用程序通过所述代理服务器与目标站点进行通信。
3.根据权利要求2所述的网络通信安全重定向的方法,其特征在于,所述S11包括如下步骤:
S111:根据BPF规则及进程黑白名单捕获所述目标SYN数据包;
S112:通过驱动IO接口获取所述目标SYN数据包。
4.根据权利要求3所述的网络通信安全重定向的方法,其特征在于,所述S12包括如下步骤:
S121:根据TCP/IP协议栈对所述目标SYN数据包进行解析,修改其目的地址和目的端口为所述代理服务器地址及端口,同时重新计算TCP序列号;
S122:对修改后的数据包进行校验值计算并组包为SYN重定向数据包;
S123:通过所述驱动IO将所述SYN重定向数据包发送至所述代理服务器;
S124:通过所述驱动IO与所述代理服务器完成TCP连接的三次握手。
5.根据权利要求3所述的网络通信安全重定向的方法,其特征在于,所述S13的Socks代理认证流程包括如下步骤:
S131:通过所述驱动IO直接与所述代理服务器完成Socks5代理协议的Method选择;
S132:通过所述驱动IO将本次链接的真实目的地址发送给所述代理服务器;
S133:所述代理服务器同本次链接的真实目的地址建立连接,返回连接成功与否。
6.根据权利要求3所述的网络通信安全重定向的方法,其特征在于,所述UDP重定向方法具体包括如下步骤:
S21:建立用于UDP数据包传导的UDPtun通道,并对本地UDP通信进行监听,捕获目标UDP数据包;
S22:根据TCP/IP协议栈对所述目标UDP数据包进行解析修改,再封包重定向转发至所述代理服务器;
S23:所述代理服务器将所述目标UDP数据包发送到所述目标站点,所述目标站点产生UDP响应数据包并转发;
S24:所述代理服务器接收并转发所述UDP响应数据包到所述应用程序。
7.根据权利要求6所述的网络通信安全重定向的方法,其特征在于,所述S21包括如下步骤:
S211:重定向模块建立UDP数据中转端口;
S212:所述重定向模块与所述代理服务器建立基于TCP的传输连接UDPtun;
S213:根据BPF规则及进程黑白名单捕获UDP数据包,所述UDP数据包从网络层抓包并包含UDP传输协议头及UDP数据。
8.根据权利要求7所述的网络通信安全重定向的方法,其特征在于,所述S22包括如下步骤:
S221:通过所述驱动IO接口获取所述UDP数据包,并根据TCP/IP协议栈解析出本次UDP通信的源IP和源端口;
S222:通过所述源IP、源端口监听所述UDP数据中转端口得到由IP和端口构造的UDP传输协议头,并将所述UDP数据包通过所述驱动IO向下转发到所述UDP数据中转端口;
S223:所述UDP数据中转端口接收到所述UDP数据包后,再通过所述UDPtun转发所述UDP数据包到所述代理服务器;
S224:所述代理服务器对所述UDP数据包按照UDP传输协议进行解包处理,并转发至所述目标站点。
9.根据权利要求8所述的网络通信安全重定向的方法,其特征在于,所述S23包括如下步骤:
S231:所述代理服务器接收到来自所述目标站点的UDP响应数据包;
S232:所述代理服务器按照所述UDP传输协议将所述UDP响应数据包封装为网络层数据包,并通过所述UDPtun进行转发;
S233:通过所述驱动IO在网络层将所述网络层数据包转发到对应的应用程序。
10.根据权利要求2所述的网络通信安全重定向的方法,其特征在于,所述远程DNS重定向方法具体包括如下步骤:
S31:根据BPF规则捕获所有DNS请求,按照DNS协议规则回复一个伪IP地址;
S32:当所述应用程序与所述伪IP地址进行通信时,将所述伪IP地址替换为真实的域名;
S33:所述目标网络数据包流转到所述代理服务器时根据不同的传输层协议采取不同的处理措施;
S34:当所述代理服务器与指定域名的目标站点建立通信时,通过所述代理服务器所在的DNS客户端进行解析,获得真实的IP地址。
11.一种重定向模块,其特征在于,包括:
WFP驱动模块,被设置为对指定的网络通信进程、IP地址、通信端口、协议目标网络数据包进行过滤处理,所述WFP驱动模块通过注册FWPM_LAYER_ALE_AUTH_CONNECT_V4/6的Callouts实现对所述指定网络通信进程的检查过滤,通过注册FWPM_LAYER_INBOUND_IPPACKET_V4/6、FWPM_LAYER_IPFORWARD_V4/6的Callouts对所述指定IP地址、通信端口、协议目标网络数据包采用伯克利包过滤规则进行预过滤处理;
TCP/IP协议解封包模块,被设置为对所述WFP驱动模块进行预过滤规则设置,对所述目标网络数据包进行解析以及对所述目标网络数据包进行封包转发;
重定向服务模块,被设置为根据Socks5代理协议建立与代理服务器的会话链接,实现基于Socks5代理协议的TCP、UDP、DNS代理转发功能,完成所述目标网络数据包的TCP重定向、UDP重定向及远程DNS重定向功能。
12.根据权利要求11所述的重定向模块,其特征在于,所述预过滤规则设置包括对所述WFP驱动模块设定基于所述网络通信进程、IP地址、通信端口、协议的捕获及拦截。
13.根据权利要求11所述的重定向模块,其特征在于,所述对所述目标网络数据包进行解析是通过物理接口层获取所捕获的所述目标网络数据包并按照TCP/IP协议栈进行解析还原。
14.根据权利要求11所述的重定向模块,其特征在于,所述对所述目标网络数据包进行封包转发是将各种自定义协议数据包进行封包并通过指定的物理接口卡进行转发。
15.一种计算设备,该计算设备包括处理器和存储介质,所述存储介质包括计算机程序指令,所述处理器通过执行所述计算机程序指令实现权利要求1-10之一的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811186641.5A CN109347817B (zh) | 2018-10-12 | 2018-10-12 | 一种网络安全重定向的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811186641.5A CN109347817B (zh) | 2018-10-12 | 2018-10-12 | 一种网络安全重定向的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347817A CN109347817A (zh) | 2019-02-15 |
CN109347817B true CN109347817B (zh) | 2021-06-25 |
Family
ID=65309168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811186641.5A Active CN109347817B (zh) | 2018-10-12 | 2018-10-12 | 一种网络安全重定向的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347817B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110448892B (zh) * | 2019-07-18 | 2023-08-22 | 江西中业光文化科技有限公司 | 基于增强现实的游戏实现方法及*** |
CN110417771B (zh) * | 2019-07-25 | 2021-07-09 | 福建天晴在线互动科技有限公司 | 一种通过驱动自动化拦截Windows自动更新的方法 |
CN110465094A (zh) * | 2019-08-19 | 2019-11-19 | 福建天晴在线互动科技有限公司 | 一种基于ip端口特征的游戏外挂检测方法 |
CN110535719B (zh) * | 2019-08-19 | 2021-07-27 | 福建天晴在线互动科技有限公司 | 一种基于dns流量特征的游戏外挂行为监控方法 |
CN110535718A (zh) * | 2019-08-19 | 2019-12-03 | 福建天晴在线互动科技有限公司 | 一种基于http流量uri特征的游戏外挂行为监控方法 |
CN110602192A (zh) * | 2019-08-30 | 2019-12-20 | 北京谷数科技有限公司 | 一种扩展存储集群***网络通信能力的方法 |
CN110808990B (zh) * | 2019-11-08 | 2021-11-05 | 北京明朝万达科技股份有限公司 | 邮件传输方法、装置、电子设备及计算机可读存储介质 |
CN110891008A (zh) * | 2019-11-21 | 2020-03-17 | 成都云智天下科技股份有限公司 | 一种基于l2tp/ipsec的ip代理方法 |
CN110855705A (zh) * | 2019-11-23 | 2020-02-28 | 赣南师范大学 | 面向网络攻击与防护的无端口隐蔽通信方法 |
CN111193773B (zh) * | 2019-12-06 | 2022-12-09 | 腾讯云计算(北京)有限责任公司 | 负载均衡方法、装置、设备及存储介质 |
CN111930078B (zh) * | 2020-06-21 | 2024-04-19 | 中国舰船研究设计中心 | 一种面向核控***的网络测试装置 |
CN111787110B (zh) * | 2020-07-03 | 2023-03-31 | 国网湖北省电力有限公司 | 一种Socks代理发现方法及*** |
CN111917730A (zh) * | 2020-07-10 | 2020-11-10 | 浙江邦盛科技有限公司 | 一种基于http旁路流量的机器行为分析方法 |
CN112653609B (zh) * | 2020-12-14 | 2022-05-27 | 北京指掌易科技有限公司 | 一种vpn识别应用方法、装置、终端及存储介质 |
CN112491927B (zh) * | 2020-12-15 | 2022-12-02 | 厦门市美亚柏科信息股份有限公司 | 一种绕过网络端口屏蔽的方法及*** |
CN114697440B (zh) * | 2020-12-30 | 2023-08-29 | 成都鼎桥通信技术有限公司 | 网络管理方法及移动终端 |
CN112887444A (zh) * | 2021-01-19 | 2021-06-01 | 网宿科技股份有限公司 | 一种vpn网络的请求处理方法、客户端设备及*** |
CN113194102B (zh) * | 2021-05-19 | 2023-11-21 | 苏州瑞立思科技有限公司 | 一种基于端口的icmp回送报文传输方法 |
CN113271235B (zh) * | 2021-05-21 | 2022-10-18 | 山石网科通信技术股份有限公司 | 网络流量的模糊测试方法、装置、存储介质及处理器 |
CN113452686B (zh) * | 2021-06-23 | 2022-10-18 | 中移(杭州)信息技术有限公司 | 数据处理方法、装置、代理服务器及存储介质 |
CN113472873B (zh) * | 2021-06-25 | 2023-05-26 | 惠州高盛达科技有限公司 | 固定伪ip地址访问路由器主页的方法 |
CN113965577B (zh) * | 2021-08-31 | 2024-02-27 | 联通沃音乐文化有限公司 | 一种智能切换Socks5代理服务器节点的***与方法 |
CN114401245B (zh) * | 2021-12-22 | 2024-03-22 | 上海网基科技有限公司 | 实现高性能dns服务的方法、装置、计算机设备和存储介质 |
CN114401243B (zh) * | 2022-03-23 | 2022-06-28 | 北京指掌易科技有限公司 | 数据包发送方法、装置、设备和介质 |
CN115037594B (zh) * | 2022-06-06 | 2024-06-21 | 湖南匡安网络技术有限公司 | 一种基于数据包重定向的透明代理方法和*** |
CN115549980B (zh) * | 2022-09-13 | 2023-04-18 | 应急管理部大数据中心 | 一种协议重编辑的网络流量审计装置及方法 |
CN116545978B (zh) * | 2023-05-16 | 2024-05-17 | 深圳市石犀科技有限公司 | 数据处理方法、装置、***、可读存储介质及进口网卡 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197711A (zh) * | 2007-12-06 | 2008-06-11 | 华为技术有限公司 | 一种实现统一鉴权管理的方法、装置及*** |
CN101729543A (zh) * | 2009-12-04 | 2010-06-09 | 同济大学 | 利用异地Socks5技术改善移动SSL VPN性能的方法 |
CN201657020U (zh) * | 2009-12-04 | 2010-11-24 | 同济大学 | 一种基于异地Socks5代理的移动SSL VPN*** |
CN102195972A (zh) * | 2011-03-24 | 2011-09-21 | 北京思创银联科技股份有限公司 | 利用wfp拦截网络数据的方法 |
CN104022924A (zh) * | 2014-07-02 | 2014-09-03 | 浪潮电子信息产业股份有限公司 | 一种http通信内容检测的方法 |
CN104767748A (zh) * | 2015-03-30 | 2015-07-08 | 西北工业大学 | Opc服务器安全防护*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529241B2 (en) * | 2005-12-20 | 2009-05-05 | Matsushita Electric Works, Ltd. | Systems and methods for providing a network bridge for UDP multicast traffic |
-
2018
- 2018-10-12 CN CN201811186641.5A patent/CN109347817B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197711A (zh) * | 2007-12-06 | 2008-06-11 | 华为技术有限公司 | 一种实现统一鉴权管理的方法、装置及*** |
CN101729543A (zh) * | 2009-12-04 | 2010-06-09 | 同济大学 | 利用异地Socks5技术改善移动SSL VPN性能的方法 |
CN201657020U (zh) * | 2009-12-04 | 2010-11-24 | 同济大学 | 一种基于异地Socks5代理的移动SSL VPN*** |
CN102195972A (zh) * | 2011-03-24 | 2011-09-21 | 北京思创银联科技股份有限公司 | 利用wfp拦截网络数据的方法 |
CN104022924A (zh) * | 2014-07-02 | 2014-09-03 | 浪潮电子信息产业股份有限公司 | 一种http通信内容检测的方法 |
CN104767748A (zh) * | 2015-03-30 | 2015-07-08 | 西北工业大学 | Opc服务器安全防护*** |
Also Published As
Publication number | Publication date |
---|---|
CN109347817A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347817B (zh) | 一种网络安全重定向的方法及装置 | |
US12010135B2 (en) | Rule-based network-threat detection for encrypted communications | |
US11838276B2 (en) | Systems and methods for proxying encrypted traffic to protect origin servers from internet threats | |
CA2545496C (en) | Virtual private network with pseudo server | |
US8995453B2 (en) | Systems and methods for providing a VPN solution | |
US10313397B2 (en) | Methods and devices for access control of data flows in software defined networking system | |
CN102761534B (zh) | 实现媒体接入控制层透明代理的方法和装置 | |
CN107147588B (zh) | 流量引导方法和装置 | |
US20030131258A1 (en) | Peer-to-peer communication across firewall using internal contact point | |
EP3468152B1 (en) | Two-way transparent proxy method and system | |
US20220150303A1 (en) | Managing network services using multipath protocols | |
EP2860911A1 (en) | Method and device for classifying encrypted data flows between at least one web client and at least one web server | |
CN115883255B (zh) | 数据过滤方法、设备以及计算机可读介质 | |
CN115022280B (zh) | 一种nat探测的方法、客户端及*** | |
CN116233237B (zh) | 一种透明代理网关机及其工作方法 | |
US20240121187A1 (en) | Deploying ipv6 routing | |
CN117336269A (zh) | 资源访问方法、装置、电子设备及存储介质 | |
CN117439815A (zh) | 一种基于反向透明桥接的内网穿透***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |