实现防端口扫描的零信任架构及服务端口访问方法和设备与流程

文档序号:25596290发布日期:2021-06-22 17:15阅读:131来源:国知局
实现防端口扫描的零信任架构及服务端口访问方法和设备与流程

本申请涉及网络安全技术领域,尤其涉及一种实现防端口扫描的零信任架构及服务端口访问方法和设备。



背景技术:

随着微服务理念的普及,一个系统会存在十几甚至几十个服务,分布在不同的ip地址上。由此,每个服务都需要一个鉴权模块以阻止未经授权者的访问。其中,在传统服务的鉴权中,存在两个特性:一、鉴权与服务是同一个地址,同一个端口;二、鉴权及提供服务的端口是固定不变且不长期开放的。但是,随着近年来安全需求的提升,尤其是零信任架构的重要性越发凸显的趋势下,鉴权及提供服务的端口固定不变通常会使得端口被扫描的风险提高,包括但不限于系统漏洞与字典档暴力破解等手段,因此,传统服务的鉴权模式在提高数据访问安全性方面,存在一定的劣势,这就使得端口访问的安全性较低。



技术实现要素:

有鉴于此,本申请提出了一种实现防端口扫描的零信任架构,可以有效提高端口访问的安全性。

根据本申请的一方面,提供了一种实现防端口扫描的零信任架构,包括集中式管理节点;其中,所述集中式管理节点配置有请求接收模块、鉴权模块、服务器选取模块、端口监听模块和信息发送模块;

所述请求接收模块,被配置为接收客户端发送的连接请求;

所述鉴权模块,被配置为在所述请求接收模块接收到客户端发送的连接请求后,对所述客户端的端口进行鉴权;

所述服务器选取模块,被配置为在所述客户端的端口鉴权通过时,由连接的服务器中选取当前空闲的服务器;

所述端口监听模块,被配置为在所述服务器选取模块由连接的服务器中选取出当前空闲的服务器后,与选取的所述当前空闲服务器进行监听端口协商;

所述信息发送模块,被配置为在所述监听端口协商通过之后,将所述客户端的端口地址发送至所述当前空闲服务器;

所述信息发送模块,还被配置为在接收到所述当前空闲服务器发送的允许连接指令后,将所述当前空闲服务器的信息发送至所述客户端,以使所述客户端根据接收到的所述当前空闲服务器的信息,与所述当前空闲服务器进行连接。

在一种可能的实现方式中,所述集中式管理节点还包括鉴权指令发送模块;

所述鉴权指令发送模块,被配置为在所述客户端的端口鉴权通过时,发送鉴权通过指令至所述客户端;

其中,所述服务器选取模块,被配置为在所述鉴权指令发送模块接收到所述客户端发送的要求分配服务器的请求后,检测连接的各服务器的当前状态,并由连接各服务器中选取其中一个当前状态为空闲的服务器作为当前空闲服务器。

在一种可能的实现方式中,所述服务器配置有白名单更新模块;

所述白名单更新模块,被配置为在接收到所述客户端的端口地址后,将所述客户端的端口信息记录到当前白名单中,并发送允许连接指令至所述集中式管理节点。

在一种可能的实现方式中,所述白名单更新模块,还被配置为在所述客户端与所述当前空闲服务器连完成业务请求并断开连接后,将所述客户端的端口信息由所述白名单中删除,并关闭所述当前空闲服务器的端口。

根据本申请的另一方面,还提供了一种服务端口访问方法,基于前面任一所述的实现防端口扫描的零信任架构进行,包括:

在接收到客户端发送的连接请求后,对所述客户端的端口进行鉴权;

在所述客户端的端口鉴权通过时,由连接的服务器中选取当前空闲的服务器,并与选取的所述当前空闲服务器进行监听端口协商;

在所述监听端口协商通过之后,将所述客户端的端口地址发送至所述当前空闲服务器,并在接收到所述当前空闲服务器发送的允许连接指令后,将所述当前空闲服务器的信息发送至所述客户端,以使所述客户端根据接收到的所述当前空闲服务器的信息,与所述当前空闲服务器进行连接。

在一种可能的实现方式中,在所述客户端的端口鉴权通过时,由连接的服务器中选取当前空闲的服务器时,包括:

在所述客户端的端口鉴权通过时,发送鉴权通过指令至所述客户端,并等待接收所述客户端发送的要求分配服务器的请求;

在接收到所述客户端发送的要求分配服务器的请求后,检测连接的各服务器的当前状态,并由连接各服务器中选取其中一个当前状态为空闲的服务器作为当前空闲服务器。

