【简介】通过前面的实验,我们已经了解了SSL VPN的隧道模式。FortiClient客户端拨号后,访问服务器IP的流量,会通过安全隧道到达远端防火墙,并访问DMZ接口下的服务器。那如果我想让更多的访问走安全隧道,但是又不确定是哪些IP地址,这个有办法吗?
实验要求与环境
OldMei集团深圳总部防火墙有两条宽带,一条普通宽带用来上网,另一条MPLS专线用来访问指定网站。并且网站绑定了专线IP,只有这个IP才能访问。
新冠疫情前,大家在公司办公,可以很方便的访问指定网站。新冠疫情后,全员居家办公,要求除了能安全的远程访问公司内部服务器外,也要能通过公司MPLS专线,访问指定网站。
配置前的准备
由于当前我们的实验环境是没有互联网的,为了模拟MPLS专线,我们需要给FortiWiFi 60E深圳总部防火墙,接入一条真实的宽带。
① 笔记本无线连接OldMei-深圳SSID。然后通过https://192.168.10.1登录深圳总部防火墙。
② 深圳总部防火墙已经有一条宽带,配置在wan1接口,我们需要把新加的MPLS专线配置在wan2口中。选择菜单【网络】-【接口】,选择wan2口,点击【编辑】,然后输入专线IP。
③ 专线IP配置好后,我们还要配置默认网关。选择菜单【网络】-【静态路由】,点击【新建】。
④ 选择接口【wan2】,输入网关地址。这里要多做一步,就是修改优先级。点击【高级选项】,优先级默认为1,修改为大于1的数字即可,这里改为5。为什么要改优先级?优先级起什么作用?往下看。
⑤ 选择菜单【仪表板】-【网络】,点击【路由】。
⑥ 可以看到路由表内容,但是栏目里并没有看到优先级,鼠标右击栏目,弹出菜单里选择【优先级】。
⑦ 现在我们可以看到,路由表中显示有两默默认路由,分别是wan1和wan2两个接口,它们的管理距离都是10,这是新建静态路由时的默认设置,只有管理距离数值最小的,才会显示在路由表中,这里两个管理距离都是10,所以都显示在路由表中,也就表示两条宽带可以同时使用。
新建静态路由时,默认优先级是1,数字越小越优先。如果两个默认路由优先级都是1,就会产生冲突,访问的数据不知道该走哪个网关。由于MPLS专线不是经常用于上网,因此将专线的优先级设置大于1。那么这种情况下,数据走wan1网关。
那要走wan2怎么办,使用策略路由,因为策略路由优先于静态路由。这个我们在后面的配置中会用到。
配置SSL VPN
在我们的实验环境增加了一条模拟MPLS专线的宽带后,我们可以配置SSL VPN了,这里我们只在上一次实验的配置中进行修改,不再重复讲解配置过程了,不清楚的可以先看上一篇文章。
① 选择菜单【VPN】-【SSL-VPN门户】,选择full-acces,点击【编辑】。
② 隧道分割选择【禁用】,提示说所有客户端流量都会流向SSL-VPN隧道。也包括上网流量。点击【确认】。
③ 修改完SSL-VPN门户,选择菜单【SSL-VPN设置】,这里不用做大的改动,都是以前的配置。
④ 由于要走专线上网,建议将DNS服务器改为专线DNS。点击【应用】。
⑤ SSL-VPN门户和SSL-VPN设置都修改完成,一下步就是要创建一条允许SSL VPN虚拟接口走Wan2上网的策略了。选择菜单【策略&对象】-【防火墙策略】,点击【新建】。
⑥ 输入策略名称,流入接口选择SSL VPN虚拟接口ssl.root。
⑦ 流出接口选择wan2,表示SSL VPN要走wan2上网。
⑧ 源地址选择防火墙的默认地址对象SSLVPN_TUNNEL_ADDR1,和SSL-VPN门户里选项对应。
⑨ SSL VPN策略的源地址比较特殊,除了要有地址对象外,还要有用户,选择SSL-VPN设置里对应选项的地址组。
⑨ 由于不确定要访问哪些IP,目标地址选择all。
⑩ 同样不确定要访问的类型,服务也是选择ALL。
⑪ 由于这是一条上网策略,默认启用NAT。NAT的作用,就是将内网IP变成公网IP,对方看到的只是公网IP。
⑫ 点击【确认】,本以为会保存策略,但是没有想到会弹出一个红色报警提示。查看提示内容,说tunnel-acces启用了隧道分割,所以目标地址不能是all。
⑬ 回到SSL-VPN门户,编辑tunnel-access,我就纳闷了,都没用到这个门户呀。
⑭ 还是老老实实禁用隧道分割。
⑮ 再次创建SSL VPN到Wan2口的策略,点击【确认】。
⑯ 这次策略创建成功,因此我们有了两条策略,一条是以前创建的SSL VPN访问服务器的策略,另一条就是刚刚建立的SSL VPN走Wan2上网的策略。
检验效果
所有配置都完成了,笔记本电脑关掉所有无线,有线连接模拟互联网的FortiWiFi 60D。
① 管理员在家中上网,打开FortiClient VPN,输入用户名和密码,点击【连接】。
② 拨号连接成功。
③ 用ipconfig/all命令查看,可以看到有生成SSL VPN虚拟网卡,获取的IP地址是防火墙地址对象SSLVPN_TUNNEL_ADDR1分配的,也得到了我们在SSL-VPN设置中修改的网关。
③ 用route print查看路由表,可以看到所有流量都会走SSL VPN隧道出去。
④ 从笔记本电脑Ping远端防火墙Wan2接口,以及Wan2接口的下一路,都可以通,但是Ping公网IP却不通,有人知道这是为什么吗?
⑤ 复习一下我们前面学习的内容,两条宽带的默认路由,Wan1的优先级是1,Wan2的优先级是5,所以所有的访问会走Wan1的网关。那有人要问了,为什么ping 172.16.188.188和172.16.188.1又能通?这是因为路由表里,有这个地址段的直连路由。
⑥ 由于我们拨号后已经能访问防火墙的DMZ和wan2接口了,所以可以用Wan2接口IP远程登录防火墙。在菜单里,只看到静态路由,没有看到策略路由。
⑦ 选择菜单【系统管理】-【可见功能】,启用【高级路由】。
⑧ 选择菜单【网络】-【策略路由】,点击【新建】。
⑨ 流入接口,选择SSL VPN虚拟接口。
⑩ 地址选择SSL VPN默认配置的SSLVPN_TUNNEL_ADDR1地址对象,这里不用象策略一样再加用户了。
⑪ 我们要建两条策略路由,一条是到服务器的,一条是到Wan2的,由于到服务器的目标明确,所以先建,选择服务器地址组。
⑫ 流出接口选择DMZ口,由于没有下一跳,网关地址保持为默认的0.0.0.0,点击【确认】。
⑬ SSL VPN到服务器的策略路由创建好,再创建一条SSL VPN到Wan2的策略路由。
⑭ 内容基本相同,不同的是目标地址为ALL,流出接口为Wan2,网关地址为Wan2的下一跳。点击【确认】。
⑮ 策略路由执行的顺序是从上往下匹配,匹配到了就不向往下走。所以我们需要将目标明确的策略路由放上面,可以鼠标按住最左边的序号,然后拖动进行排序。
考一考大家,如果目标为ALL的策略,放在第一排,访问服务器的时候会出现什么情况?同样会走Wan2口出去,而不会走DMZ口。所以永远Ping不通服务器。这就是策略路由顺序的重要性了。
⑯ FortiClient VPN客户端还是连接状态,再Ping服务器IP,可以Ping通,Ping公网IP,也可以ping通。
⑰ tracert查看路由,可以看到是通过SSL VPN隧道,到达远端防火墙Wan2的专线出去的。
⑱ 笔记本电脑可以上网,走的是远程防火墙Wan2接口的专线,而不是本地宽带。