- 项目背景
- 需求描述
-
架构图
如架构图所示,客户有北京和香港两个AWS环境,已经通过专线打通。现在需求是在北京和香港各部署一台Fortigate作为分流使用,北京客户的访问流量如果是要到海外则通过专线到香港的Fortigate出去。
- 测试步骤
- 北京区和宁夏区部署Fortigate节点
- 打通北京和宁夏两个Fortigate节点的IPSec VPN
- 配置SSLVPN客户端到北京区FortiGate
- 配置SD-WAN用于分流去往海外的流量
- 修改Fortigate时区和语言选择左侧System-Settings,在右侧修改时区为GMT+8区北京
-
如果想要修改语言可以往下拉修改 -
- 创建用户和组
- 创建用户用户用于登录VPN。选择左侧User&Device- User Definition- Create New
-
选择Local User -
输入用户名密码 -
后面都默认即可 - 创建用户组创建用户组
-
起个名字,添加刚才创建的用户即可 -
- 北京区配置选择VPN-IPsec Tunnels,右侧选择Create New-IPsec Tunnel
-
之后如果选择模板部署后期还需要改动,所以我们选择自定义部署
起个名字,选择自定义,下一步 -
输入对端香港的内网地址和接口,NAT Traversal选择Forced,Dead Peer Detection选择OnIdle,其他默认即可。 -
输入互相协商的初始秘钥Preshared-Key,其他保持默认 -
本地和远端的网段打通都输入0.0.0.0/0,具体的网段打通可以通过路由和策略控制,所以这里我们设置打通所有即可。 -
加密和认证算法只保留截图中几项即可。
勾上自动协商。 -
北京区接口配置完成 -
之后在左侧Network-Interfaces这里我们就能看到我们创建的VPN接口了 -
选择VPN接口,Edit
定义一个VPN接口的IP和对端的VPN接口IP
选择Ping协议用来测试VPN通道连通性 -
之后配置一条接口策略
左侧选择Policy&Objects-IPv4 Policy
右侧输入名称,选择入流量端口,选择出流量端口为刚才创建的VPNtoHK
源和目标选择全部放行
NAT功能打开 -
测试的话我们可以打开全部日志收集功能 -
到此北京区的站到站VPN配置完成。
- 香港区配置过程和北京区是完全相同的。选择VPN-IPsec Tunnels,右侧选择Create New-IPsec Tunnel
选择自定义部署,起个名字,选择自定义,下一步 -
输入北京区内网IP,选择端口,NAT Traversal选择Forced,Dead Peer Detection选择On Idle -
填写相同的协商秘钥 -
填写地址范围为全部,只留下AES和SHA的加密算法,勾选自动协商 -
配置接口IP -
配置本端和对端IP,配置Ping协议用于测试连通性 -
配置接口策略 -
选择刚才创建的接口,配置源和目标范围,NAT功能打开 -
策略配置完成 -
查看隧道状态,选择左侧Monitor,IPsec Monitor,看到右侧状态为启动 -
测试通道连通性
登陆命令行Ping刚才设置的IPsec接口IP
命令为execute ping x.x.x.x -
如果不通可以用抓包命令查看 -
- 配置SSLVPN这个方式需要使用FortiClient软件登陆。
选择左侧VPN,选择SSLVPN设置,右侧监听端口为Port1,端口号为10443(也可使用其他端口,避免与管理端口冲突)
- 指定DNS服务器(两种方式可选)
- 指定DNS服务器为FortiGate自己
-
之后设置DNS服务器,利用Fortigate分流不同的请求使用不同的DNS解析,例如配置到google.com的流量分流到8.8.8.8。
配置显示DNS Database,选择左侧特性可见,选择DNS Database -
添加DNS服务器的SSL-VPN接口和port的监听 -
选择SSL-VPN接口(选择递归表示到Gate的DNS请求会先查询DNS数据库,如果没有则会查询本地DNS配置) -
配置DNS数据库,添加访问google时候的DNS代理 -
添加google地址
权威需要取消勾选,如果勾上表示访问google时使用本地DNS
之后指定DNS转发位置为8.8.8.8和8.8.4.4 -
之后到本地DNS位置设置本地DNS为114.114.114.114和阿里的223.5.5.5 -
DNS服务器选择FortiGate配置完成
- 指定DNS服务器为其他服务器SSL-VPN设置里面DNS服务器直接指定地址
之后SSL-VPN设置,在全部用户和组里指定门户-
选择全部访问 -
修改SSL VPN Portal,左侧选择VPN,SSL VPN Portals,右侧选择刚才选择的full-access -
关掉隧道分割
如果打开的话可以给客户端流量设置路由,控制那部分流量走Gate,哪部分走本地。 -
打开这些功能
- 修改防火墙策略
-
入接口选择SSL-VPN接口,出接口选择所有
源选择所有地址和用户组 -
日志全部打开 - 测试SSL VPN连通性使用FortiClient软件,建立新连接
-
选择SSL VPN,输入名字,IP,接口,用户名,保存 -
选择连接,输入用户名和密码,连接 -
连接成功后可以看到流量产生 -
- 配置静态路由添加默认静态路由
指定默认网关,选择接口为port1 -
添加指向VPN的静态路由
如果不配置SD-WAN
新建静态路由,直接指定目标服务,如google服务,接口选择VPN接口 -
如果配置SD-WAN
新建一条静态路由,可以直接选择全部地址,接口为VPN地址
管理距离修改为1
高级选项里优先级改为1 -
修改原来的默认路由
管理距离改为1(保证两条默认路由同时生效)
优先级改为0(port1的路由优先级更高) -
修改完如下图 -
如果设置的DNS为FortiGate,可以添加转发到其他DNS服务器的静态路由
添加8.8.8.8,接口为VPN接口,管理距离为1,优先级为0 -
添加8.8.4.4,接口为VPN接口,管理距离为1,优先级为0 -
添加完成如下图所示 -
- 新建两个SD-WAN Zone
-
创建一个本地Zone和一个GlobalZone,本地的流量打给port1,跨境流量打给VPN接口 -
本地Zone指定接口为port1,网关为默认的网关 -
GlobalZone指定接口为VPN接口,网关为对端VPN接口连接的地址 -
添加本地和GlobalZone的接口 -
创建完成 -
6.4版本不建议修改默认静态路由的接口,因为修改后会导致FortiGate控制台无法显示的问题,所以可以依然采取配置两条静态路由的方式配置。
6.2版本可以如下图修改 -
- 创建SD-WAN规则源地址为全部,选择用户组,添加目标服务
-
选择流出接口为手工设置,指定VPN接口优先 -
创建一条默认规则,目标地址为全部,流出接口手工设置为port1
配置完成后,SD-WAN可以按照这两条规则选路,决定什么流量走VPN接口,什么流量走Port1
- 清理本地DNS缓存
- 升级Internet服务数据库默认Internet服务数据库可能没有更新,所以并不包括要访问的服务,比如google,所以需要更新。两种方式,一种是在命令行输入命令,一种可以在portal上下载之后手动上传。
-
用命令行升级固件 -
在Portal上下载升级包 - 命令行修改静态路由如果修改了静态路由,将目标定义成了SD-WAN之后导致console打不开,可以将静态路由改回来,用如下命令
-
- 查看FortiGate路由表选择仪表板,网络,Routing
-
右键菜单位置,显示优先级 -
- 配置IPSec VPN
- 配置客户端接入VPN(SSL VPN、PPTP、L2TP、IOS )
- 配置SD-WAN
- 常用命令和配置
- 问题提示
- 配置步骤
- 如果修改SSL-VPN设置的话,FortiClient会掉线,需要重新连接