一种SSLVPN的测试方法及装置与流程

文档序号:29708525发布日期:2022-04-16 16:29阅读:477来源:国知局
一种SSLVPN的测试方法及装置与流程
一种sslvpn的测试方法及装置
技术领域
1.本技术涉及通信技术领域,具体涉及一种sslvpn的测试方法及装置。


背景技术:

2.基于安全套接字层协议(security socket layer-ssl)建立远程安全访问通道的vpn技术为sslvpn技术,它以支持ssl的超文本传输协议(hyper text transfer protocol over secure socket layer,https)为基础,利用加密技术为用户在公网上封装出一个可以连接到特定局域网的数据通讯通道,以满足用户在任意地点通过互联网安全地访问特定的局域网。该通道的建立过程中,需要对该通道进行功能规格以及稳定性的测试。
3.现有的测试方式是私人电脑(personal computer,pc)端设备上安装sslvpn软件,使用pc端设备上配置好的用户名和密码进行拨号。其中,一台pc端设备只能模拟一个sslvpn用户,当需要模拟多个用户以对sslvpn进行功能规格的测试时,现有的测试方式需要多台电脑,当涉及到几百或者上千个用户的功能规格测试时,现有的测试方法无法在实验室中进行测试。
4.因此,现有的测试方法成本高,测试效率低,测试灵活性差。


技术实现要素:

5.本技术提供了一种sslvpn的测试方法及装置,能够解决现有的测试方法成本高,测试效率低,测试灵活性差的问题。
6.第一方面,本技术示出了一种sslvpn的测试方法,所述方法包括:获取sslvpn软件的第一配置文件;所述第一配置文件为新增拨号项的配置文件;将所述第一配置文件拷贝至linux系统;所述linux系统为已配置有openvpn的系统;在所述linux系统上配置shell脚本程序和expect脚本程序;通过所述shell脚本程序对openvpn执行模拟至少一个用户的拨号操作;根据所述expect脚本查看所述模拟至少一个用户的拨号操作是否拨号成功;如果拨号成功,获取测试结果。
7.在一些实施例中,获取sslvpn软件的第一配置文件,包括:在windows系统中运行所述sslvpn软件;当运行所述sslvpn软件后,在所述windows系统的任务栏中对所述sslvpn软件执行新增操作;根据所述新增操作添加新增拨号项;所述新增拨号项包括:文件名、服务器地址以及服务器端口;根据所述新增拨号项进行连接操作;当进行所述连接操作时,输入用户名及密码以执行拨号操作;当进行所述拨号操作时,获取所述新增拨号项的配置文件确定为所述sslvpn软件的第一配置文件。
8.在一些实施例中,通过所述shell脚本程序对openvpn执行模拟至少一个用户的拨号操作,包括:根据设定的循环次数将所述输入的用户名和密码写入账号文件;所述账号文件包括至少一个用户名及密码;将所述第一配置文件拷贝与所述设定的循环次数相同的数量,以得到至少一个所述第一配置文件;将所述用户名和密码写入到对应的第一配置文件中;调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作。
9.在一些实施例中,所述根据设定的循环次数将所述输入的用户名和密码写入账号文件执行循环的方式为for循环;将所述第一配置文件拷贝与所述设定的循环次数相同的数量执行循环的方式为for循环;将所述用户名和密码写入到对应的第一配置文件中执行循环的方式为for循环;调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作执行循环的方式为for循环。
10.在一些实施例中,调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作,包括:将所述调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作封装为待调用函数。
11.在一些实施例中,根据所述expect脚本查看所述模拟至少一个用户的拨号操作是否拨号成功;包括:根据所述expect脚本反复调用所述待调用函数以查看所述模拟至少一个用户的拨号操作是否拨号成功。
12.在一些实施例中,所述方法还包括:当获取所述测试结果后,删除与所述openvpn相关的配置文件;当删除与所述openvpn相关的配置文件后,执行所述shell脚本程序。
13.在一些实施例中,所述执行所述shell脚本程序,包括:当通过所述shell脚本程序进行功能规格测试时,在所述shell脚本程序后输入单个参数以用于模拟不同数量用户的目录,其中,所述单个参数为自然数。
14.在一些实施例中,所述执行所述shell脚本程序,包括:当通过所述shell脚本程序进行稳定性测试时,在所述shell脚本程序后输入2个参数以用于模拟不同规格场景下不同频次的稳定性测试,其中,所述2个参数均为自然数。
15.第二方面,本技术还示出一种sslvpn的测试装置,所述装置包括:获取模块,所述获取模块用于获取sslvpn软件的第一配置文件;所述第一配置文件为新增拨号项的配置文件;拷贝模块,所述拷贝模块用于将所述第一配置文件拷贝至linux系统;所述linux系统为已配置有openvpn的系统;配置模块,所述配置模块用于在所述linux系统上配置shell脚本程序和expect脚本程序;执行模块,所述执行模块用于通过所述shell脚本程序对openvpn执行模拟至少一个用户的拨号操作;判断模块,所述判断模块用于根据所述expect脚本查看所述模拟至少一个用户的拨号操作是否拨号成功;如果拨号成功,获取测试结果。
16.以上示出的技术方案,能够通过获取sslvpn软件的第一配置文件;所述第一配置文件为新增拨号项的配置文件;将所述第一配置文件拷贝至linux系统;所述linux系统为已配置有openvpn的系统;在所述linux系统上配置shell脚本程序和expect脚本程序;通过所述shell脚本程序对openvpn执行模拟至少一个用户的拨号操作;根据所述expect脚本查看所述模拟至少一个用户的拨号操作是否拨号成功;如果拨号成功,获取测试结果;以降低测试成本;提高测试效率;操作更加灵活;对linux系统中测试产品稳定性有重要的实际意义。具体实现中,通过一台linux服务器即可实现,在其上安装sslvpn客户端的模拟工具openvpn,并配置shell脚本程序以及expect脚本程序,能够以低测试成本即对sslvpn的功能规格和稳定性进行测试;且仅在一台机器上进行操作而不需要在不同的机器上进行操作,效率相比现有的测试方法,提升成百上千倍;操作更加灵活,在一台设备上可以模拟不同规格的用户;也可以指定反复拨号的频次,测试验证其功能的稳定性。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1示出了根据一些实施例中示出的一种sslvpn的测试方法流程图;
19.图2示出了根据一些实施例中示出的增加配置文件界面示意图;
20.图3示出了根据一些实施例中示出的连接界面示意图;
21.图4示出了根据一些实施例中示出的linux服务器执行脚本模拟单个用户执行效果图;
22.图5示出了根据一些实施例中示出的被测设备执行脚本模拟单个用户执行效果图;
23.图6示出了根据一些实施例中示出的linux服务器执行脚本模拟多个用户执行效果图;
24.图7示出了根据一些实施例中示出的被测设备执行脚本模拟多个用户执行效果图;
25.图8示出了根据一些实施例中示出的稳定性执行效果图。
具体实施方式
26.为使本技术的目的、实施方式和优点更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。
27.基于本技术描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术所附权利要求保护的范围。此外,虽然本技术中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
28.应当理解,本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本技术实施例图示或描述中给出那些以外的顺序实施。
29.sslvpn指的是基于安全套接字层协议建立远程安全访问通道的vpn技术。该通道的建立过程中,需要对该通道进行功能规格以及稳定性的测试。
30.现有的测试方式是私人电脑(personal computer,pc)端设备上安装sslvpn软件,使用pc端设备上配置好的用户名和密码进行拨号。其中,一台pc端设备只能模拟一个sslvpn用户,当需要模拟多个用户以对sslvpn进行功能规格的测试时,现有的测试方式需要多台电脑,当涉及到几百或者上千个用户的功能规格测试时,现有的测试方法无法在实验室中进行测试,测试成本高;现有的测试方法需要在每台机器中安装sslvpn软件,且每台设备都需要进行手动拨号操作,每个测试步骤都需要操作众多电脑,测试效率低;在多个设
备上操作,每测试验证一次,都需要在不同设备上操作,灵活性差。
31.为了解决现有的测试方法测试成本高,测试效率低,测试灵活性差的问题,本技术示出了一种sslvpn的测试方法,图1为本技术示例性示出的一种sslvpn的测试方法流程图;如图1所示,所述方法包括:
32.步骤s101,获取sslvpn软件的第一配置文件;所述第一配置文件为新增拨号项的配置文件;
33.在一些实施例中,获取sslvpn软件的第一配置文件,包括:
34.在windows系统中运行所述sslvpn软件;例如,所述sslvpn软件可以为sslvpncl ient_20210416.exe。
35.当运行所述sslvpn软件后,在所述windows系统的任务栏中对所述sslvpn软件执行新增操作;具体实现中,在所述windows系统的任务栏中通过鼠标右键选中所述sslvpn,点击新增按钮,弹出如图2所示的增加配置文件界面。
36.根据所述新增操作添加新增拨号项;所述新增拨号项包括:文件名、服务器地址以及服务器端口;具体实现中,在所述增加配置文件界面中填入文件名、服务器地址以及服务器端口的具体信息,点击确认按钮进行添加。
37.根据所述新增拨号项进行连接操作;具体实现中,图3为本技术示例性实施例示出的连接界面示意图,如图3所示,选中新增拨号项,点击连接按钮。
38.当进行所述连接操作时,输入用户名及密码以执行拨号操作;
39.当进行所述拨号操作时,获取所述新增拨号项的配置文件确定为所述sslvpn软件的第一配置文件。
40.步骤s102,将所述第一配置文件拷贝至linux系统;所述linux系统为已配置有openvpn的系统;
41.在一些实施例中,选择已安装openvpn软件的linux系统或者在linux系统下自行安装openvpn软件。
42.需要说明的是,openvpn是基于openssl库的应用层vpn实现,和传统vpn相比,简单易用。openvpn允许参与建立vpn的单点使用共享金钥,电子证书,或者用户名/密码来进行身份验证。它大量使用了openssl加密库中的sslv3/tlsv1协议函式库。openvpn能在solaris、linux、openbsd、freebsd、netbsd、mac os x与windows 2000/xp/vista上运行,并包含了许多安全性的功能。它并不是一个基于web的vpn软件,也不与ipsec及其他vpn软件包兼容。
43.步骤s103,在所述linux系统上配置shell脚本程序和expect脚本程序;
44.步骤s104,通过所述shell脚本程序对openvpn执行模拟至少一个用户的拨号操作;
45.在一些实施例中,通过所述shell脚本程序对openvpn执行模拟至少一个用户的拨号操作,包括:
46.根据设定的循环次数将所述输入的用户名和密码写入账号文件;所述账号文件包括至少一个用户名及密码;具体实现中,所述账号文件为“account.txt”。所述根据设定的循环次数将所述输入的用户名和密码写入账号文件执行循环的方式为for循环;具体实现中,for循环体设置为:
47.#!/bin/bash
48.#gen 200acount file
49.for((i=2;i《=$1;i++));do echo-e“test$i\nadmin.123”》acount$i.txt;done
50.将所述第一配置文件拷贝与所述设定的循环次数相同的数量,以得到至少一个所述第一配置文件;将所述第一配置文件拷贝与所述设定的循环次数相同的数量执行循环的方式为for循环;其中,for循环体设置为:
51.#gen 200config files
52.for((i=2;i《=$1;i++));do cp client.conf client$1.ovpn;done
53.将所述用户名和密码写入到对应的第一配置文件中;将所述用户名和密码写入到对应的第一配置文件中执行循环的方式为for循环;其中,for循环体设置为:
54.#append acount into config files
55.for((i=2;i《=$1;i++));do echo“auth-user-pass acount$i.txt”》》client$i.ovpn;done
56.调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作。调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作执行循环的方式为for循环;其中,for循环体设置为:
57.#dail 200instant sslvpn
58.for((i=2;i《=$1;i++));do

