【简介】SSL VPN Web模式下,只通过浏览器就可以访问远程内网,省去了安装客户端的烦恼,缺点的是支持的协议不多。FortiOS 7.4版本还支持走对方宽带上网。让我们来验证一下这个功能。
配置宽带
在配置SSL VPN之前,我们需要做一些准备工作。

① 防火墙固件版本为7.4.2。

② 将宽带接入WAN1接口。选择菜单【网络】-【接口】,选择wan1接口,点击【编辑】。

③ 为了验证效果,这里wan1接口连接是路由器。通过DHCP获得IP地址、网关及DNS等。实际使用环境一般连接是ADSL拨号宽带或固件IP宽带,获得或配置的公网IP要能远程访问。

④ DHCP和ADSL拨号宽带都会自动生成默认路由,因此不需要手动创建静态路由,只有配置固定IP宽带时,才需要手动配置默认路由。

⑤ 选择菜单【仪表板】-【网络】,查看路由小部件,可以看到wan1口自动生成的默认路由。ADSL拨号宽带也会自动生成默认路由。

⑥ 选择菜单【网络】-【DNS】,当宽带为DHCP或ADSL拨号时,这里会显示【动态获得DNS服务器】,注意这里重要。因为防火墙做域名解析会用到。
配置用户和用户组
SSL VPN登录时需要验证用户名和密码,所以需要在防火墙上预先配置。

① 用户和用户组的配置可以不分先后,这里我习惯先配置用户组。选择菜单【用户与认证】-【用户组】,点击【新建】。

② 输入自定义的用户组名,点击【确认】,这样一个空的用户组就创建好了。

③ 选择菜单【用户与认证】-【设置用户】,点击【新建】。

④ 用户类型默认为【本地用户】,点击【下一步】。

⑤ 输入自定义的用户名和密码,点击【下一步】。

⑥ 联系人信息保持默认,不要启用【双因子认证】,点击【下一步】。

⑦ 启用【用户组】,选择刚才创建的【SSL_VPN_Users】用户组,点击【提交】,新用户就创建好了,并加入了SSL VPN用户组。如果要创建多个用户,重复上述步骤即可。
配置SSL VPN门户
对于SSL VPN门户,FortiOS 7.4版本和以前的版本相比有很多不同之处。

① 点击菜单【VPN】,在子菜单中并没看到我们熟悉的SSL VPN菜单,这是因为FortiOS 7.4将力推更安全的ZTNA,那如果仍然想使用SSL VPN怎么办?

② 选择菜单【系统管理】-【可见功能】,启用【SSL-VPN】,点击【应用】。

③ 再次查看VPN菜单,可以看到有了SSL VPN子菜单,点击【SSL-VPN门户】,可以看到默认门户只有两个,而以前版本还有一个web-access。点击【新建】。

④ 新建SSL-VPN门户内容里,也没有以前熟悉的Web模式。这是因为Web模式相对来说安全级别不高,被新版本关闭了。

⑤ 在命令窗口下使用命令 config system global, set ssl-vpn-web-mode enable 启用SSL VPN的Web模式,end保存并退出。

⑥ 选择菜单【VPN】-【SSL-VPN门户】,可以看到熟悉的web-access又出现了,选择【web-access】,点击编辑。

⑦ 新版本出于安全原因,不建议使用SSL VPN Web模式。这里保持默认配置,不做修改。
配置SSL VPN设置
下一步进行SSL VPN设置。

① 选择菜单【VPN】-【SSL-VPN设置】,接口选择前面配置好的【wan1】,监听端口默认是443,会和防火墙的HTTPS管理端口号冲突,这里需要修改一下。

② 监听端口改为【10443】,当然也可以改成其它数字。点击【服务器证书】右边下拉按钮,弹出菜单选择【Fortinet_Factory】,服务器证书可以用防火墙自带的,也可以使用自定义的证书,必须选择,不能空白,否则后面会报错。

③ 【限制主机有限访问】可以对源IP进行限制,例如只允许国内IP访问,或只允许家中宽带访问。【空闲登录】默认300秒没有操作,就退出SSL VPN。这里都保持默认配置。