在一种可能的实现方式中,在所述监听端口协商通过之后,将所述客户端的端口地址发送至所述当前空闲服务器后,等待接收所述当前空闲服务器发送的允许连接指令时,所述允许连接指令通过所述当前空闲服务器更新访问白名单,将所述客户端的端口信息记录到当前白名单中实现。

在一种可能的实现方式中,在所述客户端与所述当前空闲服务器连完成业务请求并断开连接后,还包括:

将所述客户端的端口信息由所述白名单中删除,并关闭端口的操作。

在一种可能的实现方式中,在所述客户端与所述当前空闲服务完成业务请求断开连接后,还包括:

接收所述当前空闲服务器发送的确认业务完成指令,并释放资源的操作。

根据本申请的另一方面,还提供了一种服务端口访问设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。

通过在客户端与服务器端之间配置集中式管理节点,在客户端进行服务器的访问时,先由集中使管理节点对客户端的端口进行鉴权,并在鉴权通过之后再由集中式管理节点由服务器端选取相适应的端口发送给客户端。这就使得客户端在进行服务器端口的访问时,先要通过集中式管理节点的鉴权,而不是由服务器对客户端的端口进行鉴权。因而,这就只需要在系统中仅公开集中式管理节点的地址信息和固定端口即可,其他所有服务的地址和端口均不需要公开,全部时随机的,临时的,不可预测的,这就实现了完全遵照“零信任”的架构。并且,在集中式管理节点鉴权通过客户端的端口后,与服务器端还通过监听端口协商来实现对服务器端的端口的监听,从而也就更进一步的保证了客户端与服务器端之间的数据通讯的安全性。

根据下面参考附图对示例性实施例的详细说明,本申请的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。

图1示出本申请一实施例的实现防端口扫描的零信任架构的结构及数据流程图;

图2示出本申请一实施例的服务端口访问方法的流程图;

图3示出本申请一实施例的服务端口访问设备的结构框图。

具体实施方式

以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。

图1示出根据本申请一实施例的一种实现防端口扫描的零信任架构100的架构及数据流程图。如图1所示,该零信任架构100包括:集中式管理节点110。此处,需要指出的是,该集中式管理节点110作为客户端130与服务器120端之间的通信连接管理模块,用于管理客户端130与服务器120端之间的端口连接。

具体的,在本申请实施例的实现防端口扫描的零信任架构100中,集中式管理节点110包括:请求接收模块、鉴权模块、服务器选取模块、端口监听模块和信息发送模块。其中,请求接收模块,被配置为接收客户端130发送的连接请求。鉴权模块,被配置为在请求接收模块接收到客户端130发送的连接请求后,对客户端130的端口进行鉴权。服务器选取模块,被配置为在客户端130的端口鉴权通过时,由连接的服务器120中选取当前空闲的服务器120。端口监听模块,被配置为在服务器选取模块由连接的服务器120中选取出当前空闲的服务器120后,与选取的当前空闲服务器120进行监听端口协商。信息发送模块,被配置为在监听端口协商通过之后,将客户端130的端口地址发送至当前空闲服务器120。信息发送模块,还被配置为在接收到当前空闲服务器120发送的允许连接指令后,将当前空闲服务器120的信息发送至客户端130,以使客户端130根据接收到的当前空闲服务器120的信息,与当前空闲服务器120进行连接。

由此,本申请实施例的实现防端口扫描的零信任架构100,通过在客户端130与服务器120端之间配置集中式管理节点110,在客户端130进行服务器120的访问时,先由集中使管理节点对客户端130的端口进行鉴权,并在鉴权通过之后再由集中式管理节点110由服务器120端选取相适应的端口发送给客户端130。这就使得客户端130在进行服务器120端口的访问时,先要通过集中式管理节点110的鉴权,而不是由服务器120对客户端130的端口进行鉴权。因而,这就只需要在系统中仅公开集中式管理节点110的地址信息和固定端口即可,其他所有服务的地址和端口均不需要公开,全部时随机的,临时的,不可预测的,这就实现了完全遵照“零信任”的架构。并且,在集中式管理节点110鉴权通过客户端130的端口后,与服务器120端还通过监听端口协商来实现对服务器120端的端口的监听,从而也就更进一步的保证了客户端130与服务器120端之间的数据通讯的安全性。

其中,还需要指出的是,在本申请实施例的实现防端口扫描的零信任架构100中,与集中式管理节点110相连接的每台服务器120的端口均设置为按需开放,并且每次开放随机端口。开放的端口由集中式管理节点110统一管理和分布。

