CN112637238B - 脱离协议栈的telnet代理方法、架构及介质 - Google Patents
脱离协议栈的telnet代理方法、架构及介质 Download PDFInfo
- Publication number
- CN112637238B CN112637238B CN202011627349.XA CN202011627349A CN112637238B CN 112637238 B CN112637238 B CN 112637238B CN 202011627349 A CN202011627349 A CN 202011627349A CN 112637238 B CN112637238 B CN 112637238B
- Authority
- CN
- China
- Prior art keywords
- telnet
- heterogeneous module
- packet
- request packet
- heterogeneous
- 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/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
- 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/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
本发明提供了一种脱离协议栈的telnet代理方法、架构及介质,所述方法包括以下步骤:输入代理在接收到第一telnet报文请求包后,读取连接列表,并判断发送所述第一telnet报文请求包的客户端是否登记在所述连接列表中;若该客户端已登记在所述连接列表中,则将所述第一telnet报文请求包转发给异构平台的主异构模块,修改所述第一telnet报文请求包中的TCP首部并重新封装成第二telnet报文请求包后,转发给异构平台的从异构模块;在接收到某个异构模块返回的telnet报文响应包后,若发送所述telnet报文响应包的异构模块为主异构模块,则将所述telnet报文响应包转发给所述目标客户端。
Description
技术领域
本发明涉及拟态防御技术领域,具体的说,涉及了一种脱离协议栈的telnet代理方法、架构及介质。
背景技术
随着互联网的飞速发展,网络安全逐渐成为一个潜在的巨大问题。将主动防御方式引入到网络空间中,能够解决网络空间安全问题,尤其是面对当前最大的安全威胁——未知漏洞后门、病毒木马等不确定威胁时,具有显著效果,克服了传统安全方法存在的诸多问题,网络空间拟态防御(Cyberspace Mimic Defense,CMD)理论应运而生。
CMD在技术上以融合多种主动防御要素为宗旨:以异构性、多样或多元性改变目标系统的相似性、单一性;以动态性、随机性改变目标系统的静态性、确定性;以异构冗余多模裁决机制识别和屏蔽未知缺陷与未明威胁;以高可靠性架构增强目标系统服务功能的柔韧性或弹性;以系统的视在不确定属性防御或拒止针对目标系统的不确定性威胁。
在异构系统中,需要将用户数据转发给内部的异构平台,势必要求输入代理能够维持与异构平台中不同异构模块的连接,最典型的网络连接就是telnet连接;通常的telnet输入代理需要在协议栈上运行,通过反向代理的方式维护连接,需要同时建立多个telnet连接,由于协议栈的开源性,必然会存在漏洞。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供一种脱离协议栈的telnet代理方法、架构及介质。
为了实现上述目的,本发明所采用的技术方案是:
本发明第一方面提供一种脱离协议栈的telnet代理方法,所述方法包括以下步骤:
输入代理在接收到第一telnet报文请求包后,读取连接列表,并判断发送所述第一telnet报文请求包的客户端是否登记在所述连接列表中;
若该客户端已登记在所述连接列表中,则将所述第一telnet报文请求包转发给异构平台的主异构模块,修改所述第一telnet报文请求包中的TCP首部并重新封装成第二telnet报文请求包后,转发给异构平台的从异构模块;
构建数据缓存列表,将已转发给从异构模块的第二telnet报文请求包登记在所述数据缓存列表;
在接收到某个异构模块返回的telnet报文响应包后,获取所述telnet报文响应包所响应的目标客户端,并判断该目标客户端是否登记在所述连接列表中;若该目标客户端已登记在所述连接列表中,则判断发送所述telnet报文响应包的异构模块是否为主异构模块;
若发送所述telnet报文响应包的异构模块为主异构模块,则将所述telnet报文响应包转发给所述目标客户端;
若发送所述telnet报文响应包的异构模块为从异构模块,则提取所述telnet报文响应包中的确认标识码ACK,依据所述确认标识码ACK搜索所述数据缓存列表中是否存在对应的第二telnet报文请求包,并在搜索到对应的第二telnet报文请求包后执行删除操作。
本发明第二方面提供一种拟态防御架构,所述拟态防御架构包括输入代理、异构执行体、裁决器、反馈调度模块和输出代理,所述输入代理执行上述的脱离协议栈的telnet代理方法的步骤。
本发明第三方面提供一种可读存储介质,其上存储有指令,该指令被处理器执行时实现如上述的脱离协议栈的telnet代理方法的步骤。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说:
1)本发明提供了一种脱离协议栈的telnet代理方法、架构及介质,通过修改所述第一telnet报文请求包中的TCP首部并进行重新封装,从而将客户端发送的请求数据复制分发给不同的异构平台的不同异构模块,以维持客户端与不同从异构模块之间的虚拟连接,实现客户端对主异构模块进行操作,可在从异构模块中进行同步操作;
2)由于输入代理无需跑协议栈,而是通过修改MAC层报文来形成向从异构模块发送的第二telnet报文请求包,减少对输入代理内存的占用,同时减小了输入代理的CPU开销;
3)由于输入代理与从异构模块之间并没有实际的建连过程,没有跑开源的协议栈,只是通过修改TCP首部中的同步标识码和确认标识码实现了反向代理的功能,从而大大增加了入口数据的安全性;
4)构建数据缓存列表,将已转发给从异构模块的第二telnet报文请求包登记在所述数据缓存列表;判断所述数据缓存列表中是否存在某个从异构模块未响应的第二telnet报文请求包,若存在某个从异构模块未响应的第二telnet报文请求包,则将对应的第二telnet报文请求包重新转发给对应的从异构模块,从而有效解决从异构模块的报文重传问题,使得主异构模块与各个从异构模块之间数据同步;
5)在搜索到对应的第二telnet报文请求包后执行删除操作,及时删除已经响应过的第二telnet报文请求包,以进一步减少对输入代理内存的占用。
附图说明
图1是本发明的输入代理对客户端传输请求数据的处理流程图;
图2是本发明的握手过程流程图;
图3是本发明的输入代理对异构平台返回的响应数据的处理流程图;
图4是本发明的数据缓存列表的更新流程图;
图5是本发明的拟态防御架构的示意图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
协议栈(英语:Protocol stack),又称协议堆叠,是计算机网络协议套件的一个具体的软件实现。协议栈和协议是两个概念,协议栈是帮用户处理了协议相关的信息,用户就可以直接获取tcp的负载信息。
实施例1
如附图1和附图3所示,一种脱离协议栈的telnet代理方法,所述脱离协议栈的telnet代理方法包括以下步骤:
输入代理在接收到第一telnet报文请求包后,读取连接列表,并判断发送所述第一telnet报文请求包的客户端是否登记在所述连接列表中;若该客户端已登记在所述连接列表中,则将所述第一telnet报文请求包转发给异构平台的主异构模块,修改所述第一telnet报文请求包中的TCP首部并重新封装成第二telnet报文请求包后,转发给异构平台的从异构模块;
构建数据缓存列表,将已转发给从异构模块的第二telnet报文请求包登记在所述数据缓存列表;
在接收到某个异构模块返回的telnet报文响应包后,获取所述telnet报文响应包所响应的目标客户端,并判断该目标客户端是否登记在所述连接列表中;若该目标客户端已登记在所述连接列表中,则判断发送所述telnet报文响应包的异构模块是否为主异构模块;
若发送所述telnet报文响应包的异构模块为主异构模块,则将所述telnet报文响应包转发给所述目标客户端;若发送所述telnet报文响应包的异构模块为从异构模块,则提取所述telnet报文响应包中的确认标识码ACK,依据所述确认标识码ACK搜索所述数据缓存列表中是否存在对应的第二telnet报文请求包,并在搜索到对应的第二telnet报文请求包后执行删除操作。
其中,所述第一telnet报文请求包为客户端直接发送的请求包,所述第二telnet报文请求包为经过输入代理解包、修改并重新组包的请求包。
需要说明的是,本实施所谓的脱离协议栈指的是:在接收到客户端发送的第一telnet报文请求包时,输入代理根据协议对所述第一telnet报文请求包进行解析,提取出所述第一telnet报文请求包的TCP首部,进行修改获得新的TCP首部并重新封装成第二telnet报文请求包;以及在接收到从异构模块发送的telnet报文响应包时,输入代理根据协议对所述telnet报文响应包进行解析,提取所述telnet报文响应包中的确认标识码ACK,依据所述确认标识码ACK搜索所述数据缓存列表中是否存在对应的第二telnet报文请求包。
可以理解,输入代理在接收到返回的telnet报文响应包时,将主异构模块返回的telnet报文响应包转发给所述目标客户端,而从异构模块返回的telnet报文响应包不需要转发给所述目标客户端,从而隐藏真实的从异构模块,使用户无法感知到从异构模块的存在。
需要说明的是,在输入代理采用反向代理方式时,输入代理需要跑协议栈时,而协议栈是一个庞大的应用程序,势必占用输入代理的大量内存,增加输入代理的CPU开销。本实施例中,输入代理无需将自己的MAC地址和IP地址告诉任何一方(客户端或者异构平台),输入代理只是一个搬运工,将双方的信息分别转发给对方;因此,输入代理没有通过协议栈程序建立tcp连接,即没有实际的建连过程,只是通过修改第一telnet报文请求包中的TCP首部报文实现了反向代理的功能。
可以理解,客户端在向输入代理发送第一telnet报文请求包之前,需要发送第一次TCP握手包,以建立客户端与主异构模块之间的TCP连接,实现客户端与主异构模块之间的直连。
具体的,输入代理在接收第一telnet报文请求包之前,还执行:若输入代理接收到客户端发送的第一次TCP握手包,则将发送所述第一次TCP握手包的客户端登记在所述连接列表中,并将所述第一次TCP握手包分别转发给异构平台的主异构模块和从异构模块;
若输入代理接收到主异构模块返回的第二次TCP握手包,则将所述第二次TCP握手包传输至相应客户端,并记录主异构模块的初始同步标识码SEQ;若输入代理接收到从异构模块返回的第二次TCP握手包,则记录各个从异构模块的初始同步标识码SEQ;
若输入代理接收到客户端发送的第三次TCP握手包,则转发给主异构模块,并将所述第三次TCP握手包里的报文复制一份,根据所述第三次TCP握手中的确认标识码ACK与主异构模块初始同步标识码SEQ的偏移量,对确认标识码ACK进行更新,根据更新的确认标识码ACK来修改TCP首部并重新封装成第二telnet报文请求包后,转发给从异构模块。
进一步的,若该客户端未登记在所述连接列表中且该客户端发送的请求包不是第一次TCP握手包,则向该客户端发送复位报文。
如附图2所示,输入代理在接收到请求包时,查询发送该请求包的客户端是否登记在连接列表中,若该客户端未登记在所述连接列表中且所述请求包中存在第一次握手标识符,则判定该请求包为第一次TCP握手包,将该客户端的相关信息登记在所述连接列表中,以建立客户端与主异构模块之间的TCP连接;若该客户端未登记在所述连接列表中且该客户端发送的请求包中不存在第一次握手标识符,则判定该客户端发送的请求包不是第一次TCP握手包,向该客户端发送复位报文,以将终止该客户端与主异构模块的TCP连接。
可以理解,若客户端未登记在所述连接列表中且该客户端发送的请求包不是第一次TCP握手包,表示该客户端属于未知客户端,可能存在潜在威胁攻击,因此需要复位该客户端。
进一步的,若该客户端登记在所述连接列表中且所述第一telnet报文请求包中存在复位标识符或者挥手标识符,则将该客户端的相关信息从所述连接列表中删除,以断开主异构模块与该客户端之间的TCP连接。
需要说明的是,客户端连接数是有限制的,所以在收到某个客户端发送的复位标识符或者挥手标识符时,会将该客户端的相关信息从所述连接列表中删除,并删除该客户端的相关缓存数据,以减少输入代理的内存占用率。
进一步的,若所述目标客户端未登记在所述连接列表中,则向主异构模块和从异构模块发送复位报文,以复位发送telnet报文响应包的主异构模块和从异构模块。
可以理解,不管是主异构模块还是从异构模块发送的telnet报文响应包,只要telnet报文响应包携带的客户端信息不在连接列表中,都需要给相应的异构模块发复位报文;若连接列表中没有目标客户端的相关信息,说明主异构模块之前某种原因已经断开了与该客户端的通信,从异构模块无法感知客户端异常,会继续发送telnet报文响应包;因此,此时需要输入代理通过复位报文的方式告知从异构模块。
实施例2
本实施例与实施例1的区别在于,修改所述第一telnet报文请求包中的TCP首部并重新封装成第二telnet报文请求包时,执行:
输入代理读取主异构模块的初始同步标识码SEQ以及从异构模块的初始同步标识码SEQ,具体的,主异构模块对应初始同步标识码SEQ1,从异构模块1对应初始同步标识码SEQ2,从异构模块2对应初始同步标识码SEQ3,以此类推;所述初始同步标识码SEQ1为主异构模块随机生成的,所述初始同步标识码SEQ2为从异构模块1随机生成的,所述初始同步标识码SEQ3为从异构模块2随机生成的,以此类推;
在确认所述客户端发送的第一telnet报文请求包非第一次TCP握手包时,所述输入代理通过所述第一telnet报文请求包中的确认标识码ACK和主异构模块的初始同步标识码SEQ1,计算出主偏移量;并根据从异构模块的初始同步标识码SEQ和所述主偏移量,获得新的确认标识码ACK;使用新的确认标识码ACK替换所述第一telnet报文请求包中的确认标识码ACK,以维持输入代理与从异构模块之间telnet连接。
具体的,同一请求数据对应的所述第一telnet报文请求包与所述第二telnet报文请求包中所包含的同步标识码SEQ相同。
本实施例给出了客户端与主异构模块和从异构模块的几次交互过程:
(1)客户端向输入代理发送第一次TCP握手包,输入代理将所述第一次TCP握手包分别转发给异构平台的主异构模块和从异构模块时,无需修改确认标识码ACK和同步标识码SEQ;
首次向主异构模块和从异构模块传输请求数据,确认标识码ACK均为0;
(2)主异构模块和从异构模块分别向输入代理发送第二次TCP握手包,主异构模块发送的第二次TCP握手包中的同步标识码为初始同步标识码SEQ1,从异构模块1发送的第二次TCP握手包中的同步标识码为初始同步标识码SEQ2,从异构模块2发送的第二次TCP握手包中的同步标识码为初始同步标识码SEQ3,依次类推;
此时,输入代理记录主异构模块返回的第二次TCP握手包中的初始同步标识码SEQ1,以及各从异构模块返回的第二次TCP握手包中的初始同步标识码SEQi(i=2、3、4……);
(3)客户端向输入代理发送第三次TCP握手包,输入代理将第三次TCP握手包发送给主异构模块;
输入代理还通过所述第一telnet报文请求包中的确认标识码ACK减主异构模块的初始同步标识码SEQ1,计算出主偏移量;并通过所述从异构模块的同步标识码SEQ i(i=2、3、4……)加所述主偏移量,获得新的确认标识码ACK,对所述第一telnet报文请求包进行重新封装,并发送给从异构模块;此时,将所述第一telnet报文请求包中的确认标识码ACK替换为新的确认标识码ACK,所述第一telnet报文请求包中的同步标识码SEQ不变;
(4)在主异构模块和从异构模块分别向输入代理发送响应数据时,输入代理将主异构模块的telnet报文响应包直接转发给所述目标客户端;
此时,从异构模块返回的telnet报文响应包不转发给所述目标客户端;
(5)输入代理在接收到客户端发送的第一telnet报文请求包时,将所述第一telnet报文请求包转发给异构平台的主异构模块;
在将所述第一telnet报文请求包向各从异构模块转发之前,执行:通过所述第一telnet报文请求包中的确认标识码ACK减主异构模块的初始同步标识码SEQ1,计算出主偏移量;以及通过所述从异构模块的同步标识码SEQ i(i=2、3、4……)加所述主偏移量,获得新的确认标识码ACK,对所述第一telnet报文请求包进行重新封装,并发送给从异构模块;此时,将所述第一telnet报文请求包中的确认标识码ACK替换为新的确认标识码ACK,所述第一telnet报文请求包中的同步标识码SEQ不变;
在后续通信过程中,输入代理在接收到客户端发送的第一telnet报文请求包时,参照上述交互过程(3)和(5)修改所述第一telnet报文请求包中的TCP首部中的确认标识码ACK。
需要说明的是,在所述客户端发送的第一telnet报文请求包非第一次TCP握手包时,向主异构模块转发的是第一telnet报文请求包,所述第一telnet报文请求包中的确认标识码ACK为客户端发送过来的,是对主异构模块的同步标识码SEQ的应答;向从异构模块转发的是第二telnet报文请求包,所述第二telnet报文请求包中所包含的确认标识码ACK跟随主偏移量和初始同步标识码SEQi(i=2、3、4……)进行适应性变化。其中,主偏移量是一致的,各个从异构模块对应的同步标识码SEQi(i=2、3、4……)不同,因此新的确认标识码ACK也是不同的。
可以理解,输入代理依据主偏移量来调节所述第二telnet报文请求包中所包含的确认标识码ACK,从而使得主异构模块与从异构模块的数据交互过程保持同步。
实施例3
本实施例与上述实施例的区别在于,将所述第二telnet报文请求包登记在数据缓存列表后,还执行:
判断所述数据缓存列表中是否存在某个从异构模块未响应的第二telnet报文请求包,若存在某个从异构模块未响应的第二telnet报文请求包,则对相应从异构模块的漏响应次数进行加1处理,并将对应的第二telnet报文请求包重新转发给对应的从异构模块,从而解决从异构模块的报文重传问题。
需要说明的是,如附图4所示,客户端发送过来的请求数据都添加在数据缓存列表中,数据缓存列表有增加/删除/查找三种操作,依据从异构模块数据包的确认标识码acknum去数据缓存列表中查找没有得到响应的客户端请求数据重新给从异构模块发送一次,删除已经响应过的客户端请求数据;
如下表所示:
由上表可知,所述数据缓存列表对已转发给从异构模块的第二telnet报文请求包分别记录,记录每个从异构模块对应第二telnet报文请求包的同步标识码SEQ,依据所述telnet报文响应包中的确认标识码ACK与第二telnet报文请求包的同步标识码SEQ之间的关联关系,搜索所述数据缓存列表中是否存在与所述telnet报文响应包对应的第二telnet报文请求包,并对搜索到第二telnet报文请求包执行删除操作,从而删除已经响应过的客户端请求数据。
需要说明的是,所述telnet报文响应包中的确认标识码ACK与第二telnet报文请求包的同步标识码SEQ之间存在关联关系;所述telnet报文响应包中的确认标识码ACK是由第二telnet报文请求包的同步标识码SEQ、数据类型和数据长度确定的。
进一步的,更新每个从异构模块的当前漏响应次数,并判断每个从异构模块的当前漏响应次数是否超过阈值;若某个从异构模块的当前漏响应次数超过阈值,则断开输入代理与该从异构模块之间的telnet连接。具体的,阈值为20。
可以理解,一旦某个从异构模块的当前漏响应次数超过阈值,说明该某个从异构模块与输入代理之间通信异常,此时需要断开输入代理与该从异构模块之间的telnet连接,从而提高数据传输的安全性和稳定性。
实施例4
本实施例与上述实施例的区别在于:输入代理具备超时管理功能。
具体的,输入代理还配置超时时间阈值,在超过所述超时时间阈值未接收到某个客户端发送的第一telnet报文请求包时,将该客户端的相关信息从所述连接列表中删除,并删除该客户端的相关缓存信息;
在超过所述超时时间阈值未接收到主异构模块或者从异构模块发送的telnet报文响应包时,向该主异构模块或者从异构模块发送复位报文,并删除该主异构模块或者从异构模块的相关缓存信息,以进一步减少输入代理的内存占用率。
需要说明的是,若某个客户端或者异构模块(主异构模块或者从异构模块)超过一定时间未与输入代理通信,此时需要告知双方断开连接,并进行相关处理以减少输入代理的CPU开销。
实施例5
本实施例与上述实施例的区别在于:主异构模块及各个从异构模块之间通过VLAN进行隔离,以对主异构模块及各个从异构模块进行标记。
具体的,输入代理在将所述第一telnet报文请求包转发给异构平台的主异构模块之前,还在所述第一telnet报文请求包中插入第一VLAN标签ID;在将所述第二telnet报文请求包转发给异构平台的从异构模块之前,还在所述第二telnet报文请求包中插入第二VLAN标签ID。其中,所述第一VLAN标签ID和所述第二VLAN标签ID位于IP首部的前面。
其中,所述第一VLAN标签ID用于标记异构平台的主异构模块,所述第二VLAN标签ID用于标记异构平台的从异构模块,不同的从异构模块对应不同的第二VLAN标签ID;所述第一VLAN标签ID和所述第二VLAN标签ID在通信过程保持不变,以使输入代理区分返回的telnet报文响应包是来自主异构模块还是某个从异构模块。
实施例6
如附图5所示,本实施例给出了一种拟态防御架构,包括输入代理、异构执行体、裁决器、反馈调度模块和输出代理,所述输入代理执行上述的脱离协议栈的telnet代理方法的步骤。
所述脱离协议栈的telnet代理方法包括以下步骤:输入代理在接收到第一telnet报文请求包后,读取连接列表,并判断发送所述第一telnet报文请求包的客户端是否登记在所述连接列表中;
若该客户端已登记在所述连接列表中,则将所述第一telnet报文请求包转发给异构平台的主异构模块,修改所述第一telnet报文请求包中的TCP首部并重新封装成第二telnet报文请求包后,转发给异构平台的从异构模块;
构建数据缓存列表,将已转发给从异构模块的第二telnet报文请求包登记在所述数据缓存列表;
在接收到某个异构模块返回的telnet报文响应包后,获取所述telnet报文响应包所响应的目标客户端,并判断该目标客户端是否登记在所述连接列表中;若该目标客户端已登记在所述连接列表中,则判断发送所述telnet报文响应包的异构模块是否为主异构模块;
若发送所述telnet报文响应包的异构模块为主异构模块,则将所述telnet报文响应包转发给所述目标客户端;若发送所述telnet报文响应包的异构模块为从异构模块,则提取所述telnet报文响应包中的确认标识码ACK,依据所述确认标识码ACK搜索所述数据缓存列表中是否存在对应的第二telnet报文请求包,并在搜索到对应的第二telnet报文请求包后执行删除操作。
需要说明的是,所述输入代理通过两个网卡实现输入代理功能,一个接受客户端数据,一个接收异构模块数据,从而增加数据传输效率。
实施例7
本实施例给出了一种可读存储介质,其上存储有指令,该指令被处理器执行时实现如上述的脱离协议栈的telnet代理方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的架构和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (10)
1.一种脱离协议栈的telnet代理方法,其特征在于,包括以下步骤:
输入代理在接收到第一telnet报文请求包后,读取连接列表,并判断发送所述第一telnet报文请求包的客户端是否登记在所述连接列表中;
若该客户端已登记在所述连接列表中,则将所述第一telnet报文请求包转发给异构平台的主异构模块,修改所述第一telnet报文请求包中的TCP首部并重新封装成第二telnet报文请求包后,转发给异构平台的从异构模块;
构建数据缓存列表,将已转发给从异构模块的第二telnet报文请求包登记在所述数据缓存列表;
在接收到某个异构模块返回的telnet报文响应包后,获取所述telnet报文响应包所响应的目标客户端,并判断该目标客户端是否登记在所述连接列表中;若该目标客户端已登记在所述连接列表中,则判断发送所述telnet报文响应包的异构模块是否为主异构模块;
若发送所述telnet报文响应包的异构模块为主异构模块,则将所述telnet报文响应包转发给所述目标客户端;
若发送所述telnet报文响应包的异构模块为从异构模块,则提取所述telnet报文响应包中的确认标识码ACK,依据所述确认标识码ACK搜索所述数据缓存列表中是否存在对应的第二telnet报文请求包,并在搜索到对应的第二telnet报文请求包后执行删除操作。
2.根据权利要求1所述的脱离协议栈的telnet代理方法,其特征在于,输入代理在接收第一telnet报文请求包之前,还执行:
若输入代理接收到客户端发送的第一次TCP握手包,则将发送所述第一次TCP握手包的客户端登记在所述连接列表中,并将所述第一次TCP握手包分别转发给异构平台的主异构模块和从异构模块;
若输入代理接收到主异构模块返回的第二次TCP握手包,则将所述第二次TCP握手包传输至相应客户端,并记录主异构模块的初始同步标识码SEQ;若输入代理接收到从异构模块返回的第二次TCP握手包,则记录各个从异构模块的初始同步标识码SEQ;
若输入代理接收到客户端发送的第三次TCP握手包,则转发给主异构模块,并将所述第三次TCP握手包里的报文复制一份,根据所述第三次TCP握手中的确认标识码ACK与主异构模块初始同步标识码SEQ的偏移量,对确认标识码ACK进行更新,根据更新的确认标识码ACK来修改TCP首部并重新封装成第二telnet报文请求包后,转发给从异构模块。
3.根据权利要求2所述的脱离协议栈的telnet代理方法,其特征在于:修改所述第一telnet报文请求包中的TCP首部并重新封装成第二telnet报文请求包时,执行:
输入代理读取主异构模块的初始同步标识码SEQ以及从异构模块的初始同步标识码SEQ,
在确认所述客户端发送的第一telnet报文请求包非第一次TCP握手包时,所述输入代理通过所述第一telnet报文请求包中的确认标识码ACK和主异构模块的初始同步标识码SEQ,计算出主偏移量;并根据从异构模块的初始同步标识码SEQ和所述主偏移量,获得新的确认标识码ACK;
使用新的确认标识码ACK替换所述第一telnet报文请求包中的确认标识码ACK。
4.根据权利要求2所述的脱离协议栈的telnet代理方法,其特征在于:若该客户端未登记在所述连接列表中且该客户端发送的请求包不是第一次TCP握手包,则向该客户端发送复位报文;
若该客户端登记在所述连接列表中且所述第一telnet报文请求包中存在复位标识符或者挥手标识符,则将该客户端从所述连接列表中删除;
若所述目标客户端未登记在所述连接列表中,则向主异构模块和从异构模块发送复位报文。
5.根据权利要求1至4任一项所述的脱离协议栈的telnet代理方法,其特征在于:输入代理在将所述第一telnet报文请求包转发给异构平台的主异构模块之前,还在所述第一telnet报文请求包中插入第一VLAN标签ID;
在将所述第二telnet报文请求包转发给异构平台的从异构模块之前,还在所述第二telnet报文请求包中插入第二VLAN标签ID。
6.根据权利要求1所述的脱离协议栈的telnet代理方法,其特征在于:输入代理还配置超时时间阈值,在超过所述超时时间阈值未接收到某个客户端发送的第一telnet报文请求包时,将该客户端的相关信息从所述连接列表中删除,并删除该客户端的相关缓存信息;
在超过所述超时时间阈值未接收到主异构模块或者从异构模块发送的telnet报文响应包时,向该主异构模块或者从异构模块发送复位报文,并删除该主异构模块或者从异构模块的相关缓存信息。
7.根据权利要求1所述的脱离协议栈的telnet代理方法,其特征在于:将所述第二telnet报文请求包登记在数据缓存列表后,还执行:
判断所述数据缓存列表中是否存在某个从异构模块未响应的第二telnet报文请求包,若存在某个从异构模块未响应的第二telnet报文请求包,则对相应从异构模块的漏响应次数进行加1处理,并将对应的第二telnet报文请求包重新转发给对应的从异构模块。
8.根据权利要求7所述的脱离协议栈的telnet代理方法,其特征在于:更新每个从异构模块的当前漏响应次数,并判断每个从异构模块的当前漏响应次数是否超过阈值;
若某个从异构模块的当前漏响应次数超过阈值,则分别向客户端、主异构模块和从异构模块发送复位报文,以断开客户端与主异构模块之间的telnet连接。
9.一种拟态防御架构,包括输入代理、异构执行体、裁决器、反馈调度模块和输出代理,其特征在于:所述输入代理执行权利要求1至8任一项所述的脱离协议栈的telnet代理方法的步骤。
10.一种可读存储介质,其上存储有指令,其特征在于:该指令被处理器执行时实现如权利要求1至8任一项所述的脱离协议栈的telnet代理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011627349.XA CN112637238B (zh) | 2020-12-31 | 2020-12-31 | 脱离协议栈的telnet代理方法、架构及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011627349.XA CN112637238B (zh) | 2020-12-31 | 2020-12-31 | 脱离协议栈的telnet代理方法、架构及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637238A CN112637238A (zh) | 2021-04-09 |
CN112637238B true CN112637238B (zh) | 2022-08-16 |
Family
ID=75290264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011627349.XA Active CN112637238B (zh) | 2020-12-31 | 2020-12-31 | 脱离协议栈的telnet代理方法、架构及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637238B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226649B1 (en) * | 1997-06-23 | 2001-05-01 | Oracle Corporation | Apparatus and method for transparent access of foreign databases in a heterogeneous database system |
WO2018032399A1 (en) * | 2016-08-17 | 2018-02-22 | Zte Corporation | Server and method having high concurrency capability |
CN111431943A (zh) * | 2020-06-10 | 2020-07-17 | 之江实验室 | 一种拟态系统及其tcp代理的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334126B1 (en) * | 1999-12-30 | 2008-02-19 | At&T Corp. | Method and apparatus for secure remote access to an internal web server |
US8566452B1 (en) * | 2006-08-03 | 2013-10-22 | F5 Networks, Inc. | Intelligent HTTP based load-balancing, persistence, and application traffic management of SSL VPN tunnels |
WO2015076846A1 (en) * | 2013-11-25 | 2015-05-28 | Mcafee, Inc. | Secure proxy to protect private data |
US20200388390A1 (en) * | 2017-12-22 | 2020-12-10 | Koninklijke Philips N.V. | Digital health proxy system and device |
CN111541601B (zh) * | 2020-03-16 | 2021-08-17 | 中国人民解放军战略支援部队信息工程大学 | 动态异构冗余架构的交换设备中stp协议同步的方法及装置 |
CN111416865B (zh) * | 2020-03-24 | 2022-12-13 | 河南信大网御科技有限公司 | 一种基于拟态防御的协议代理处理方法及系统 |
CN111669342B (zh) * | 2020-04-25 | 2023-01-24 | 中国人民解放军战略支援部队信息工程大学 | 基于广义鲁棒控制的网络防御方法、系统及交换机 |
CN111740964B (zh) * | 2020-06-04 | 2022-03-25 | 河南信大网御科技有限公司 | 远程同步通信方法、拟态虚拟终端、异构执行体及介质 |
CN111885016B (zh) * | 2020-07-06 | 2023-06-16 | 河南信大网御科技有限公司 | 一种基于数据报文的快速裁决方法、系统及架构 |
-
2020
- 2020-12-31 CN CN202011627349.XA patent/CN112637238B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226649B1 (en) * | 1997-06-23 | 2001-05-01 | Oracle Corporation | Apparatus and method for transparent access of foreign databases in a heterogeneous database system |
WO2018032399A1 (en) * | 2016-08-17 | 2018-02-22 | Zte Corporation | Server and method having high concurrency capability |
CN111431943A (zh) * | 2020-06-10 | 2020-07-17 | 之江实验室 | 一种拟态系统及其tcp代理的方法 |
Non-Patent Citations (1)
Title |
---|
多媒体会议系统集成框架的研究和实现;李律松等;《计算机工程》;20061105(第21期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112637238A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7592906B1 (en) | Network policy evaluation | |
CN101366238B (zh) | 用于改进的基于网络的内容检查的系统和方法 | |
US10243928B2 (en) | Detection of stale encryption policy by group members | |
US8935419B2 (en) | Filtering device for detecting HTTP request and disconnecting TCP connection | |
US7890663B2 (en) | Identifying nodes in a ring network | |
US7386628B1 (en) | Methods and systems for processing network data packets | |
US7818786B2 (en) | Apparatus and method for managing session state | |
US20110317700A1 (en) | Method for real-time synchronization of arp record in rsmlt cluster | |
US20080172739A1 (en) | Attack defending system and attack defending method | |
US11689564B2 (en) | Method and apparatus for processing data in cleaning device | |
CN101009607A (zh) | 用于检测并防止网络环境中的洪流攻击的系统和方法 | |
CN102483702A (zh) | 用于网络设备中的虚拟机的网络话务处理流水线 | |
CN111064755B (zh) | 一种数据保护方法、装置、计算机设备和存储介质 | |
JP2008536369A (ja) | 接続転送 | |
CN110266650B (zh) | Conpot工控蜜罐的识别方法 | |
US20150030030A1 (en) | Network Adapter Based Zoning Enforcement | |
US20200059495A1 (en) | Method for managing data traffic within a network | |
CN109525633B (zh) | 区块链网络、基于区块链网络的消息发送、消息接收方法 | |
CN112637238B (zh) | 脱离协议栈的telnet代理方法、架构及介质 | |
WO2020020249A1 (zh) | 一种网络管理方法和装置 | |
CN112637236B (zh) | 脱离协议栈的http代理方法、架构及介质 | |
CN112583932B (zh) | 业务处理方法、装置及网络架构 | |
US20220014530A1 (en) | Protection method and protection device under direct routing mode | |
US8036218B2 (en) | Technique for achieving connectivity between telecommunication stations | |
CN107113280A (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 |