④ 在认证/门户映射点击【新建】。

⑤ 用户/组选择前面创建的【SSL_VPN_Users】用户组,门户选择【web-access】。点击【确认】。

⑥ 映射创建成功,注意【全部其它用户/组】,门户为【尚未设置】,这个一定要设置,不然配置无法完成,点击【尚未设置】,选择一个门户。

⑦ 建议选择功能最少的【web-access】,全部设置完成,点击【应用】。
配置SSL VPN策略
SSL VPN门户和SSL VPN设置都配置完后,下一步就是配置SSL VPN的策略了。

① 选择菜单【策略&对象】-【防火墙策略】,可以看到目前只有一条隐式拒绝策略,没有其它策略。点击【新建】。

② SSL VPN会自动创建一个虚拟接口,进入流量都是通过这个虚拟接口表达。创建一条SSL VPN虚拟接口走wan1口上网的策略,和普通接口上网策略的不同的是,源这里做了两次验证,一个是验证IP地址,另一个是用户名和密码,两者必须都满足才能匹配策略。

③ 为了查看流量的情况,这里我们将日志记录允许流量更改为【全部会话】。正常运行后不建议选择【全部会话】,因为大量生成日志会占系统资源。

④ SSL VPN访问宽带接口的策略就创建好了,注意最后面的字节数为0B。
验证效果
下面我们将模仿从外网通过SSL VPN Web模式登录,以验证是否可以通Web模式上网。

① 将电脑网卡接入路由器,只配置IP地址和子网掩码,不配置网关和DNS,那么这台电脑确认是无法上网的。

② 在SSL VPN设置界面中,可以看到Web模式访问的完整地址。

③ 浏览器输入地址 https://172.16.200.2:10443,显示登录界面,输入创建的用户名和密码,点击【登录】。

④ 快速连接默认是HTTP/HTTPS,输入域点,例如 baidu.com ,点击【Launch now】。

⑤ 竟然打开了百度网站,要知道此时电脑只配置了IP地址和子网掩码,没有配置网关和DNS,是不可能上网的。

⑥ 查看浏览器访问地址,可以证实是由防火墙后的宽带上网的。

⑦ 同样的方法访问IP地址查询网站,例如ip138.com,可以看到最终上网IP是来自路由器上的宽带。

⑧ 虽然可以通过浏览器走远程防火墙上网,但是访问不同的网站只能在SSL VPN Portal上输入域名,不过对经常访问的网站可以建立书签。

⑨ 点击【Create new bookmark】,可以创建书签。

⑩ 点击书签就可以直接打开网站,不用再输入域名了。是不是很方便?
进阶
愿意动脑子的可以再进行深入研究,这里抛个砖。

① 由于在配置SSL VPN虚拟接口上网策略时启用了记录全部日志,因此选择菜单【日志&报表】-【转发流量】,可以看到日志内容显示,用户wenwen访问baidu.com,走的是wan1口,匹配第一条策略。

② 回到策略列表,可以看到,明明已经上网产生了流量,但是策略最后面的字节数仍然为0B,有谁知道这是为什么?

③ 现在我们再模拟固定IP宽带,wan1接口配置静态IP。

④ 再创建一条默认静态路由。

⑤ 再回到DNS设置页面,【动态获取DNS服务器】已经不在再显示了。防火墙自身的解析工作由默认的96.45.45.45、96.45.46.46完成。

⑥ 再次SSL VPN登录,访问其它网站。

⑦ 除了少部分网站外,大部分网站都无法打开。原因是DNS解析失败。

⑧ 再次回到DNS设置界面,将DNS服务器设置为【设置】,主DNS服务器输入宽带本身的DNS IP地址,备服务器输入通用的DNS IP地址。注意DNS协议要启用【DNS (UDP/53)】,这样我们输入的DNS IP才能起作用。

⑨ 再次访问相同的网址,就可以正常打开了。
【总结】SSL VPN Web模式下只用浏览器,就可以远程登录防火墙,并通过防火墙上的宽带上网,虽然只支持HTTP和HTTPS协议,但是无需安装客户端,就能远程浏览网页,已经是非常不错了。
