《武汉工程大学学报》  2015年07期 75-78   出版日期:2015-07-31   ISSN:1674-2869   CN:42-1779/TQ
采用OpenVPN的虚拟专用网设计方案


0 引 言校园网资源对于做科研的教师和学生越来越重要,已经难以离开它们了,但是由于IP地址的限定,只能在校园内的主机才能访问校园网资源,对于住在校外的教师和假期回家的学生来说,就无法使用校园网资源了,一方面给他们带来了不便,另一方面也使得校园网资源不能充分利用. 为了解决这个问题,很多学校使用各种方式实现VPN. 文献[1]通过对OpenVPN技术改造,通过StoneVPN技术实现了较为安全的VPN,文献[2]提出了在校园网环境下实现了一种虚拟专用网,并实现了NAT,DNS和访问控制,文献[3]提出了一种WH-VPN技术,该技术会对每一个数据包都要进行安全处理,降低了网络速度,它一旦接入Internet后,性能和质量往往很难控制,文献[4]使用Windows系统作为服务器建立VPN,虽然操作简单,但是系统的稳定性无法保障.文献[5]设计了一种Lan-to-Lan VPN,在Centos6.04操作系统下运行,性能比较稳定,但是缺乏必要安全配置,对网络的攻击抵御能力较弱,以上文献中均提到了建立一种VPN的技术方案,大部分对其安全性没有做有力保障,不能做到一个账号只能一个用户使用,本文使用OpenVPN技术和防火技术提出了一个快速安全的基于校园网环境的VPN技术方案,实现了一个账号只能一个用户使用,提高了系统的安全性. 1 OpenVPN技术1.1 概 述VPN就是虚拟专用隧道,提供给企事业之间或个人与企业之间的一种安全的数据传输通道,OpenVPN是Linux下开源软件,使用Openssl库加密数据与控制信息,能够使用任何Openssl支持的加密算法. 1.2 原 理OpenVPN支持Tun和Tap方式,其中Tun方式使用Udp协议,传输速度较快,但是当网络丢包严重的情况下,效率极其低下,而Tap方式使用Tcp协议,具有良好的稳定性,当建立网络连接时,会自动创建一块虚拟的网卡,该网卡可以像真实的网卡一样工作,可以配置IP地址,网关,域名,路由出口等. 当有数据传送时,数据首先发往虚拟网卡,相关服务程序能够读到该数据并做相应的处理,通过Socket从外网上发送出去,当远程接收到该数据后,相关服务程序经过处理后发往虚拟网卡,应用软件可以读到该数据,从而完成了一次单向的传输. 1.3 验证方式OpenVPN支持基于证书的验证方式和用户名密码的的认证方式,基于证书的认证方式必须为每个用户创建安全证书,当用户长久不用时也可以吊销该证书,基于用户名和密码的认证方式,灵活性大,需要第三方数据库支持. 2 设计方案2.1 功能定义在不影响现有校园网网络结构的前题下设计一台VPN认证服务器,该服务器能够使用原有校园网的用户名和密码,并且能够对该用户进行相关的权限控制. 设计方案如图1所示,主要功能如下:使用校园网原有的认证系统进行认证.(1)能够为合法用户分配正确的校园网IP地址.(2)能够使用认证用户访问校园网资源时走OpenVPN隧道,访问其他资源时走正常的Internet网络.(3)能够记录用户上线,下线时间及在线时长.(4)能够限制异常用户认证VPN.(5)能够防止同一账号多人同时使用.(6)能够查看用户在线状态.(7)管理员能够查看服务器负载情.  图1 VPN系统结构Fig.1 A VPN system structure2.2 各模拟说明(1)创建用户模块该模块主要为一些没有开设校园网账号的老师或学生创建一个本地账号,用于认证VPN. (2)修改用户模块用于修改本地账号,如账号使用期限,账号密码等. (3)查询用户模块可以根据用户名查询该用户在线时间,下线时间,在线时长等信息,能够查询所有校园网用户和本地用户. (4)删除用户模块该模块主要用来删除本地用户,不能操作校园网用户,校园网用户的管理由校园网管理中心统一管理. (5)冻结用户模块当有些用户行为发生异常,比如大批量的下载文献,此时可以用该模块冻结该账户,冻结后用户不能认证到VPN服务器,必须解冻后才可以正常使用. 该模块可以冻结所有校园网用户和本地用户,冻结校园网用户只是冻结该用户认证VPN服务器,并不影响校园网的正常使用. (6)解冻用户模块用于解冻已经冻结的账户. (7)认证模块主要用于合法用户的正常认证,当认证成功后就可以使用VPN访问校园网资源了. (8)安全模块主要利用Centos 6.4自带的高性能防火墙来进行一些安全方面的设置,防止一些网络攻击而导致服务器瘫痪. (9)策略路由模块主要向用户推送路由信息,使用校外用户能够选择正常路由访问网络,当访问校内资源时走VPN,当访问其他网络时走正常的Internet网络.  2.3 主要算法设计  本节主要讨论认证算法的设计,算法程序如图2所示. 由于校园网用户所占比例远远高于本地用户,所以认证算法先选择校园网认证服务器,如果认证失败再选择本地认证服务器,这样更有利于缩短认证平均时间,提高认证速度. 图2 认证算法流程图Fig.2 The authentication algorithm flow chart  3 实验结果经过数月运行,服务器工作稳定,图3 是在当前用户数33的情况下,网络的下行速度和上行速度,下行速度已经达到近17 MBytes,上行速度达到近1.7 MBytes,这是因为下载的人数多,上传的人数少. 图4显示了当前系统用户情况即当前用户数33,图5显示了下行流量为17 MBytes的情况下系统负载情况,前1 min平均负载为0.25,前5 min内平均负载为0.15,前15 min内平均负载为0.15,由此可以看出,系统目前负载较轻,当更多用户接入VPN服务器时,服务器的服务能力应该不存在问题.系统采用Openvpn技术进行搭建,和现有普遍使用PPTP技术而言,OpenVPN使用SSL/TLS安全加密,这使得其安全性要比PPTP高很多,另外OpenVPN稳定性也要比PPTP稳定的多. 但是PPTP可以在很多操作系统上运行且不用安装客户端,而OpenVPN安装相对比较复杂,如果考虑稳定性和安全性,使用OpenVPN技术不失为一个好的选择. 和现有系统比较起来,系统不仅使用了OpenVPN技术自身的安全性,还使用了Linux自带的防火墙,进一步提高了系统的安全性.图3 网络当前流量Fig.3 The current traffic network图4 用户上下线情况Fig.4 The information of line up and down customers图5 系统负载情况Fig.5 The information of system load4 结 语笔者从校园网的实际情况出发,设计了一种可以胜任于校园网环境下的VPN服务器,由于使用了开源免费软件OpenVPN和防火墙,极大地降低了构建成本,提高了访问速度和安全程度,方便了校外师生无地域限制地访问校内资源. 该服务器不仅适用于校园网环境中,也适用于公司网络环境,并且仅更改服务器的少量配置即可达到目的,具有较好的扩展性. 致 谢安徽工程大学为本研究提供了资金资助,特此感谢!