一对多telnet远程通信方法、拟态防御架构及介质与流程

文档序号:23895501发布日期:2021-02-09 12:05阅读:109来源:国知局
一对多telnet远程通信方法、拟态防御架构及介质与流程

[0001]
本发明涉及拟态防御技术领域,具体的说,涉及了一对多telnet远程通信方法、拟态防御架构及介质。


背景技术:

[0002]
telnet 协议的全称为电信网络协议(telnet communication network),是因特网远程登录实现网络互联设备管理的主要方式之一,也是tcp/ip 协议族中应用最广泛的协议,位于tcp/ip协议栈的应用层,它为用户提供了在本地计算机上操作远程计算机的能力。远程计算机又称为telnet主机或服务器,本地计算机作为telnet客户机来使用,它起到远程主机的一台虚拟终端的作用,通过它用户可以与主机上的其他用户一样共同使用该主机提供的服务和资源。
[0003]
telnet协议通过网络/互联网传输明文格式的数据(包括密码),所以谁都能嗅探数据包,即telnet协议不是一种安全通信协议,因此,telnet协议不再用于通过公共网络访问网络设备和服务器。但在工业和科学领域,还有大量的设备将telnet协议作为唯一的控制通道,有些设备甚至只有一个rs-232接口,需要通过串口服务器进行转换才能支持telnet协议;这些设备使用ssh(secure shell)协议还存在一定的问题,甚至无法使用ssh(secure shell)协议。也就是说,在这种情况下,这些设备需要且只能通过telnet协议进行远程通信。
[0004]
telnet协议是一对一的网络协议,其认证登录过程,首先会交互命令序列(iac字节开始)字符,协商彼此的终端属性和配置,然后客户端(本地计算机)向telnet service(远程计算机)提交用户账户和密码,验证通过后,才登录成功;也就是说,在同一时间段内,一台客户端(本地计算机)只能与一台telnet service(远程计算机)远程通信,即当前telnet协议不支持一对多的远程通信方式。
[0005]
但是,在拟态架构中,客户端通常需要通过telnet协议同时登录多个在线异构执行体,同步进行多个在线异构执行体的命令配置工作。
[0006]
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。


技术实现要素:

[0007]
本发明的目的是针对现有技术的不足,从而提供一种一对多telnet远程通信方法、拟态防御架构及介质。
[0008]
为了实现上述目的,本发明所采用的技术方案是:本发明第一方面提供一种一对多telnet远程通信方法,所述方法包括以下步骤:步骤1,输入代理判断客户端是否远程同步登录各个在线异构执行体;如果客户端未远程同步登录各个在线异构执行体,输入代理则选用第一数据转发策略将配置信息复制分发给各个在线异构执行体,以使各个在线异构执行体之间配置同步,并转步骤2;
如果客户端已远程同步登录各个在线异构执行体,则转步骤4;步骤2,所述输入代理选用第一数据转发策略将账号和密码复制分发给各个在线异构执行体;步骤3,输入代理再次判断客户端是否远程同步登录各个在线异构执行体;如果客户端已远程同步登录各个在线异构执行体,则将所述输入代理的数据转发策略从第一数据转发策略修改为第二数据转发策略;步骤4,输入代理按照第二数据转发策略进行客户端与各个在线异构执行体之间的数据转发。
[0009]
本发明第二方面提供一种拟态防御架构,包括输入代理、异构执行体、裁决器、反馈调度模块和输出代理,所述输入代理执行上述一对多telnet远程通信方法的步骤。
[0010]
本发明第三方面提供一种可读存储介质,其上存储有指令,该指令被处理器执行时实现如上述一对多telnet远程通信方法的步骤。
[0011]
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说:1)本发明提供了一种一对多telnet远程通信方法、拟态防御架构及介质,在客户端远程同步登录成功各个在线异构执行体之前,输入代理按照第一数据转发策略将配置信息复制分发给各个在线异构执行体,以保证各个在线异构执行体之间的配置同步;所述输入代理还按照第一数据转发策略将账号和密码复制分发给各个在线异构执行体,以保证各个在线异构执行体的认证过程同步;因此,本发明能够保证输入代理与各个在线异构执行体之间传输字节的严格同步,使得多个在线异构执行体能够同步远程登录成功,从而实现拟态架构下基于telnet协议的一对多远程登录服务;2)在确认客户端已远程同步登录各个在线异构执行体后,所述输入代理将数据转发策略从第一数据转发策略修改为第二数据转发策略,从而在保证客户端能够远程同步登录多个在线异构执行体的前提下,当有大量数据需要输出到后端的各个在线异构执行体时,不会造成用户命令行卡顿,不会降低用户的交互体验。
附图说明
[0012]
图1是本发明的一种实施例的一对多telnet远程通信方法的流程图;图2是本发明的结构示意图;图3是本发明的另一种实施例的一对多telnet远程通信方法的流程图。
具体实施方式
[0013]
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
[0014]
实施例1附图1示出了一种一对多telnet远程通信方法的流程图,所述一对多telnet远程通信方法包括以下步骤:步骤1,输入代理判断客户端是否远程同步登录各个在线异构执行体;如果客户端未远程同步登录各个在线异构执行体,输入代理则选用第一数据转发策略将配置信息复制分发给各个在线异构执行体,以使各个在线异构执行体之间配置同步,并转步骤2;
如果客户端已远程同步登录各个在线异构执行体,则转步骤4;步骤2,所述输入代理选用第一数据转发策略将账号和密码复制分发给各个在线异构执行体;步骤3,输入代理再次判断客户端是否远程同步登录各个在线异构执行体;如果客户端已远程同步登录各个在线异构执行体,则将所述输入代理的数据转发策略从第一数据转发策略修改为第二数据转发策略;步骤4,输入代理按照第二数据转发策略进行客户端与各个在线异构执行体之间的数据转发。
[0015]
虽然telnet协议并不使用任何安全机制,但是在某些拟态设备上,尤其是一些配置较低的老旧设备上(这些设备可能不具备ssh等其他远程登录方式),通常需要通过telnet协议远程登录各个在线异构执行体,同步进行多个在线异构执行体的命令配置工作。因此,某些特殊场景下,这些配置较低的老旧设备需要且只能通过telnet协议进行远程通信。
[0016]
例如,在一种具体实施方式中,客户端远程控制各个在线异构执行体,是为了进行一些测试等操作,并非传输敏感通信数据,在这种情况下,无需借助更为安全且繁琐的其他远程登录方式。
[0017]
如附图2所示,创建一个telnet输入代理,在发送账号和相应的密码之前,telnet输入代理接收前端telnet客户端的配置信息,并选用第一数据转发策略将配置信息复制分发给各个在线异构执行体,进行一个telnet客户端与多个在线异构执行体之间的操作选项协商,使各个在线异构执行体与telnet客户端同步协商一致,为一个telnet客户端与多个在线异构执行体之间同步远程通信做准备。
[0018]
在一个telnet客户端与多个在线异构执行体之间配置过程之后,telnet输入代理还接收telnet客户端发送的账号或者密码,然后将账号或者密码按照第一数据转发策略分发给后端的多个在线异构执行体。
[0019]
本实施例中,telnet输入代理不解析客户端的任何输入信息,无需获得完整的用户账户和密码,只是单纯的将用户输入数据实时传递到后端的在线异构执行体telnet service,telnet输入代理在不获取完整登录账户和密码的前提下,用telnet协议同时登录认证多个在线异构执行体的方法,对拟态设备有较大帮助。
[0020]
需要说明的是,要做到多个在线异构执行体的同时登录认证成功,必须做到各个在线异构执行体同步配置成功,以及各个在线异构执行体传输字节的严格同步;但是在登录认证成功后,若有大量数据需要通过telnet输入代理转发时,字节的严格同步,会造成命令行的卡顿,严重影响用户的命令行交互体验。
[0021]
为了保证多个在线异构执行体能够同时登录认证成功,且不会造成用户命令行的卡顿。本实施例设置两种数据转发策略:第一数据转发策略和第二数据转发策略。所述输入代理按照第一数据转发策略复制分发配置信息、账号或者密码,按照第二数据转发策略进行客户端与各个在线异构执行体之间的后续数据转发。
[0022]
进一步的,判断客户端是否远程同步登录各个在线异构执行体时,执行:输入代理接收各个在线异构执行体返回的登录提示信息;若获取到每个在线异构执行体的登录提示信息且所述登录提示信息均包含第一目标提示信息,则判定客户端远程同步登录各个在线
异构执行体;否则,判定客户端未远程同步登录各个在线异构执行体,远程同步登录失败。
[0023]
若某个在线异构执行体未返回登录提示信息,输入代理进程会等待,若等待超时后,仍然没有收到该在线异构执行体的登录提示信息,则判定本次远程同步登录失败。
[0024]
可以理解,当输入代理获得各个在线异构执行体的登录提示信息,同时各个登录提示信息均包含第一目标提示信息时,才判定客户端远程同步登录各个在线异构执行体。其中,第一目标提示信息为类似telnet登录成功的提示消息,telnet输入代理检索到此提示消息后,改变对telnet客户端和各个在线异构执行体的读取模式。
[0025]
进一步的,所述输入代理将第一数据转发策略修改为第二数据转发策略时,各个在线异构执行体之间的同步方式从字节同步变为消息同步。
[0026]
在各个在线异构执行体的同步登录认证成功后,每个异构执行体都会回复给telnet输入代理,类似telnet登录成功的提示消息,telnet代理检索到此提示消息后,改变对telnet客户端和异构执行体的读取模式,从一次只读取异构执行体的一个字节变为一次读取所有的缓存消息,发送时也一次发送所有缓存消息,其同步方式从字节同步变为消息同步,以解决当有大量数据输出到前端时造成用户命令行卡顿的问题。
[0027]
具体的,所述一对多telnet远程通信方法基于linux系统实现,本发明在此不作限制。
[0028]
实施例2本实施例给出了一种第一数据转发策略的具体实施方式。
[0029]
具体的,所述第一数据转发策略为单字节转发策略,所述输入代理按照第一数据转发策略复制分发配置信息、账号或者密码时,执行:将配置信息、账号或者密码按字节划分为一组有序的第一数据块,基于每个第一数据块组成一组有序的单字节数据包,并将所述单字节数据包按顺序复制分发给各个在线异构执行体。其中,每个单字节数据包只存储一个字节的待转发数据(配置信息、账号或者密码)。
[0030]
需要说明的是,所述输入代理在转发客户端发送的配置信息或者账号和密码时,无需对配置信息或者账号和密码进行过滤、筛选等复杂操作,也无需抓取完整的配置信息或者完整的账号和密码,防止配置信息或者账号和密码泄漏,大大提高了一对多telnet远程通信方法的安全可靠性。
[0031]
可以理解,telnet协议是基于网络虚拟终端 nvt(network virtual termina1)的实现,当定义了网络虚拟终端设备后,通信的双方就可以在一个较低的层次上实现数据通信,但简单的 nvt 设备是没有实际应用意义的。为了实现对多种终端特性的支持,telnet协议规定在扩展nvt功能时采用协商的机制,只有通信双方通过协商后达成一致的特性才能使用。也就是说,如果要使客户端同步远程控制各个在线异构执行体,客户端需要同时与多个在线异构执行体进行协商,并保证客户端同时与多个在线异构执行体协商一致。
[0032]
具体的,所述配置信息用于进行操作选项协商以及子选项协商,所述配置信息包括一系列操作选项协商命令。
[0033]
需要说明的是,所述输入代理按照第一数据转发策略将每个操作选项协商命令复制分发给各个在线异构执行体后,还需要获取各个在线异构执行体针对该操作选项协商命令返回的响应信息,选取一个在线异构执行体作为目标异构执行体,并按照第一数据转发
策略将目标异构执行体的响应信息传输至客户端。
[0034]
可以理解,一个telnet客户端与多个在线异构执行体之间的配置过程是有问有答的协商过程;telnet客户端发送的每一个操作选项协商命令(操作选项协商命令的数量为一个或者一个以上),均需要获得对应在线异构执行体的响应信息,经过客户端与各个在线异构执行体之间多次操作协议命令交互,且保证各个在线异构执行体同步完成配置,才有可能保证各个在线异构执行体同时认证成功;如果某次操作协议命令交互不同步,则会使各个在线异构执行体不能同步完成配置,进而导致客户端将无法同步远程控制各个在线异构执行体。
[0035]
所述输入代理按照第一数据转发策略将目标异构执行体的响应信息时,执行:各个在线异构执行体每次返回响应信息中的一个字节数据,输入代理每次读取各个在线异构执行体的响应信息中的一个字节数据,以保证多个在线异构执行体的字节严格同步,使得多个在线异构执行体同时登陆认证;将目标异构执行体的响应信息中的一个字节数据传输给客户端,客户端每次获取响应信息中的一个字节数据,重复多次后,获得完整的响应信息。
[0036]
其中,目标异构执行体可以为任意一个在线异构执行体,也可以为第一个tcp连接成功的在线异构执行体。
[0037]
可以理解,一个telnet客户端与多个在线异构执行体之间配置过程采用协商的方式,为了保证各个在线异构执行体同步完成配置,所述第一数据转发策略为单字节转发策略,从而使得读取多个在线异构执行体返回的响应信息时、以及向多个在线异构执行体写配置信息时,多个在线异构执行体之间字节严格同步,保证了各个在线异构执行体配置同步。
[0038]
实施例3本实施例给出了一种第二数据转发策略的具体实施方式。
[0039]
具体的,所述第二数据转发策略为多字节转发策略,所述输入代理按照多字节转发策略进行客户端与各个在线异构执行体之间的数据转发时,执行:输入代理一次读取客户端所有的缓存消息,并复制分发给各个在线异构执行体;输入代理一次读取各个在线异构执行体所有的缓存消息,并将目标异构执行体的缓存消息复制分发给客户端。
[0040]
可以理解,单字节转发策略和多字节转发策略为输入代理对各个在线异构执行体的缓存读写时采用的策略,输入代理对客户端的缓存读写采用一次性全部读,一次性全部写。
[0041]
需要说明的是,在客户端远程同步登录各个在线异构执行体之前,输入代理一次向各个在线异构执行体写入一个字节数据,以及一次读取各个在线异构执行体的一个字节数据,将目标异构执行体的一个字节数据写入客户端;在客户端远程同步登录各个在线异构执行体之前之后,输入代理从一次只读取在线异构执行体的一个字节变为一次读取在线异构执行体的所有缓存消息,发送时也一次将所有缓存消息写入客户端,各个在线异构执行体之间的同步方式从字节同步变为消息同步,从而解决当有大量数据输出到前端时,造成用户命令行卡顿的问题。
[0042]
实施例4本实施例与上述实施例的区别在于:如附图3所示,所述步骤2中,在输入代理选用第一
数据转发策略将账号和密码复制分发给各个在线异构执行体之前,还执行:判断各个在线异构执行体是否同步完成配置;如果各个在线异构执行体已同步完成配置,所述输入代理则选用第一数据转发策略将账号和密码复制分发给各个在线异构执行体;如果各个在线异构执行体未同步完成配置,则重复执行步骤1。
[0043]
进一步的,判断各个在线异构执行体是否同步完成配置时,执行:接收各个在线异构执行体返回的配置提示信息;若获取到每个在线异构执行体的配置提示信息且所述配置提示信息均包含第二目标提示信息,则判定各个在线异构执行体已同步完成配置;否则,判定各个在线异构执行体未同步完成配置,即各个在线异构执行体同步配置失败。
[0044]
若某个在线异构执行体未返回配置提示信息,输入代理进程会等待,若等待超时后,仍然没有收到该在线异构执行体的配置提示信息,则判定本次同步配置失败。
[0045]
优选的,所述第二目标提示信息为欢迎信息,每个异构执行体返回的欢迎信息长度相等。
[0046]
需要说明的是,telnet客户端在真正登录认证telnet service异构执行体之前,会向客户端输出欢迎信息,一般这个欢迎信息在异构执行体的”/etc/issue.net”配置文件中存储,要保证客户端和各个在线异构执行体多次交互以后,各个在线异构执行体都可以正常的认证登录,每个异构执行体的欢迎信息长度必须相等。
[0047]
上述实施例中,所述输入代理判断各个在线异构执行体是否同步完成配置时,也可以不检索是否获得各个在线异构执行体的配置提示信息,而是直接默认各个在线异构执行体同步完成配置。
[0048]
进一步的,各个在线异构执行体每次返回配置提示信息的一个字节数据,输入代理每次读取各个在线异构执行体的配置提示信息中的一个字节数据,以保证多个在线异构执行体的字节严格同步;将目标异构执行体的配置提示信息中的一个字节数据传输给客户端,客户端每次获取配置提示信息中的一个字节数据,重复多次后,获得完整的配置提示信息。
[0049]
可以理解,由于在用户认证之前,一定要保证多个在线异构执行体之间的字节严格同步,这样才能在保证各个在线执行体登录认证的时候,是多个同时登录认证。
[0050]
实施例5本实施例给出了一种拟态防御架构的具体实施方式,所述拟态防御架构包括输入代理、异构执行体、裁决器、反馈调度模块和输出代理,所述输入代理执行上述一对多telnet远程通信方法的步骤。
[0051]
一种具体实施方式中,所述一对多telnet远程通信方法包括以下步骤:步骤1,输入代理判断客户端是否远程同步登录各个在线异构执行体;如果客户端未远程同步登录各个在线异构执行体,输入代理则选用第一数据转发策略将配置信息复制分发给各个在线异构执行体,以使各个在线异构执行体之间配置同步,并转步骤2;如果客户端已远程同步登录各个在线异构执行体,则转步骤4;步骤2,所述输入代理选用第一数据转发策略将账号和密码复制分发给各个在线异构执行体;
步骤3,输入代理再次判断客户端是否远程同步登录各个在线异构执行体;如果客户端已远程同步登录各个在线异构执行体,则将所述输入代理的数据转发策略从第一数据转发策略修改为第二数据转发策略;步骤4,输入代理按照第二数据转发策略进行客户端与各个在线异构执行体之间的数据转发。
[0052]
在另一种具体实施方式中,所述一对多telnet远程通信方法包括以下步骤:步骤1,判断客户端是否远程同步登录各个在线异构执行体,如果客户端未远程同步登录各个在线异构执行体,输入代理则选用第一数据转发策略将配置信息复制分发给各个在线异构执行体,以使各个在线异构执行体之间配置同步,并转步骤2;如果客户端已远程同步登录各个在线异构执行体,则转步骤4;步骤2,判断各个在线异构执行体是否同步完成配置,如果各个在线异构执行体已同步完成配置,所述输入代理则选用第一数据转发策略将账号和密码复制分发给各个在线异构执行体;如果各个在线异构执行体未同步完成配置,则重复执行步骤1;步骤3,再次判断客户端是否远程同步登录各个在线异构执行体,如果客户端已远程同步登录各个在线异构执行体,则将所述输入代理的数据转发策略从第一数据转发策略修改为第二数据转发策略;如果客户端未远程同步登录各个在线异构执行体,则重复执行步骤2;步骤4,按照第二数据转发策略进行客户端与各个在线异构执行体之间的数据转发。
[0053]
实施例6本实施例给出了一种可读存储介质,其上存储有指令,该指令被处理器执行时实现如上述一对多telnet远程通信方法的步骤。
[0054]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0055]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0056]
在本申请所提供的实施例中,应该理解到,所揭露的架构和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0057]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0058]
上述集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个
方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
[0059]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1