APP下载

利用开源软件实现基于SSL VPN的图书馆远程访问

2009-07-13

现代情报 2009年4期
关键词:电子资源

徐 忻

〔摘 要〕对SSL协议原理及其在构建VPN上的安全性、低成本、易配置等优势进行分析,提出了一个基于开源软件SSL exploer构建图书馆远程访问的方案,并对其具体实现方式及特点进行了探讨。

〔关键词〕电子资源;远程访问;开源软件;SSL VPN;ssl-exploer

〔中图分类号〕G250.72;TP393.2 〔文献标识码〕B 〔文章编号〕1008-0821(2009)04-0160-04

Remote Access to Library Based on SSL VPN Using Open Source SoftwareXu Xin

(Library,Chongqing Jiaotong University,Chongqing 400074,China)

〔Abstract〕The paper analyzed the principle of SSL protocol and its advantage of security,low cost,easy configuration,which constructs on VPN.Meanwhile,it suggested a project of remote access to library which was based on the open source software,ssl-exploer.And it also discussed the specific ways of realization and characters.

〔Key words〕digital resource;remote access;open source software;ssl vpnssl-exploer

远程访问图书馆,又叫校外访问,是指突破IP地址的物理限制,可以在任何能上网的地方使用图书馆电子资源[1]。由于受知识产权保护、商业利益、访问速度、图书馆局域网安全性等各方面因素影响,对于图书馆购买的电子资源,无论是电子资源开发商还是购买了电子资源的高校图书馆,都不希望就此成为免费的公众资源。因此,大多数电子资源都是通过IP地址来控制访问的,合法用户通常被限制在校园网IP地址范围内使用。这样造成了本校师生在校外无法使用图书馆电子资源的现象,不仅损害了图书馆合法用户的利益,也影响了图书馆电子资源的利用率。针对这种情况,一些高校图书馆先后采取了诸如拨号上网、反向代理、VPN等各种不同的技术解决方案为本校合法用户提供校外远程访问服务[2]。

从技术上讲,VPN(虚拟专用网)是目前解决远程访问的最好选择,因为它能利用公共网络将处于不同区域的多个局域网虚拟成一个局域网,并且能提供非常好的安全保障。但是采用传统的基于IP层安全协议(IPSec)实现的VPN方案存在成本高、配置复杂等一些缺陷,相比之下,基于安全套接层协议(SSL)的SSL VPN方案能克服IPSec VPN的不足,同时具有安全接入控制、维护管理方便的特点。但是目前市场SSL VPN产品成熟度不高,标准混乱,本文从开源软件研究入手,提出一个利用免费开源软件构建SSL VPN的图书馆电子资源访问方案。以期对图书馆远程访问的具体实施起到参考作用。

1 SSL VPN技术概述

1.1 传统IPSec VPN的缺点

VPN(virtual private network)是在公共通信网络中建立一条虚拟的专用通道,利用公共通信网络来传输内部网络数据的虚拟专用网络。IPSec协议族是基于IP网络层上,为保护IP通信安全而设计的一系列协议。通过IPSec协议族提供的隧道、加密和认证等安全服务而在公共网络上构造的虚拟专用网就叫做IPSec VPN,它能为两个网络之间数据传输提供安全性,是一个LAN to LAN的解决方案[3]。但是对校外访问图书馆电子资源的应用而言,只是需要将若干分散的单个远程用户简单方便、临时地接入校园网络,而不是把两个网络固定连在一起。因此,在这种场合下,IPSec VPN方案显然不太适用,况且安装、升级以及配置IPSec VPN客户端软件对普通用户来说也是个较困难的问题,同时这种方案在穿越防火墙、配置路由器端口上也是非常麻烦的,需要对网络配置进行修改调整,存在一定的安全隐患。

1.2 SSL协议及其安全性

近来基于SSL协议的SSL VPN技术崭露头角,SSL VPN技术实现的远程访问方案能实现安全接入,而且配置和管理方便、能穿透防火墙,建设成本比目前的IPSec VPN要低许多。