此外,在本申请一实施例的实现防端口扫描的零信任架构100中,集中式管理节点110还包括鉴权指令发送模块。其中,鉴权指令发送模块,被配置为在客户端130的端口鉴权通过时,发送鉴权通过指令至客户端130,并等待接收客户端130发送的要求分配服务器120的请求。同时,服务器选取模块,被配置为在鉴权指令发送模块接收到客户端130发送的要求分配服务器120的请求后,检测连接的各服务器120的当前状态,并由连接各服务器120中选取其中一个当前状态为空闲的服务器120作为当前空闲服务器120。

也就是说,参阅图1,在集中式管理模块接收到客户端130发送的连接请求后,集中式管理节点110对接收到的客户端130的端口进行鉴权,在鉴权通过后,再由鉴权指令发送模块将鉴权指令发送至客户端130。客户端130接收到集中式管理节点110发送的鉴权通过指令后,即可发送要求分配服务器120的请求至集中式管理节点110,由此来实现客户端130访问集中式管理节点110,通过集中式管理节点110进行鉴权后再索取服务器120的ip地址和端口信息。

此处,需要指出的是,客户端130可以为多个,在多个客户端130同时访问集中式管理节点110,向集中式管理节点110发送连接请求时,集中式管理节点110可以按照预设规则对接收到的多个客户端130的端口进行鉴权。如:可以按照连接请求的接收时间进行排序,依次对各客户端130的端口进行鉴权。也可以通过对各客户端130进行优先级排序,如:按照客户端130的端口大小进行排序来依次对各客户端130的端口进行鉴权。

集中式管理节点110在接收到客户端130发送的要求分配服务器120的请求后,即可进行与当前接收到的客户端130的端口相匹配的服务器120的选取。其中,需要指出的是,在进行服务器120的选取时,可以根据各服务器120的当前状态进行选取。即,由服务器选取模块检测连接到集中式管理节点110的各服务器120的当前状态,并由连接各服务器120中选取其中一个当前状态为空闲的服务器120作为当前空闲服务器120。

其中,在进行服务器状态的检测可以基于snmp协议来实现。即,每台服务器120都启用snmp服务。集中式管理节点110中的服务器选取模块作为snmp客户端定期运行snmpwalk命令对每台服务器120获取下列(包括但不限于)oid:

1minuteload:.1.3.6.1.4.1.2021.10.1.3.1;

5minuteload:.1.3.6.1.4.1.2021.10.1.3.2;

15minuteload:.1.3.6.1.4.1.2021.10.1.3.3;

percentageofusercputime:.1.3.6.1.4.1.2021.11.9.0;

percentagesofsystemcputime:.1.3.6.1.4.1.2021.11.10.0;

percentagesofidlecputime:.1.3.6.1.4.1.2021.11.11.0;

totalraminmachine:.1.3.6.1.4.1.2021.4.5.0;

totalramfree:.1.3.6.1.4.1.2021.4.11.0;

服务器选取模块根据预设的规则选取空闲的服务器,比如:以系统5分钟平均负荷选取;以cpu的空闲程度选取;以内存的空闲空闲程度选取。

其中,对以上规则的加权取决于服务器提供的服务类型对系统资源的开销。

此外,在另一种可能的实现方式中,服务器状态的检测也可以基于ssh配合检测脚本来实现。即,集中式管理节点中的服务器选取模块登录上服务器,通过以下命令获取系统空闲状态,包括但不限于:

常用命令uptime:获取系统负荷;

常用命令vmstat:获取内存状态;

常用命令iostat:获取io负荷;

常用命令lsof:打开文件列表;

此外还可以根据服务自定义检测脚本,比操作系统自带的常用命令更精准更灵活。

同时,在集中式管理节点110选取好当前空闲服务器120之后,还包括协商服务器120监听端口的操作。这是由于连接至集中式管理节点110的各服务器120的端口均是按需开放的,并且每次开放端口时也是随机进行开放。因此,在集中式管理节点110选取好当前空闲服务器120后,还需要确定当前能够与客户端130进行数据通信的空闲端口。因此,在本申请实施例的实现防端口扫描的零信任架构100中,还通过设置集中式管理节点110与服务器120协商监听端口,以实现针对不同的客户端130的端口选取特定服务器120端的端口的目的。

参阅图1,在集中式管理节点110与服务器120协商好监听端口之后,服务器120将协商好的监听端口发送给集中式管理节点110。集中式管理节点110此时再将客户端130的端口信息(如:ip地址)发送给当前空闲的服务器120。

其中,在一种可能的实现方式中,服务器120配置有白名单更新模块。白名单更新模块,被配置为在接收到客户端130的端口地址后,将客户端130的端口信息记录到当前白名单中,并发送允许连接指令至集中式管理节点110。通过在服务器120设置白名单更新模块,使得整个系统架构具有白名单机制,这就使得只有被指定的客户端130ip地址才可以连接上被分配的服务器120的特定端口,其他没有被指定的客户端130端口是不能随意连接到被分配的服务器120的端口上的,这也就更进一步的提高了本申请实施例的架构的安全性。