openvpn client$i.ovpn 1》/dev/null&’;done
59.在一些实施例中,调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作,包括:
60.将所述调用openvpn软件执行根据所述至少一个第一配置文件模拟至少一个用户的拨号操作封装为待调用函数。其中,所述待调用函数设置为:
61.#定义一个可以指定拨号数量的openvpn拨号函数
62.function gen_acout_file()
63.{
64.#gen 200acout file
65.for((i=2;i《=$1;i++))do echo-e“test$i\nadmin.123”》acount$i.txt;done
66.#gen 200config files
67.for((i=2;i《=$1;i++));do cp client.conf client$1.ovpn;done
68.#append acount into config files
69.for((i=2;i《=$1;i++));do echo“auth-user-pass acount$i.txt”》》client$i.ovpn;done
70.#dail 200instant sslvpn
71.for((i=2;i《=$1;i++));do

openvpn client$i.ovpn 1》/dev/null&’;done
72.}
73.步骤s105,根据所述expect脚本查看所述模拟至少一个用户的拨号操作是否拨号成功;
74.在一些实施例中,根据所述expect脚本查看所述模拟至少一个用户的拨号操作是否拨号成功;包括:
75.根据所述expect脚本反复调用所述待调用函数以查看所述模拟至少一个用户的拨号操作是否拨号成功。具体实现中,查看是否拨号成功方式具体设置为:
[0076][0077]
#登录设备查看设备是否拨号成功,如果成功返回success,如果失败返回fail/usr/bin/expect《《eof
[0078][0079]
#检查完测试结果后,把openvpn进程杀掉,删除相关配置文件
[0080][0081]
步骤s106,如果拨号成功,获取测试结果。
[0082]
在一些实施例中,所述方法还包括:
[0083]
当获取所述测试结果后,删除与所述openvpn相关的配置文件;
[0084]
当删除与所述openvpn相关的配置文件后,执行所述shell脚本程序。
[0085]
在一些实施例中,所述执行所述shell脚本程序,包括:
[0086]
当通过所述shell脚本程序进行功能规格测试时,在所述shell脚本程序后输入单个参数以用于模拟不同数量用户的目录,其中,所述单个参数为自然数。
[0087]
具体实现中,以通过openvpn软件模拟10个用户进行sslvpn拨号操作为例,具体设置方式为:
[0088]
root@kali:/home/sslvpn#./sslvpn_capacity_stability_testing.sh 10
[0089]
在一些实施例中,所述执行所述shell脚本程序,包括:
[0090]
当通过所述shell脚本程序进行稳定性测试时,在所述shell脚本程序后输入2个参数以用于模拟不同规格场景下不同频次的稳定性测试,其中,所述2个参数均为自然数。
[0091]
具体实现中,以通过openvpn软件在10个用户规格的场景下执行频次为2的稳定性测试为例,具体设置方式为:
[0092]
root@kali:/home/sslvpn#./sslvpn_capacity_stability_testing.sh 10 2
[0093]
在一些实施例中,图4示出了linux服务器执行脚本模拟单个用户执行效果图,如图4所示,图4为sslvpn软件执行./sslvpn_capacity_stability_testing.sh 1以模拟单个用户的执行效果图。
[0094]
在一些实施例中,图5示出了被测设备执行脚本模拟单个用户执行效果图。
[0095]
在一些实施例中,图6示出了linux服务器执行脚本模拟多个用户执行效果图,如图6所示,图6为sslvpn软件执行./sslvpn_capacity_stability_testing.sh 200以模拟多个用户的执行效果图。
[0096]
在一些实施例中,图7示出了被测设备执行脚本模拟多个用户执行效果图。
[0097]
在一些实施例中,图8示出了稳定性执行效果图。
[0098]
本技术还示出了一种sslvpn的测试装置,所述装置包括:
[0099]
获取模块,所述获取模块用于获取sslvpn软件的第一配置文件;所述第一配置文件为新增拨号项的配置文件;
[0100]
拷贝模块,所述拷贝模块用于将所述第一配置文件拷贝至linux系统;所述linux系统为已配置有openvpn的系统;
[0101]
配置模块,所述配置模块用于在所述linux系统上配置shell脚本程序和expect脚本程序;
[0102]
执行模块,所述执行模块用于通过所述shell脚本程序对openvpn执行模拟至少一个用户的拨号操作;
[0103]
判断模块,所述判断模块用于根据所述expect脚本查看所述模拟至少一个用户的拨号操作是否拨号成功;如果拨号成功,获取测试结果。
[0104]
本技术实施例还提供一种芯片,与存储器相连或者包括存储器,用于读取并执行所述存储器中存储的软件程序,本技术实施例提供的方法。
[0105]
本技术实施例还提供一种计算机程序产品,计算机程序产品包括一个或多个计算机程序指令。在计算机加载和执行计算机程序指令时,全部或部分地产生按照本技术上述各个实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。当其在计算机上运行时,使得计算机执行本技术实施例提供的方法。
[0106]
在本实施例还提供一种计算机可读存储介质,该计算机可读存储介质计算机存储介质可存储有计算机程序指令,当程序指令被执行时,可实现本技术上述各实施例的图像处理方法的全部步骤。计算机可读存储介质包括磁盘、光盘、只读存储记忆体rom或随机存储记忆体ram等。
[0107]
在上述实施例中,可以全部或部分通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,本实施例不予限制。
[0108]
本领域技术任何还可以了解到本技术列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现的功能,但这种实现不应被理解为超出本技术保护的范围。
[0109]
本技术中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列(fpga)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
[0110]
本技术中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设
置于asic中,asic可以设置于ue中。可选地,处理器和存储媒介也可以设置于ue中的不同的部件中。
[0111]
应理解,在本技术的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术的实施过程构成任何限定。
[0112]
本领域的技术人员可以清楚地了解到本技术实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分的方法。
[0113]
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于网络设备/节点或装置设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
[0114]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
[0115]
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1