如何用软件架设SSL VPN服务器

通过Adito的免费版本软件,我们可以在Linux服务器上,直接提供SSL VPN的远程服务。
1

为了强化使用者存取企业内网的安全,及改善VPN的联机稳定度(以在某些地区的使用而言),因此许多网络设备随着新型号的推出,或者是软件的修改,而取消了PPTP的VPN服务器功能,改为容易使用,及具备强大加密能力的SSL VPN做为替代。对于企业来说,SSL VPN主要可以透过2种方式设置:一是购买单一功能的设备;其次,则是使用内建在防火墙等网络设备的SSL VPN服务器来联机。然而,众所皆知的是,单一功能的SSL VPN网关大多十分昂贵,仅有IT预算充裕的单位得以负担,而多功能的网络设备则因为需要提供多种服务,因此可供联机的通道数较少,在这种情况下,通过免费软件Adito,自行架设SSL VPN也不失为一种可行的做法。

这次我们测试的Adito,原本是3SP开发的SSL VPN服务器套件,它可以分为付费、具备完整功能的Enterprise,及免费使用的Community等2种版本。而在2008年11月,该公司被Barracuda收购之后,Enterprise版便改以硬设备,及VMware虚拟设备(Virtual Appliances,VA)的形式提供,风格也与以往的软件有所不同。其中,硬设备的产品线有SSL VPN180、280,一直到最大的880,共包括6款型号的设备,提供10到1,000位不等的使用者从远程联机之用;至于Community版,则以免费软件的形式,在SourceForge网站开放下载,最新版本为0.9.1

部署环境以Unix为主,需搭配Java方能运行,SourceForge所提供的Adito,主要为适用于Unix-based环境的套件。我们将它安装在CentOS 6.5能顺利运行,而在部署之前,我们必须确认Linux是否已经安装Java SE Development Kit(JDK),及Apache Ant(类同于Unix下的make工具)等2套做为搭配的软件。Adito是一套基于Java开发而成的SSL VPN服务器,而Linux版本的JDK可以从Sun的官网下载。

Adito的部署,需透过Apache Ant编译、安装,在Adito安装文件所在的目录,执行ant install指令之后,会在文字接口显示网页设定接口的所在网址,通过浏览器以HTTP、TCP 28080端口连入之后,便能以设定精灵的方式,完成SSL VPN服务器的基本设定;接着,再于文字接口下,执行「ant install-service」指令,将Adito加入Linux的系统服务列表,便可以通过service指令启、停用SSL VPN服务器的服务。以我的安装经验来说,整个流程大约可以在4分钟以内结束。

联机设定主要分为3大类

Adito所使用的SSL密码,预设为一般常见的1,024位长度,然而,它也支持更为强健的2,048位长度的SSL密码,使它得以完整因应企业对于各种联机加密的需求。而在联机的控制方面,Adito可以设定单一账号,或者每个IP地址所能建立的信道数,确保不会有其他人使用相同账号连入。

除了系统的基本设定之外,Adito的大多数功能,也都可以通过设定精灵的方式操作,而点选网页接口的说明,即有图文说明可供参考,这对于采用这套免费软件的企业来说,可以大为提升操作的亲和度。

和大多数单一功能的SSL VPN网关一样,Adito对于内网的存取方式,以网页形式的反向代理为主,它将企业内网的资源区分为Web Forwards(网页联机)、Network Places(网络空间存取),及Applications(应用程序联机)等3种不同的类型。在权限的控制上,Adito可以设定让不同的群组,存取不同的内部资源项目。

Web Forwards

Adito能通过多种方式联机到内部的网页服务器,这其中,以Replacement Proxy,及Tunneled Web等2种方式最为常用。

Replacement Proxy就是一般常见的网页反向代理,它的设定十分容易,一般来说,我们仅需要输入网页服务器的IP地址,或者带有存取路径的网址,及透过下拉式选单定义网页的编码方式,最后,设定好可以存取该项目的用户账号,或者群组之后,即可通过Adito,从外部存取来企业内部的网页服务。