SSL的英文全称是“Secure Sockets Layer”,中文名为“安全套接协议层”,它是网景(Netscape)公司提出的基于Web应用的安全协议。SSL协议指定了一种在应用程序协议(如HTTPS、Telnet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证[4]。

SSL协议主要由握手层协议和记录层协议构成,它与TCP/IP协议间的关系如图1所示[5]。

由图1可见,SSL其实在TCP之上建立了一个加密通道,通过这一层的数据经过了加密,从而达到数据安全并且透明传输的效果。透明性使得几乎所有的基于TCP的协议稍加改动就可以在SSL上运行。

1.3 SSL VPN实现方式

SSL VPN一般的实现方式是在内部网的防火墙后面,放置一个SSL网关服务器,如果远程用户希望安全地连接到内部网,用户只需在浏览器地址栏上输入SSL网关服务器的地址,访问请求将被SSL网关服务器取得并验证该用户的身份,通过身份验证后SSL网关服务器将根据远程用户的配置权限,提供相应的内部网络资源的访问能力。

目前SSL VPN的主要实现技术有Web代理、应用转换、SSL隧道等[6]。

(1)Web代理(Proxy):SSL VPN网关将来自远端浏览器的页面请求(采用HTTPS协议)转发给Web服务器,然后将服务器的响应回传给远程用户。

(2)应用转换(Application Translation):对于非Web页面的文件访问,往往借助于应用转换。SSL VPN网关与内部网的应用服务器通信,将这些服务器对客户端的响应转化为HTTPS协议和HTML格式发往客户端。

(3)SSL隧道(SSL Tunnel):它也需要在远程用户机器上运行一个小的Java或ActiveX程序,根据网络层信息(如目的IP地址和端口号)进行安全加密的接入控制。

从以上分析可以看出,基于SSL协议实现的SSL VPN能够满足TCP协议网络应用,包括传统的C/S模式应用和目前盛行的B/S模式应用,同时具备了安全加密传输的特点。更重要的是SSL协议已经被浏览器软件内置支持,客户端无需安装设置,使用简单便捷,这是SSL VPN相对于Ipsec VPN的最大优势。

2 基于开源软件实现SSL VPN方式的图书馆远程访问方案

2.1 方案设计思路

目前SSL VPN产品在VPN市场上比较热门,种类较多,产品性能各有不同。但同时我们也看到,SSL VPN市场标准尚未统一,良莠不齐,产品普遍价格较高,这些都给用户的SSL VPN设备选购带来了不小的困难。

对图书馆电子资源远程解决方案而言,Web方式访问的电子资源虽然占多数,但目前也有少量C/S方式的数据资源,同时图书馆也要求解决方案满足低成本,配置简单,扩展性好,管理方便的特点。通过分析比较,结合图书馆的实际需求,我们选用一款免费的功能强大的开源软件“ssl-explorer”来实现SSL VPN方式的图书馆远程资源访问,可大大节省网络建设成本,设置及维护也很简单。

2.2 ssl-explorer的特点

ssl-explorer是Internet上第一个开源的SSL VPN软件,由3SP公司开发维护,分为2个版本:一个是免费的Community Edition(社区版),另一个是需要付费的Enterprise Edition(企业版)。企业版的功能比社区版多,但是对图书馆电子资源远程访问需求而言,免费的社区版的功能已足够满足要求。

ssl-explorer是用JAVA语言开发的,能运行在各种操作系统平台上。在对远程用户的鉴权认证方式上,既可以采用本地数据库方式,也能与第三方鉴权方式相配合(如RADIUS,AD,LDAP)[7]。

在SSL VPN技术实现方式上,ssl-explorer软件支持上文提及的Web代理、应用转换、SSL隧道,其中Web代理又分为四种模式“Tunneled Web”(隧道Web)、“Replacement Proxy”(替换代理)、“Path-Based Reverse Proxy”(基于路径的反向代理)、“Host-Based Reverse Proxy”(基于主机的反向代理)。

“Tunneled Web”是ssl explorer默认推荐模式,使用较简单,这种方式的工作原理如图2所示。

SSL VPN网关服务器是位于内部网内,它通过与因特网相连为远程用户提供SSL接入服务。远程用户使用Web浏览器访问SSL VPN网关服务器,服务器启用HTTPS协议首先对用户的身份进行验证,通过了身份验证,用户Web浏览器自动从SSL VPN网关服务器下载一个代理Agent程序(Java applet),然后获得一个该用户权限所能访问的内部网络资源列表。当用户发出对某个内部资源主机的Web访问请求时,该请求不会直接发给拥有该资源的目标主机,而是被Agent截获,将数据加密用HTTPS协议先发给SSL VPN服务器,SSL VPN服务器收到加密数据后,通过代理方式向目标主机发出请求,并接收来自目标主机资源的数据,然后使用SSL加密数据,最后通过HTTPS协议回发给远程用户[6]。

Web代理方式中另外3种方式,与上面过程类似,只是不需要下载Agent程序。不管使用那种代理模式,远程用户客户端都只需使用Web浏览器,就能够安全接入到SSL VPN网关服务器,通过网关服务器提供的SSL VPN服务,像内部网络用户一样方便地享用网络资源。

2.3 系统的安装与本地部署

整个方案的连接示意图如图3。

在校园网的防火墙之后部署1台电脑安装和配置ssl-explorer软件作为SSL VPN网关服务器,即可实现图书馆电子资源远程访问。

安装和配置ssl-explorer的主要步骤如下:

2.3.1 下载编译ssl-explorer软件

本文选择windows xp系统安装ssl-explorer。从“http:∥3sp.com/showSslExplorer.do”下载免费版“ssl-explorer for windows”软件源码,然后再安装JDK1.5(或以上版本)和Apache ANT 1.6.0(或以上版本)2个软件保证必要的编译和运行环境,按照ssl-explorer的编译配置帮助,利用ANT编译安装即可。

ssl-explorer安装过程中需要注意以下几个地方:

①SSL证书设置:可以选择自建证书,提高系统安全性。

②鉴权方式:选择本地数据库最简单,不需要其他专门的数据库软件支持。

③选择管理员用户名和密码:后面的参数配置都要由管理员登录来完成。

2.3.2 ssl-explorer系统参数配置

软件安装完成后,在本机上用浏览器访问“https:∥localhost”,出现一个登录界面,输入管理员用户名和密码即进入系统管理页面,系统参数设置都在这个页面进行。在系统管理页面需要注意的是“Resources”(资源)的访问方式的参数设置,共有4种方式:

①“Web Forwards”,适用于Web应用。

②“SSL Tunnels”适用于基于TCP协议的C/S应用程序,类似于IPSec隧道实现技术。

③“Network Places”用于远程用户访问内部网的文件服务器(如FTP)。

④“Applications”用于网关服务器发布,由客户端下载运行的在线应用扩展程序。

一般选择“Web Forwards”即可。

2.3.3 访问控制管理

在系统管理页面的“Access Control”中可以设置远程用户组别、用户账号和初始密码、访问权限及策略、远程IP限制等参数。

2.3.4 防火墙的参数设置

不需要对现有的防火墙或网络设备做什么变动,只需要防火墙开启了443端口,以便远程用户机器能够通过HTTPS协议访问ssl-explorer网关服务器。

2.4 软件的优化与改进

原始的ssl-explorer软件无论从界面和功能设置上都不太适合中文用户的使用习惯,因此需要对软件做一些修改和完善。

2.4.1 汉化界面

ssl-explorer应用的主要障碍是界面汉化的问题,ssl-explorer是由ssl-explorer的服务器端代码和客户端agent代码两部分组成,汉化界面主要集中在服务器端,在Ant环境下对各模块界面和文字和图片进行替换即可。

2.4.2 客户端agent的修改和编译

客户端agent其实是一个java applet程序,它会自动从SSL VPN网关服务器下载运行,不需要远程用户安装和配置。这个applet软件的界面很简单,汉化较容易,需要改进的是增加对远程用户的提示帮助功能。另外客户端的java applet需要突破java本身固有的安全限制,它的编译和安装方式与服务端有所不同,主要步骤如下:

①利用jdkin目录下的keytool创建RSA密钥:

keytool-genkey-keystore[storezname.store]-alias[aliaszname]

keytool-genkey-alias[aliaszname]-keyalg RSA

(注:[aliaszname]代表密钥的名称)

②安装自己的测试证书:

keytool-export-keystore[storezname.store]-alias[aliaszname]-file[certificate.cer]

keytool-export-alias[aliaszname]-file[certificate.cer]

(注:[certificate.cer]代表证书的名称,一般证书都以.cer为后缀名)

③生成Applet使用的jar文件(将编译后的class文件打包成jar):

猜你喜欢

电子资源
图书馆纸质资源与电子资源最优配置研究