【简介】直接将内网服务器映射成公网IP,可以方便的从任何地方访问服务器的指定端口,但是这种方式下,服务器是公开且暴露的。那有没有即方便、又比较安全的远程访问服务器的方法呢?我们来看看SSL VPN的Web模式。
SSL VPN介绍
从概念角度来说,SSL VPN即指采用SSL (Security Socket Layer)协议来实现远程接入的一种新型VPN技术。SSL协议是网景公司提出的基于WEB应用的安全协议,它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。对于内、外部应用来说,使用SSL可保证信息的真实性、完整性和保密性。
SSL VPN与传统的IPSec VPN技术各具特色,各有千秋。SSL VPN比较适合用于移动用户的远程接入(Client-Site),而IPSec VPN则在网对网(Site-Site)的VPN连接中具备先天优势。这两种产品将在VPN市场上长期共存,优势互补。
在产品的表现形式上,两者有以下几大差异:
1、IPsec VPN多用于“网—网”连接,SSL VPN用于“移动客户—网”连接。SSL VPN的移动用户使用标准的浏览器,无需安装客户端程序,即可通过SSL VPN隧道接入内部网络;而IPSec VPN的移动用户需要安装专门的IPSec客户端软件。
2、SSL VPN是基于应用层的VPN,而IPsec VPN是基于网络层的VPN。IPsec VPN对所有的IP应用均透明;而SSL VPN保护基于Web的应用更有优势,当然好的产品也支持TCP/UDP的C/S应用,例如文件共享、网络邻居、Ftp、Telnet、Oracle等。
3、SSL VPN用户不受上网方式限制,SSL VPN隧道可以穿透Firewall;而IPSec客户端需要支持“NAT穿透”功能才能穿透Firewall,而且需要Firewall打开UDP500端口。
4、SSL VPN只需要维护中心节点的网关设备,客户端免维护,降低了部署和支持费用。而IPSec VPN需要管理通讯的每个节点,网管专业性较强。
5、SSL VPN 更容易提供细粒度访问控制,可以对用户的权限、资源、服务、文件进行更加细致的控制,与第三方认证系统(如:radius、AD等)结合更加便捷。而IPSec VPN主要基于IP组对用户进行访问控制。
SSL VPN有两种模式:
Web代理模式:FortiGate将来自远端浏览器的页面请求转发给Web服务器,然后将服务器的响应回传给终端用户。
隧道模式:需要下载运行的客户端支持。客户端和FortiGate设备建立SSL隧道后,FortiGate为客户端分配IP,客户端通过建立的虚接口直接通过SSL隧道连接到内部网络。
通过对SSL VPN两种模式的比较,Web代理模式的优点是只需要Web浏览器就可以直接访问,缺点是因为浏览器的限制,可以访问的协议有限。隧道模式缺点是需要安装FortiClient客户端,操作略为复杂,但优点是可以运行所有协议。.
即然我们是要即方便,又安全的远程访问,那么不安装客户端,直接用浏览器访问,是我们的首选。
实验要求与环境
OldMei集团深圳总部部署了一台服务器,用来对所有内网的设备进行管理。为了方便管理员在任何位置都能访问,启用了远程桌面功能。管理员已经通过映射内网服务器到公网IP,实现了远程访问服务器的功能,但是感觉这种方式不安全,希望用一种即方便,又安全的方式进行远程访问。
根据前面文章的介绍,我们已经在桌面上创建了模拟远程访问平台。这里不再叙述。
管理员在家里将笔记本电脑配置为家中宽带上网。
通过公网IP,远程登录深圳总部防火墙。
配置用户与用户组
SSL VPN之所以更加安全,是因为可以对所有访问用户进行身份验证。所以,在配置SSL VPN之前,我们需要先建立验证用户。
① 通常我们会创建用户组,将多个功能相同的用户加入到用户组中。选择菜单【用户与认证】-【用户组】,点击【新建】。
② 输入用户组名,建议用下划线隔开。默认类型为【防火墙】,点击【确认】。
③ 新用户组创建好了,下面就是创建用户了。
④ 选择菜单【用户与认证】-【设置用户】,点击【新建】。
⑤ 默认选择【本地用户】,点击【下一步】。
⑥ 输入新的用户名和密码,点击【下一步】。
⑦ 双因子认证是输入两次密码认证,目前我们还不需要,默认是禁用的,点击【下一步】。
⑧ 用户帐户状态默认是【启用】,以后不用这个用户了,可以不删除,只需要用户帐户状态选择【禁用】就可以了。启用【用户组】,选择我们前面创建的SSL_VPN_User用户组。
⑨ 一个用户组可以加入多个用户,同样,一个用户也可以加入多个用户组,点击【提交】。
⑩ 用户列表显示新建的用户信息,可以重复相同步骤,创建多个用户。
配置地址与地址组
除了创建验证用户与用户组之外,我们还要限制SSL VPN对内网的访问,通过地址与地址组来实现。
① 通常我们会创建地址组,将多个地址对象加入到地址组中。这样的话,所有的操作只引用地址组,地址组内地址对象的增加和删除,不会对配置造成大的修改。选择菜单【策略&对象】-【地址】,点击【新建】-【地址】。
② 输入地址对象名称,不要用中文,因为在后期如果需要用命令操作时,会显示乱码。这里输入域服务器的IP地址,注意要加子网掩码。接口是用来过滤地址对象的,当地址对象非常多的时候,可以通过选择接口,快速过滤出只属于接口的地址对象。建议养成添加注释的习惯,方便理解。注释可用中文。
③ 地址对象创建好后,点击【新建】-【地址组】。当然也可以先建地址组,再建地址对象。
④ 由于我们创建地址对象时,将IP和接口捆绑了,所以创建地址组时,也根据接口创建,不要将其它接口的地址对象,加入不同的接口组。正确操作是将所有DMZ接口下的服务器IP地址对象,加入同一个地址组。
⑤ 在地址组列表,可以看到刚才创建的地址组对象。接口为DMZ。
配置SS-VPN门户与SSL-VPN设置
用户组和地址组都创建完成,就可以配置SSL了,首先,我们要配置SSL门户。
① 选择菜单【VPN】-【SSL-VPN门户】,可以看到默认有三个,一个是Web模式,一个是隧道模式,一个是两者兼有。隧道模式需要安装FortiClient客户端,比较麻烦,我们先测试Web模。选择【web-access】,点击【编辑】。
② 这个门户设置,关闭了隧道模式,启用了Web模式。这里我们保留默认设置。
③ 当我们需要经常用Web浏览器通过SSL访问内网时,希望有一些快捷方式,不用每次进行输入,点开即可。这就是书签的作用。暂时不做修改,点击【取消】退出。
④ 选择菜单【SSL-VPN设置】,首先需要选择宽带接口,即允许从哪个接口拨入到防火墙,可以选择多个宽带接口。SSL VPN监听端口默认为443,但是这和防火墙的管理端口相同,所以需要修改一下端口号,通常设置为8443或10443。
大家猜一猜,如果,防火墙的管理端口443和SSL VPN默认端口443都不修改的话,启动了SSL VPN会怎么样?显示的将会是SSL VPN登录界面,你再也无法登录防火墙了。
服务器证书选择FortiGate防火墙自带的。这里记得一定要选择,不能为空。
⑤ 我们可以限制SSL VPN拨入的IP,这样只有管理员能从家里的宽带拨入。其它地方都不行。也可以配置空闲登出时间,防止长时间在线。
另外,隧道模式根据默认的地址对象生成一个IP,以生成的IP来访问防火墙内部。这个在策略配置时会看到。
⑥ 认证/门户映射这个是必需填的。点击【新建】。
⑦ 这里就用到了我们一开始创建的用户组了。用户是通过Web访问认证。
⑧ 很多人配置到这里,就直接点了【应用】,但是没有通过。因为还少设置一样,全部其他用户/组,是必须设置的,点击【尚未设置】。
⑨ 选择最简单的【web-access】门户,点击【确认】。
⑩ 配置完认证/门户映射,点击【应用】。 SSL-VPN设置就配置完了。
配置SS-VPN策略
SSL-VPN设置配置完后,还需要配置SSL-VPN策略。
① SSL-VPN设置配置完后,在界面的最上方,会提示还需创建SSL-VPN策略,点击链接。
② SSL-VPN设置完成,防火墙会创建一个专用SSL-VPN虚拟接口,策略的流入接口就是这个虚拟接口ssl.root。流出接口选择服务器所在接口DMZ,SSL-VPN默认使用【SSLVPN_TUNNEL_ADDR1】地址对象生成拨号后的IP。所以源地址需要选择这个地址对象,后面配置我们还会经常碰到,现在没理解没关系。
③ SSL VPN策略的源地址比较特殊,除了限制IP地址外,还要强制用户认证,需要再加入在SSL-VPN设置里的用到的用户组,达到这两个条件才能通过。
④ 为了限制SSL VPN拨号进来访问的内容,目标地址就起到作用了。这里只允许访问指定服务器IP。
⑤ 前面我们配置策略的时候,已经了解到服务即端口,在这里控制开放哪些端口,由于Web浏览器支持的端口数有限,这里我们选择【ALL】。建议在配置策略时,服务先选择【ALL】,当所有内容配置完成并通后,再进行修改,更细粒度的控制通过的流量。一开始就控制很严格,排错会非常麻烦。这里NAT不要启用。其它设置保持默认,点击【确认】,SSL VPN策略就建好了。
验证效果
SSL-VPN门户、设置和策略都配置完后,就可以用浏览器登录SSL VPN了。
① SSL-VPN设置界面会显示Web模式访问的地址,点击链接,或打开浏览器输入此链接。
② 显示和初次登录防火墙一样的提示,但地址后面有端口号10443,和登录防火墙是有区别的。点击【高级】。
③ 点击【继续前往218.253.83.14 (不安全)】。
④ 出现登录提示,为了区别与防火墙的登录,特意用了不同的颜色。而且下面还多了一个【启动FortiClient】。这里输入我们创建的用户名和密码。
⑤ 出现这个窗口,表示SSL VPN Web登录成功。点击【快速连接】。
⑥ 快速连接显示了一些常用的功能,也就是SSL VPN Web模式所支持的协议。我们先来测试一下是否可以Ping通10.10.10.254这台服务器。
⑦ 显示成功信息,说明服务器IP可以Ping通。为什么我们在家中的浏览器,也能ping通远程防火墙内部的服务器IP?那是因为浏览器通过SSL VPN验证,生成了防火墙内部IP,所以也就能访问内部的服务器了。
⑧ 惊喜的发现,既然支持RDP远程桌面访问,配置好参数后试一试。
⑨ 显示黑黑的窗口,连接关闭。有人知道为什么会这样吗?