http://ss.chaoxing.com/search?sw=openvpn
---------------------










---------------------
基于ZUC的OpenVPN安全性能研究
| 【摘 要】 | 为提高OpenVPN技术的安全性,在介绍基于SSL协议的VPN技术的基础上,针对其密码算法弱强度的问题,通过编写包含ZUC算法的自定义引擎,用被国际认可的高强度加密算法ZUC算法替换OpenVPN中原本的弱强度算法,实现了对ZUC算法的调用,提高了OpenVPN技术的安全性,具有修改代价小,安全性高的特点。在系统测试过程中经过了Sniffer Pro嗅探器的抓包测试和TCP/UDP调试助手的数据通信测试,结果表明,客户端与服务器的通信数据能够被ZUC算法进行加密以达到安全通信的目的,该系统的高强度密码算法很大程度上满足了政府、军队和金融等对安全性要求较高的领域的需求,具有较强的实用价值。 |
| 【统计数据】 | 被引量:1 阅读量:5 |
收起阅读全文
基于ZUC的OpenVPN安全性能研究*
摘 要:为提高OpenVPN技术的安全性,在介绍基于SSL协议的VPN技术的基础上,针对其密码算法弱强度的问题,通过编写包含ZUC算法的自定义引擎,用被国际认可的高强度加密算法ZUC算法替换OpenVPN中原本的弱强度算法,实现了对ZUC算法的调用,提高了OpenVPN技术的安全性,具有修改代价小,安全性高的特点。在系统测试过程中经过了Sniffer Pro嗅探器的抓包测试和TCP/UDP调试助手的数据通信测试,结果表明,客户端与服务器的通信数据能够被ZUC算法进行加密以达到安全通信的目的,该系统的高强度密码算法很大程度上满足了政府、军队和金融等对安全性要求较高的领域的需求,具有较强的实用价值。
关键词:安全性; OpenVPN ;高强度算法;引擎
1 引 言
随着互联网技术的飞速发展,虚拟专用网络(virtual private network,VPN)技术得到了越来越广泛的应用。目前VPN技术的实现方式主要有两种形式。一种是基于网络层采用IPSec协议来实现远程接入的IP协议安全(internet protocol security,IPSec)VPN技术[1]。另一种是基于传输层采用SSL协议来实现远程接入的的安全套接层(secure sockets layer,SSL)VPN技术[2] 。为提高VPN技术的安全性,很多学者从多个角度对这两种实现方法进行了深入的研究。王凤领[3]从节省网络费用的角度对IPSecVPN技术的体系结构和工作模式进行了研究,但发现其在网络地址转换时可能存在冲突,并且配置和使用比较复杂,容易带来操作系统的安全隐患问题。朱意秋[4]、周勇[5]比较了SSLVPN技术和IPSecVPN技术的异同,发现基于SSL协议的VPN技术比基于IPSec 协议的VPN技术更灵活,也更符合各类企业网络安全远程接入的需求。但美国对出口密码产品的管制比较严格,在SSLVPN技术的实现中,各种密码算法的密钥长度较短,并且强度较弱,不符合政府、军队和金融等高安全领域的要求,诸晔等人[6]针对该问题,实现了一种通过OpenSSL的引擎机制添加自定义算法的方案。进一步分析发现该方法虽然可保留SSLeay中原有的算法,但其需要修改OpenSSL的源代码对新算法进行注册,代码开销较大。为进一步减小代码开销,解决密码算法强度问题,本文提出了利用OpenSSL动态引擎机制将OpenSSL的SSLeay模块中弱强度密码算法替换为高强度密码算法的方法,这样可实现在不修改SSLeay的基础上实现新的加密算法的添加,该方法通过OpenSSL调用自定义的高强度加密模块,能够满足对安全性和机密性要求较高领域的需求。
2 基于SSL协议的VPN技术研究
2.1 VPN技术及其关键技术
VPN技术通过在复杂的网络环境中建立一条虚拟通道,将位于通道两边的网络或节点连接起来,保证通道内数据的安全通信。它是利用隧道技术完成不同网络间共享数据的封装,采用加解密技术和客户端与服务器间的认证技术来达到实现专用网络的扩展。VPN的关键技术包括数据加密技术、身份认证技术、隧道技术和密钥管理技术。其中隧道技术是通过一个网络为另一网络传输数据,实现不同网络间共享数据的一种技术。密钥的分发有手工配置和采用密钥交换协议动态分发这两种方式。
2.2 基于SSL协议的VPN技术
为提高VPN通信数据的安全性, SSL协议被引入到VPN技术中。SSL协议是计算机设备间利用Internet网络进行通信的加密协议,其本质上是在VPN虚拟隧道上对客户端与服务器间的通信内容使用公共密钥和私有密钥进行加密的技术,防止在网络传输过程中数据遭到截取或者窃听。SSL协议由用于数据加密的对称算法和用于身份认证,密钥交互的非对称算法组成。
采用基于SSL协议的VPN技术实现客户端与服务器通信可分为两个阶段。第1阶段是客户端与服务器的握手阶段,该阶段要实现双方身份认证和密钥交互;第2阶段是客户端与服务器互发数据阶段,该阶段要实现数据的加密。SSLVPN通信时通信双方的身份是通过数字签名技术验证的,私钥加密后的密文只能使用对应的公钥解密,因此,根据解密的结果是否成功来判断发送端与接收端的身份,就像双方对数据进行签名。为了防止非法用户冒充双方通信者中的某一方,双方在用数字签名技术验证身份时必须要确保双方的公钥是真实可靠的,这是握手阶段很关键的一个部分。SSL 协议中包含对称算法非对称算法和 HMAC 算法,其中HMAC主要用来对明文数据进行摘要操作。SSL 通信双方是在握手阶段完成密钥交互过程,包括预主密钥、主密钥两个部分。其中,预主密钥采用基于非对称的密钥协商算法、HMAC 和对称算法生成;生成预主密钥后,采用预主密钥生成主密钥;通信双方的对称密钥和HMAC 密钥由主密钥所派生,该阶段生成的对称密钥和HMAC密钥将用于第2阶段的数据加密时的密钥。
基于SSL协议实现的VPN技术,其通信信道由SSL协议提供安全保障。在一般的应用场合,作为一个实用协议,SSL协议保障信道的安全是通过协议本身的设计,谨慎的实现和使用来实现。但在信息安全性要求高的领域,受美国管制出口密码产品的限制,存在着密码算法弱强度的问题,这导致其加密性能大大降低,非常容易受到穷尽搜索密钥方法的攻击,对数据安全构成威胁。正因为此,很多学者已开始在SSL协议中采用替代算法的研究,如采用我国自主研发的同步流密码算法等。
3 ZUC算法及其原理
算法(ZUC),是由中国自主设计的同步流密码算法,是用于加密数据的128-EEA3(3GPP confidentiality algorithm)算法和用于保证数据完整性的128-EIA3(3GPP integrity algorithm)算法的核心内容[7-8]。ZUC 算法在逻辑上采用3层结构设计,上层是一个线性反馈移位寄存器(linear feedback shift register,LFSR),中层是比特重组(bit restructuring,BR)层,下层是一个非线性函数F。该算法利用素域 GF(231-1) 的 m 序列进行LFSR 设计,该类序列具有周期长和统计特性好的特点,在特征为 2 的有限区域上不是线性的,且线性结构弱和比特关系符合率低,这导致该序列对于二元域等密码攻击具有天然的强抵抗能力。ZUC算法的比特重组的作用是破坏 LFSR 在素域 GF(231-1) 上的线性结构,结合底层的非线性函数 F可使得一些在素域 GF(231-1)上的密码攻击变得非常困难。ZUC 算法在设计非线性函数F时借鉴了分组密码设计的技巧,采用了S 盒与具有高扩散特性的线性变换 L,非线性函数 F 有强的抵抗区分分析和快速相关攻击等方法的能力。上述3层结构的综合运用使得ZUC 算法具有非常高的安全强度和抵抗目前常见的绝大部分流密码攻击的能力[7]。介于上述研究发现的SSLVPN技术存在的缺陷及ZUC算法的优越性,下面提出了一种用ZUC算法替换SSLVPN中弱强度算法的实现方案。
4 基于OpenVPN技术的实现方案
4.1 OpenVPN技术
OpenVPN技术作为隧道型SSLVPN技术的一个典型应用提供了实现SSLVPN全部功能的解决方案,OpenSSL加密库和SSLv3/TLSv1协议在OpenVPN中得到了广泛的使用。OpenSSL 是一个强大的安全套接字层密码库,包括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用[9]。
4.2 Engine机制工作原理
Engine 机制目的是使OpenSSL 可以透明地使用第三方提供的软件加密库或硬件加密设备来加密[10]。OpenSSL 了采用这种机制,并且使得OpenSSL提供了一个通用的加密接口,这样OpenSSL能够与很大部分加密库或加密设备协调工作。
OpenSSL的 Engine 机制可实现OpenSSL加密模块的扩展。图1介绍了Engine机制的原理,从图中可看出应用程序调用密码库的方式有3种。1)应用程序直接通过OpenSSL自身提供的Engine来调用原本就封装在SSLeay密码库中的加解密算法。2)应用程序通过调用OpenSSL内部支持的Engine(如图1的nCipher Engine、Atalla Engine)加载和调用其支持的硬件加密设备,前两种方式都是对OpenSSL内部有对应接口的算法的调用。3)对OpenSSL内部没有对应接口的第三方自定义的密码模块(如图1的XX软硬件模块)的调用,如图1所示调用方法有两种,第一种是由其开发商提供或用户自行编写其Engine,即图1 中的XX Engine,通过该Engine机制访问XX 加密模块,另一种方式是为XX 加密模块编写供OpenSSL 内部的动态Engine调用的动态库,通过动态Engine调用XX 动态库,进而访问XX 加密模块,前一种方式需要将XX Engine添加进OpenSSL的源代码再对新的OpenSSL进行重新编译,而后一种方式只需提供供动态Engine调用的XX Engine动态库,而不需要对OpenSSL重新编译,这能够减小编译OpenSSL带来的代码开销。本文采用后一种方法来实现算法的添加。
图1 Engine机制的原理
4.3 方案设计
用ZUC算法替换OpenSSL中的弱强度算法的方案流程如图2所示。
图2 ZUC算法替换流程
1)初始化Engine
初始化Engine操作包括在bind_helper(ENGINE *e)函数中使用ENGINE_set_id()设置Engine id对Engine进行编号和ENGINE_set_name()设置Engine name对Engine进行命名,还包括完成对Engine进行初始化的Engine_init()函数,关闭Engine机制的Engine_finish()函数和对Engine中函数进行痕迹清理的Engine_destroy()函数(该函数是对调用完的函数进行痕迹清理,可以避免加载同一个Engine不同算法出现函数调用错误的情况)。
2)加载Engine
加载Engine是通过调用Engine_load_XX()函数实现把Engine对象加载到系统中的,然后调用Engine *e=Engine_by_id()或者Engine_by_name()完成Engine的调用。
3)加载ZUC算法
该方案在CBC、CFB、OFB、ECB四种模式中选择的是较普遍的CBC模式,因此加载ZUC算法需要完成ZUC算法的EVP_CIPHER结构体的设置。该方案可以减小一部分的代码开销体现在结构体成员NID(算法的识别符)的设置上,以OpenSSL中原本存在的Camellia算法的NID号来命名ZUC算法,如此,ZUC算法就不需要重新注册,也不需要对OpenSSL源代码做任何修改。EVP_CIPHER结构体中其他元素的设置可根据ZUC算法的具体情况进行设置,内部的初始化,加解密函数都指向ZUC算法的接口。
4)定义ZUC算法接口
该方案采用的是NID替换的方法,表面是Camellia算法,实际上运行的是ZUC算法,调用的时候只需按照调用Camellia算法同样的方法就可以完成ZUC算法的调用。这样可以进一步减少注册算法,重新定义接口带来的代码开销。
5)编译Engine
上述步骤全部完成即可完成该自定义Engine的编写,可实现将ZUC算法添加到Engine中,但实现ZUC算法的调用还需要将该Engine编译生成的DLL和LIB文件添加到OpenVPN中,供动态引擎调用,该动态引擎的调用函数是ENGINE_load_dynamic(),之后再调用ENGINE_by_id(id)对Engine进行搜索,有多个Engine时动态引擎的优势就可以体现出来,系统每次只需调用动态引擎即可,不需要将每个引擎都加载到OpenVPN中,节省了空间,也给替换算法增加了灵活性。 Engine的调用和加载均完成之后,再将Camellia算法添加进配置文件,即可完成方案中替换算法的要求。
4.4 测试结果及讨论
上文的实验方案可以完成该系统新加密算法的添加,完成算法的添加之后即要进行测试。在测试之前需要在两台电脑上搭建客户端与服务器的OpenVPN平台,双方均选择新添加的算法,完成搭建之后该系统的测试分为两个部分,一部分是进行Sniffer Pro嗅探器的抓包测试以确定算法被成功加密以密文的形式传输,另一部分是进行TCP/UDP调试助手的数据通信测试以确定服务器客户端能调用ZUC算法进行加密解密传输。
以上的两部分测试的结果表明,上文的方案能够实现ZUC算法的添加,并且可以用同样的方法实现其他加密算法的添加。文献[6]中的添加方法采用的是程序开发者编写一个Engine,将该Engine加载到OpenSSL中,然后对OpenSSL进行重新编译,且需要对新添加的算法进行注册,这种方法添加的自定义算法如果发生改变则需要重新注册该算法,这导致添加算法的灵活性较低,并且需要对OpenSSL源代码进行修改。本文所提出的方法不需要将编写好的Engine添加到Openssl中进行重编译,亦不需要对新添加的算法进行注册,而是将Engine库直接添加到OpenVPN中,通过加载代码直接加载该Engine,实现对算法的调用,并且若添加的自定义算法发生改变,只需修改engine中该算法的实现过程,将SSLeay底层加密算法与该算法绑定以实现替换,不需要对OpenSSl源代码进行修改。本文提出的方法相对于注册算法的方法在提高安全性的同时减小了代码的开销。
5 结 论
针对基于SSL协议的VPN技术存在的加密算法弱强度导致的安全问题,本文提出并实现了一种替换算法的解决方案。经上文的两部分测试结果表明:该方案能实现对弱强度算法的替换保证安全性,并且能够减小一定程度上的代码开销。从安全性能与代码开销上看,具有一定的实用意义,从应用的角度看,随着人们对安全性的要求越来越高,该系统的应用方面会越来越广,而不仅仅应用到银行,军事等传统高安全领域。
----------------------------------------------------
基于OpenVPN识别的APT隐蔽隧道检测
| 【摘 要】 | 随着因特网与信息安全的发展,出现了一种新的攻击方式:高级持续性威胁(APT)。在APT的最后阶段,当攻击者想要从受害网络中窃取数据时,他们可能会使用隐蔽隧道。虚拟专用网络是私人或公共网络间的点对点连接。在过去几年里,VPN一直被认为是安全的。事实上,它也可以带来很多潜在的安全隐患。例如,攻击者可以利用虚拟专用网,使其称为一个用来传输敏感数据的APT隐蔽隧道。鉴于这样的双刃剑,有必要找到一种方法来检测恶意虚拟专用网,以防止APT隐蔽隧道的存在。 |
| 【统计数据】 | 被引量:1 阅读量:37 |
收起阅读全文
基于OpenVPN识别的APT隐蔽隧道检测*
[摘 要]随着因特网与信息安全的发展,出现了一种新的攻击方式:高级持续性威胁(APT)。在APT的最后阶段,当攻击者想要从受害网络中窃取数据时,他们可能会使用隐蔽隧道。虚拟专用网络是私人或公共网络间的点对点连接。在过去几年里,VPN一直被认为是安全的。事实上,它也可以带来很多潜在的安全隐患。例如,攻击者可以利用虚拟专用网,使其称为一个用来传输敏感数据的APT隐蔽隧道。鉴于这样的双刃剑,有必要找到一种方法来检测恶意虚拟专用网,以防止APT隐蔽隧道的存在。
[关键词]高级持续性威胁;虚拟专用网络;OpenVPN;操作码;控制/数据协议
0 引言
近年来由于因特网的迅速发展,一种新型威胁出现在我们的视野中:高阶持续性威胁(APT),这种攻击具有极强的隐蔽性与危害性,一旦攻击成功,攻击者所确定的重要信息便会从隐蔽隧道悄无声息的转移[1-3]。而随着近年来虚拟专用网络(VPN)使用的越来越普及,虽然在过去几年里,VPN被一度认为是一种安全的、可靠的连接[4-5]。然而随着技术不断发展以及对某些漏洞的研究与利用,曾被认为是安全的VPN也可能被恶意攻击者利用,成为APT攻击的一种数据传输手段。
VPN通常是对内部网的拓展,通过它可以帮助远程用户、分支机构等与内部网络建立可信的安全连接,并保证数据的安全传输[6]。然而,在APT攻击中,虽然VPN有着身份验证等安全机制的保护,但通过某些漏洞利用与手段,VPN就能够成为攻击者传输敏感数据的隐蔽隧道,最为突出的就是最近发现的“心脏流血”漏洞。
“心脏流血”漏洞利用[7-9]:14年发现的“心脏流血”漏洞曾经轰动一时,一度被视为互联网上最严重的网络安全漏洞,目前研究表明,该漏洞已经被用于破坏VPN集中器。即攻击者不需要知晓密码或加密密钥即可使VPN集中器相信攻击者已经获得合法授权。从而绕过VPN的安全认证机制。也就意味着攻击者能够直接与被攻破的网络建立基于VPN的隐蔽隧道,且这种隧道看上去是通过身份认证的合法传输通道。随后攻击者就能随心所欲得将想要取得的敏感信息通过已经建立的VPN隐蔽隧道进行传输。
通过上述介绍,攻击者利用VPN,就能够在APT攻击的获取数据阶段创建隐蔽隧道并传输敏感数据。VPN不再如我们想象中那样安全,同时如果能够识别出行为异常的VPN,就能进一步推测是否存在遭受APT攻击的可能性,所以识别与检测VPN变得尤为重要。本文挑选网络中使用最为广泛、流行的OpenVPN进行研究,在之后的章节提出检测算法与算法的评估测试。期望能够在紧急状况发生前,检测出非法的、有安全隐患的VPN隐蔽隧道。
1 OpenVPN介绍
OpenVPN[10]最早由James Yonan编写用于创建虚拟专用网络VPN加密隧道,支持在任意IP子网间和任意虚拟网卡间建立隧道。作为SSL VPN的一个全功能解决方案,它使用TUN/TAP驱动程序实现2、3层数据包到用户空间的传送,并通过OpenSSL库提供的SSL/TLS来加密数据与控制信息。[11-13]
OpenVPN协议的封装格式如下图所示[14-15]:
图1 OpenVPN协议的封装格式
由上图可知,OVPN头封装了OpenVPN的握手协议和记录协议,它起到了复用和解复用的功能,将信道划分为控制信道与数据信道,控制信道在连接建立前负责握手与密钥交换等,数据信道则用于传输数据。其中操作码区分了控制信道和数据信道,下表列出比较核心的操作码取值及其代表的含义:
表1 操作码及其含义
在检测算法中涉及到了OpenVPN ACK数据包中某字段,故而再对ACK数据包格式进行分析。格式如下图所示[16]:
图2 ACK数据包格式
由于ACK数据包最后几个字段相对固定,结合IP头中长度字段进行判定能够作为检测时的一个关键因素。
3 OpenVPN检测算法
由于OpenVPN不仅支持UDP,也能够支持TCP。同时Open-VPN有控制信道与数据信道两种不同的信道。所以检测算法先以传输层协议划分,再分为控制与数据两种,具体如下图所示:
图3 检测算法分类
使用TCP协议的OpenVPN在其头部有16位的包长度字段,能够结合操作码进行检测,具体如下:
TCP控制信道:OpenVPN控制信道所传输的数据包格式其OVPN头相对固定,并会出现多次ACK应答包。考虑到检测过程中的丢包等因素,选择16位的包长度以及操作码取值为5(P_ ACK_V1)作为2个关键检测目标。具体算法如下所示:
判定为OpenVPN TCP控制信道
TCP数据信道:检测原理与控制信道类似,选择16位的包长度以及操作码取值为6(P_DATA_V1)作为2个关键检测目标,具体算法如下所示:
判定为O p e n V P N T C P数据信道
使用UDP协议的OpenVPN没有类似TCP包长度字段,只能使用操作码作为检测手段并结合其他特征,具体如下:
UDP控制信道:考虑到检测过程中丢包等因素,同样以ACK数据包作为检测目标,虽然使用UDP协议的OpenVPN没有包长度字段,但根据上章中说明的ACK数据包特征仍能找到1字节ACK序列号长度的目标字段。由于在控制信道中数据包从零开始计数,则ACK长度字段取值基本都为1,结合操作码能够作为2个关键检测目标,具体算法如下所示:
判定为OpenVPN UDP控制信道
UDP数据信道:该信道数据包比较特殊,只有操作码一个关键检测目标,将会导致检测误差较大,所以引入参数count、k,若满足检测条件的数据包数量count大于等于k,则满足关键检测目标,k的取值在1-10之间,具体算法如下所示:
判定为OpenVPN UDP数据信道
k的最佳取值需要经过试验确定,在下章进行说明。
4 评估与测试
根据上述的算法,使用C语言对libpcap库[17-18]进行二次开发来评估与测试本文提出的算法。
测试数据由一周不同时段网络在线采样数据以及虚拟机中OpenVPN环境获取数据组成。正样本由虚拟机获取数据流与采样数据通过约束条件及人工识别结合获得。
采集完测试数据后,启动编写的程序并重放测试数据,然后将运行结果与原始样本进行对比。
由于UDP数据信道比较特殊,在后文讨论。
TCP控制/数据信道与UDP控制信道:具体测试结果如下表所示:
表2 测试结果
P:正样本 N:负样本
TP:正样本并被正确判为正例
FN:正样本并被错误判为负例
FP:负样本并被错误判为正例
TN:负样本并被正确判为负例
召回率RE:
RECALL=TP/(TP+FN)
精度PR:
PRECISION=TP/(TP+FP)
测试表明算法对上述三种信道识别方面精度均超过95%,并且具有极高的召回率。
图4 UDP数据信道测试
UDP数据信道:将k分别取值为1-10进行测试,并计算召回率及精度,测试结果如下曲线图:测试表明k取值较小时精度相对较低,在k>5时,精度接近95%;最后k取10时,考虑到有些OpenVPN传输数据量较少,召回率降低。所以UDP数据信道算法最终将k取值定为5-8之间。同样对该信道识别方面精度均超过95%,并且具有极高的召回率。
5 研究意义
由于VPN曾被认为是安全的,并且在企业/学校内网中没有必要对其进行识别,暂时还没有有关VPN识别的研究。本文首次提出对VPN在APT攻击中被利用的可能性,并提供一种基于OpenVPN的识别算法从而进一步检测APT隐蔽隧道。在经过试验和验证后,能够确信该算法具有一定的准确性和意义。
6 结语
由于网络攻击技术与APT攻击的不断发展,曾被认为安全的VPN,因为相关漏洞被不断发现以及攻击者们不停的实践,VPN已经不再像以前我们认知的那样安全。在提供安全与便利的同时,VPN也可能成为攻击者所利用的隐蔽隧道传输敏感数据,所以需要一种能够识别VPN的手段进而检测出APT隐蔽隧道的存在。本文选择时下使用率最高的OpenVPN作为检测目标,提出了检测算法并进行实现。通过测试与评估证明了算法的正确性与准确性,为今后对VPN的识别以及APT隐蔽隧道检测提供了扎实的基础成果。
-------------------------------------------------------
基于OpenVPN技术的校园网络远程网管研究
| 【摘 要】 | 校园网是学校进行信息化建设必须依托的重要平台,对校园网进行实时监控、管理和维护是保障校园网安全平稳运行的关键。如何实现校园网络远程网管,同时能够满足校园网络对于安全性的要求,是网络管理工作中比较突出的实际问题。OpenVPN技术属于远程访问技术,利用该技术可以实现对校园网络的远程管理。首先研究OpenVPN技术,然后对校园网的实际管理应用需求进行分析,在此基础上,提出基于OpenVPN技术的校园网远程管理与维护的设计方案,最后根据本文提出的设计方案,搭建校园网环境下的运行系统,实现对校园网远程管理和维护。通过对实际系统的测试和运行,可以得出,按照本文设计方案搭建的系统,可以实现对校园网进行远程管理和维护,并且系统操作灵活方便、运行稳定、安全可靠,能够满足远程管理与维护的实际工作需要。 |
| 【统计数据】 | 被引量:1 阅读量:1 |
收起阅读全文
基于OpenVPN技术的校园网络远程网管研究
0 引 言
校园网是一种局域网,是学校进行信息化建设的基础设施。它承载着学校教学、科研、人事、学生、财务、一卡通等关键业务。因此,对校园网进行有效的管理和维护,是保障其安全稳定运行的关键[1]。
由于对校园网管理有较高的安全性要求,所以通常采用内网模式进行管理与维护。但随着计算机网络技术的发展,网络已经与我们的日常工作、学习与生活密不可分,对于网络的稳定性提出了更高要求。对于网络管理者而言,需要随时随地、高效地进行网络管理,如何进行远程网络管理已成为网络管理工作中的一个突出问题[2]。随着VPN和OpenVPN技术的产生,使得网络管理员利用公共网络对校园网进行管理与维护并满足校园网管理的安全性要求成为可能。本文则利用OpenVPN技术,设计出解决方案并实现了对校园网的远程管理与维护。
首先,研究了OpenVPN技术;然后对校园网的实际管理应用需求进行分析,在此基础上,提出基于OpenVPN技术的校园网远程管理与维护的设计方案;最后根据本文提出的设计方案,搭建校园网环境下的运行系统,实现对校园网远程管理和维护。通过对实际系统的测试和运行,可以得出,按照本文设计方案搭建的系统,可以实现对校园网进行远程管理和维护,并且系统操作灵活方便、运行稳定、安全可靠,能够满足远程管理与维护的实际工作需要。
1 OpenVPN技术
VPN(Virtual Private Network,虚拟专用网络)技术属于远程访问技术,利用该技术可以实现公用网络对专用网络的访问[3]。OpenVPN是一款实现VPN的点到点、点到多点以及网端到网端等多种应用模式的开源软件。OpenVPN的核心技术包括虚拟网卡技术、数据压缩技术和数据加密技术。
1.1 虚拟网卡技术
虚拟网卡技术是OpenVPN的核心技术之一,它利用网络底层编辑技术,在客户端与服务器端各虚拟出一块网卡,形成2块虚拟网卡之间的逻辑通道[4]。通过虚拟网卡进行数据发送与接收,实现VPN业务。虚拟网卡驱动包括网卡驱动和字符驱动,其中网卡驱动负责传输数据,字符驱动负责与应用层数据进行通讯。客户端与服务器端数据传输与各层次逻辑关系示意图如图1所示。从图中可以看出:OpenVPN提供了TUN和TAP 2种虚拟网卡类型,其中TUN用于虚拟三层网络,TAP用于虚拟二层网络[5];虚拟网卡间的逻辑通道将客户端与服务器联接起来,并在网络传输层建立SSL/TLS联接。
图1 OpenVPN的数据传输与各层次逻辑关系
Fig.1 OpenVPN data transmission and logical relationship at various levels
Fig.1 OpenVPN data transmission and logical relationship at various levels
1.2 数据压缩技术
LZO是OpenVPN在数据传输过程中使用的数据压缩算法。该算法能够实现对数据进行无损压缩、重复压缩和原地解压。LZO算法在保证压缩率相对不错的前提下,具有压缩速度快的突出特点[6]。它要求压缩与解压所用块的大小保持一致,利用块压缩方式,也就是说是对成块的数据进行压缩解压处理,数据块被压缩成匹配数据和非匹配文字序列。对于长度较大的非匹配数据序列和匹配数据序列都有专门的处理方式,对于不同类型的数据能够取得不错的效果。LZO的突出特点使其甚至可以应用于嵌入式系统,并取得满意效果[7]。OpenVPN采用LZO算法对通讯数据先进行压缩处理,然后再进行数据网络传输,以此来提高数据传输效率。
1.3 数据加密技术
SSL(Secure Sockets Layer,安全套接层)及其TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。OpenVPN使用SSL/TLS协议在传输层对通讯数据进行加密传输[8]。
SSL协议用于因特网中数据的加密传输。SSL协议从3.1版本开始,由因特网任务小组接管,并更名为TLS。使用SSL/TLS数据加密技术,可以防止通讯数据在传输过程中被截取并窃听。但是,因受到美国对加密软件产品出口的限制,SSL/TLS在实用过程中存在密码算法弱强度的问题,不能满足政府、军用、金融等高安全领域的安全性要求,需要通过调用高安全级别的加密算法来增强其安全性[9]。在常规应用场合中,SSL/TLS一般都可以直接满足设计需要。
SSL/TLS被广泛地用于客户端与服务器端的身份认证和加密数据传输。SSL/TLS协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL/TLS协议可分为SSL/TLS记录协议和SSL/TLS握手协议2层。SSL/TLS记录协议建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、加密等支持。SSL/TLS握手协议用于通讯数据传输开始之前,通讯双方完成身份认证、协商算法、交换密钥等操作。
2 基于OpenVPN技术的校园网远程管理与维护的设计方案
为了实现管理员在外网对校园网进行安全稳定的远程管理和维护,需要对原有校园网系统拓扑结构进行适当改进。图2为原校园网管结构,图3为实现外网远程管理与维护设计方案的系统结构。可以看出,在校园网中增设了一台OpenVPN服务器并进行相应的权限配置。在校园网络核心与汇聚层交换机中配置OpenVPN服务器的访问权限,对其访问网管服务器进行授权,从而实现网络管理功能。同时更新路由表,使得从网管服务器发往目标地址为OpenVPN客户端的数据包转发至OpenVPN服务器处理,数据包再由OpenVPN服务器转发给OpenVPN客户端[10]。另外,在校园网络核心与汇聚层交换机中需设置访问控制列表,对OpenVPN客户端的权限进行授权与隔离处理,以保证安全性要求。
图2 原校园网管结构图
Fig.2 Original campus network management structure
Fig.2 Original campus network management structure
图3 实现外网远程管理与维护设计方案的系统结构图
Fig.3 System structure design for realizing remote network management and maintenance
Fig.3 System structure design for realizing remote network management and maintenance
相对于原网管结构,本设计方案实现了如下功能:1)管理员可以通过外网联接到OpenVPN服务器,远程获取校园网确定的IP地址段;2)为保证网络的安全,在网络联接与数据传输时,进行了数据加密处理;3)通过分配专用于远程管理的校园IP地址段并与校内原管理IP地址段相隔离,保证安全。
2.1 获取IP的方法
利用公网对校园网进行远程网络管理与维护,首先要解决IP地址的获取问题。若确需使用公网IP地址,则在出口防火墙、入侵检测、WEB应用防护等系统中,均设置了较高级别的安全策略,防止来自公网的黑客攻击。同时,在校园网核心层、汇聚层及接入层交换机设置网络访问控制列表,避免来自内网的恶意攻击。所以网络管理人员只能通过指定的具有管理权限的IP地址段或IP地址,才能对校园网进行正常的网络维护与管理操作,而其他的不论是校园网还是公网的IP地址段都不具备网络管理权限。然而,网络管理人员处于学校外部的公网环境中时,所获取的IP地址大都是使用DHCP(动态主机配置协议)所分配到的随机IP地址,尤其,当网络管理员在校外处在不同的城市和地区时,所能分配到的IP地址具有更大的不确定性[11]。
采用OpenVPN技术可以很好地解决远程网络管理过程中出现的获取IP地址难题[12]。利用虚拟专用网络可以使得处于公网的主机授权获得校园内网的IP地址,这样就好像从外网打通了一条虚拟的通往学校内部的逻辑通路,使得网络管理人员能够在公网环境下授权获得内网IP地址,逻辑上处于内网之下。OpenVPN服务器分配给客户端的IP地址是预先设计好的隶属于指定的IP地址段,因而可实现管理IP地址或IP地址段的确定性,从而可实现明确的权限分配并实现安全的网络维护与管理。
2.2 OpenVPN身份验证方法
OpenVPN的身份验证方法有证书验证和用户名密码验证等方法[13]。因网络管理人员涉及人数较少且相对固定,因此可采用证书验证方式。本系统设计时,给每一个网络管理人员都生成一份验证证书,用于在外网进行VPN联接,且采用证书验证方式时,网络黑客等攻击者难以获取到证书文件,因而采用这种身份验证方法,使得整个远程网络管理系统更加安全。
2.3 存在的安全隐患与解决策略
网络管理人员日常的工作环境一般都是经过专门分配的、进行过安全授权的、具有较高网络管理权限的特定环境,一般采用指定IP地址或地址段并结合管理员登录身份验证的方式。系统设计时要考虑到这一方面,一旦被非法用户获取到密钥与访问权限,其所能取得的网络管理权限需要具有一定的隐秘性和局限性。
网络管理人员通过OpenVPN联接后,所获取到的拥有校园网管理权限的IP地址段有2种规划方式:
1) 获得与校内网络管理人员相同地址段的IP地址
采用这种方式的优点是:无需网络作后续配置与调整,无须进行管理权限分配;缺点是校内、校外管理IP地址段相同,难以进行区分,一旦被非法用户获取到OpenVPN的联接权限,将会造成较大的安全隐患。
2) 获得指定的与校内网络管理人员不同的另外一段IP地址
采用这种方式可以克服校内、校外管理IP地址段相同,难以进行区分,一旦被非法用户获取到OpenVPN联接权限,产生较大安全隐患的缺点。因对校外网络管理员所分配的网段是单独的网段,所以权限可灵活分配,同时因与原网段相隔离也能避免产生直接的安全威胁。但采用这种方式所需要进行的设置与管理工作相对较多,如:需网络管理权限作后续配置与调整、需再次进行管理权限分配、需进行校园网路由配置等。
因而,为避免可能造成的直接性安全威胁,实现灵活的权限分配,整个系统设计采用第2种方式。
同时,在系统管理上采用密钥文件定期更新的方式,来降低可能出现的密钥泄露而带来的安全风险。
图4 4层防护
Fig.4 Four-layer protection
Fig.4 Four-layer protection
另外,系统设计采用多级别安全措施来加强系统的安全性。整个系统共拥有4层网络安全防护,具体包括:端口授权检查、密钥检查、IP地址授权检查和网管身份验证,充分保障了系统安全。4层防护及验证过程流程图如图4所示。在校园网出口处对OpenVPN的服务端口进行授权访问,对其他具有潜在风险的服务端口进行屏蔽保护,具体功能由校园网络防火墙设置实现。检查密钥是否合法通过OpenVPN自身的服务进程来完成。然后,通过校园网核心层交换机来实现对网管服务器区域开放IP地址授权。最后,由网管服务器管理软件自身拥有的身份验证组件实现了特定网络管理权限的合法性验证。
3 基于OpenVPN技术的设计方案的实现与测试
结合上述设计方案,基于OpenVPN技术搭建出了校园网环境下的实际运行系统。同时,为保证系统的安全性、稳定性和功能性,在系统搭建完成后,使用端口扫描、网络联通性测试、功能性测试等方式对系统进行测试,测试结果良好,系统功能正常。
3.1 OpenVPN服务器的安装与运行环境
首先,在OpenVPN服务器中安装具有速度快、稳定性高和支持多种硬件平台的操作系统FreeBSD,版本为11.1[14];然后,在已安装好的FreeBSD操作系统中安装版本为2.4.5的OpenVPN服务器端软件、版本为2-2.10的数据压缩算法LZO软件、版本为3.0.1的证书生成软件easy-rsa以及版本为4.2.1的gmake编译工具。
3.2 OpenVPN客户端安装配置
1) 下载并安装OpenVPN客户端软件openvpn-install-2.3.14-I001-i686.exe。
2) 配置客户端配置文件,编辑C:\Program Files (x86)\OpenVPN\config目录下的client.ovpn客户端配置文件,设定服务器IP地址与端口号、协议、证书文件名称等相关参数。
3) 将OpenVPN服务器中使用工具生成的CA证书、客户端证书等4个文件:ca.crt;client.crt;client.key;ta.key拷贝到配置文件所在目录C:\Program Files(x86)\OpenVPN\config中。
3.3 系统主要性能指标的测试
系统的主要性能指标包括链路质量、安全性及功能性等3个方面。可以分别利用网络联通性测试指令、端口扫描工具和实际网络管理操作等方式完成系统的测试。
3.3.1 链路质量测试
1) 运行OpenVPN客户端软件,并与服务器建立联接。
2) 测试丢包率与响应延迟。
表1 丢包率与延迟测试
Tab.1 Packet loss rate and delay test
Tab.1 Packet loss rate and delay test
通过ICMP协议的PING命令可以对丢包率及响应延迟进行直观测试[15]。命令执行时使用参数-t,每次测试时间为连续5分钟,随机测试3次,每次PING命令反复执行次数约为300次。统计测试结果如表1所示。可以看到,丢包率与延迟2项指标均良好,可以满足实际应用需要。
3.3.2 安全性测试
在外网使用端口扫描工具检测OpenVPN服务器的服务端口授权开放情况,仅提供OpenVPN服务的端口处于激活状态,实现了整个系统的第1层防护[16]。端口授权,具体功能通过设置校园网络防火墙来实现;第2层防护:密钥检查由OpenVPN服务进程来完成,只有使用合法授权密钥可以通过验证并建立联接,而非合法授权密钥无法通过验证并被拒绝联接;第3层防护:IP地址授权通过校园网核心交换机来实现,对网管服务器区域开放访问权限,其他非授权区域不具备访问权限;第4层防护:身份验证是通过网管服务器管理软件自身来实现身份合法性验证的,只有通过身份验证的用户才能获得网络管理权限。
与OpenVPN服务器成功建立联接后,查看本地IP地址等信息情况,具体通过ipconfig-all命令来查看。描述为TAP-Windows Adapter V9的本地联接为OpenVPN虚拟网卡。查看其从服务器获取到的IP地址,其所在的IP地址段为预先规划好的172.16.160开头的远程网管专用IP地址段。在校园核心、汇聚层交换机中已对这一段IP地址的权限进行了配置,且与原网管IP地址段相隔离,实现了预想的安全性需要。
3.3.3 远程网管功能测试
在外网环境下,首先,运行电脑中已安装配置好的OpenVPN客户端软件。然后,选择“Connect”一项进行联接操作。联接成功后会出现“client is now connected”的提示,这时就可以测试相应的校园网络管理功能了。经过实际测试,网络入侵防御系统、防火墙管理、网络用户管理系统、邮件管理系统、DNS管理、交换机管理等各项远程管理与维护功能均能正常使用,仅存在由公网联接至校内网络的正常路由转发延迟,其访问效果有如身在学校的网络管理环境下。系统搭建成功后连续正常运行几个月,运行稳定可靠,可完全满足远程网管的实际工作需要。
4 结 语
通过对校园网络管理过程中,因网络管理人员处于校外无法进行校园网络管理的实际问题进行问题分析、理论研究、系统方案设计,基于OpenVPN技术搭建出解决此问题的实际应用系统,最后投入校园网络管理实际环境中运行和测试。系统运行稳定、应用效果良好,证明了系统设计的可行性和实用性,并且本研究成果可以在各种类似的场合下进行推广和使用,具有较高的实际应用价值。
No comments:
Post a Comment