在服务器120的白名单更新模块对客户端130的端口进行了再一下的审核并通过审核记录到白名单之后,即可下发服务就绪的指令至集中式管理节点110(即,参阅图1)。

集中式管理节点110接收到服务器120端下发的服务就绪的指令后,即可将该服务器120的信息(包括服务器120ip地址以及该服务器120开放的监听端口等信息)发送给客户端130。客户端130的ip地址被列入该服务器120的白名单。

然后,客户端130再根据接收到的服务器120的信息直接发送连接请求至服务器120的监听端口,服务器120接收客户端130的连接请求并提供相应的服务给客户端130。在客户端130完全业务之后与服务器120断开连接。

此处,需要指出的是,参阅图1,在客户端130完全业务与服务器120端断开连接之后,配置在服务器120上的白名单更新模块,还被配置为将客户端130的端口信息由白名单中删除,并关闭当前空闲服务器120的端口,从而实现服务器120回收端口的目的。同时,服务器120还发送业务完成,释放资源的指令至集中式管理节点110,以通知集中式管理节点110,使得集中式管理节点110能够实时获取到所连接的各服务器120的当前端口状态。

另外,还需要指出的是,在集中式管理节点110中所配置的鉴权模块,可以内置集中式管理节点110,也可以采用外置的方式。即,可以通过在集中式管理节点110内配置鉴权模块,也可以通过外置鉴权模块的形式独立与集中式管理节点110进行通信,并通过修改配置文件或api等方式通知传统客户端130如何连接服务器120,不需要对客户端130进行深度改造。

并且,集中式管理节点110还可以与服务发现/注册节点整合,共享现成的通信架构,不需要在单独重新设置系统架构。

相应的,基于前面任一所述的实现防端口扫描的零信任架构100,本申请还提供了一种服务端口访问方法。需要指出的是,本申请提供的服务端口访问方法是基于前面任一所述的实现防端口扫描的零信任架构100来实现的,其原理与实现防端口扫描的零信任架构100的工作原理相同或相似,因此重复之处不再赘述。

参阅图2和图1,本申请提供的一种服务端口访问方法,包括:步骤s100,在接收到客户端130发送的连接请求后,对客户端130的端口进行鉴权。步骤s200,在客户端130的端口鉴权通过时,由连接的服务器120中选取当前空闲的服务器120,并与选取的当前空闲服务器120进行监听端口协商。步骤s300,在监听端口协商通过之后,将客户端130的端口地址发送至当前空闲服务器120,并在接收到当前空闲服务器120发送的允许连接指令后,将当前空闲服务器120的信息发送至客户端130,以使客户端130根据接收到的当前空闲服务器120的信息,与当前空闲服务器120进行连接。

在一种可能的实现方式中,在客户端130的端口鉴权通过时,由连接的服务器120中选取当前空闲的服务器120时,包括:

在客户端130的端口鉴权通过时,发送鉴权通过指令至客户端130,并等待接收客户端130发送的要求分配服务器120的请求;

在接收到客户端130发送的要求分配服务器120的请求后,检测连接的各服务器120的当前状态,并由连接各服务器120中选取其中一个当前状态为空闲的服务器120作为当前空闲服务器120。

在一种可能的实现方式中,在监听端口协商通过之后,将客户端130的端口地址发送至当前空闲服务器120后,等待接收当前空闲服务器120发送的允许连接指令时,允许连接指令通过当前空闲服务器120更新访问白名单,将客户端130的端口信息记录到当前白名单中实现。

在一种可能的实现方式中,在客户端130与当前空闲服务器120连完成业务请求并断开连接后,还包括:将客户端130的端口信息由白名单中删除,并关闭端口的操作。

在一种可能的实现方式中,在客户端130与当前空闲服务完成业务请求断开连接后,还包括:接收当前空闲服务器120发送的确认业务完成指令,并释放资源的操作。

需要说明的是,尽管以图1作为示例介绍了如上所述的实现防端口扫描的零信任架构100,但本领域技术人员能够理解,本申请应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定架构各部分的具体实现方式,只要能够实现客户端130在访问服务器120端口时,先通过集中式管理节点110端口的访问即可。

更进一步地,根据本申请的另一方面,还提供了一种服务端口访问设备200。参阅图3,本申请实施例的服务端口访问设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的服务端口访问方法。

此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本申请实施例的服务端口访问设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。

存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本申请实施例的服务端口访问方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行服务端口访问设备200的各种功能应用及数据处理。

输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器120的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。

以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1