至于Tunneled Web,则是以类似NAT,提供网页服务器的远程访问。它的基本设定和Replacement Proxy大同小异,实际联机时,它会在个人端计算机安装连接器的Java-based代理程序,随后,我们将能通过SSL VPN服务器所在的IP地址,及一个由Adito随机给予的通讯端口,与网页服务器联机,在连接器未关闭的情况下,可以继续使用浏览器以这个网址做联机,而不需要每次都通过SSL VPN的网页接口才能存取。

Network Places

通过Network Places,我们可以设定用户对于内网的资料存取。和一般SSL VPN网关不同的是,Adito不只能将后端服务器的储存空间,透过FTP、网页等形式,提供给用户远程访问之外,也能将主机本身的硬盘空间分享出来,做为网络驱动器使用。

除了基本的文件上传、下载之外,通过Adito的网页接口,我们亦能在这些类型的储存服务器上,新增文件夹,以便分类资料,并且可以采用剪贴的方式搬移文件;而文件名的显示,可以支持简体中文在内的多种语系,使用上不会有乱码的产生。

Adito还可以设定限制,仅让使用者以只读的方式存取储存服务器,另外,对于具有隐藏属性的文件,也可以设定一并显示,让用户对于文件的存取,不会有所遗漏。

Applications

Adito将Web Forwards、Network Places以外的应用程序存取方式,归类于Applications的项目当中。它的设定十分特别,首先,我们必须用浏览器连至SSL VPN服务器的Extension Manager页面,下载安装Extension Store所提供的插件,如此一来才能开放特定应用程序对于内网的存取,举例来说,像是我们经常使用的Windows远程桌面联机,就是其中之一。不过,Extension Store的插件,有些原本是提供给这套软件的Enterprise版使用的,因此像是虚拟键盘等许多的模块,就无法安装于免费版本的Adito服务器。具备信道模式的功能,登入SSL VPN之后,使用者可直接存取特定的应用程序项目,有鉴于企业所使用的网络应用程序种类五花八门,因此,想要在Applications逐一地完成所有的应用程序存取设定,可以说是一件不可能的任务,但如果透过连接器的软件,以类似于PPTP、IPsec VPN的全通道,开放用户完整存取内网的做法却又太危险,不仅重要的机密资料可能因此流失,恶意软件也可以利用VPN的通道,在内网扩散,对此,Adito则是以SSL Tunnels的功能,做为解决方式,一方面开放企业的网络应用程序通过此一功能联机,其次,却又不会给予使用者过度的权限,联机之余,也能顾及安全控制。

SSL Tunnels在设定上可以在使用者登入SSL VPN之后,即自行启动服务。这项功能的存取方式类似于NAT,设定上除了需要指定目的地计算机的IP地址,及应用程序通讯端口之外,还需要设定一个开放外部联机之用的通讯端口,而且须为未使用的端口号。

SSL Tunnels预设是以127.0.0.1,做为开放联机的IP地址,当信道建立之后,我们可以在网络应用程序,输入127.0.0.1:外部的联机端口号」,就可以建立联机。除了本机账号之外,另外能以底层的Unix账号,或者是AD做为验证来源,Adito允许我们可以通过底层主机的用户账号、密码,登入SSL VPN的服务,不过,在安全的考虑下,预设是使用建立于本机的账号来使用SSL VPN,或者可以整合企业现有的LDAP/Windows AD做为账号的来源。

当我们一开始通过设定精灵,完成Adito的基本设定时,即可以在上述3种的验证方式当中择一使用,而对于想要整合RADIUS服务器,或者更进一步以OTP动态密码装置验证用户身分的企业来说,免费版本的套件并不包含这些功能的设定选项,不过在以免费为前提的情况下,已经是绰绰有余。

内建强化联机安全

提供远程联机之余,Adito本身也提供相当程度的联机功能,防止SSL VPN成为发动恶意攻击的跳板。除了限制单一账号,及单一IP地址的联机数之外,我们还能透过黑、白名单的机制,规范特定IP地址的权限。另外,Adito预设当使用者连续登入失败超过3次时,即停用该账号5分钟,避免他人以非法的方式尝试取得账号的联机密码。



【上一篇】 【下一篇】

Posted in 教程 ,教育 ,软件 | Tags: , , , , , ,

0 条评论

添加评论

[ Ctrl + Enter ]