先前写过一篇「Sonicwall FortiGate 防火墙建立 Site to Site VPN」的文章,当时常常遇到要跟 FortiGate 的设备做Site to Site VPN,而我手上的是 Sonicwall,实作的结果有时成功有时失败,后来有次干脆花了些时间,把两个品牌的设定方式做个整理,以方便后续参考。当时在测试及整理资讯时,就有发现 FortiGate 韧体稍微不同,设定的方式就会不太一样,颇为困扰,后来便把可以成功建立连线的两种方式”隧道”给”接口”都记录下来,以便下次遇到改版时,可以试试不同的方法。
今天又遇到要跟 FortiGate 建立 Site to Site VPN 的需求,型号是 FortiGate 80E,韧体版本为 5.6.4,当听到是新买的防火墙时,心里就冒出”不妙”的念头,等到连线过去看时,果然选项又变了,且这次连介面都变了不少。实际开始设定 VPN 项目时,发现这次似乎已经没有分”隧道”给”接口”,我首先尝试以先前”隧道”的方式去设定,但 VPN 没建立成功,接着改以”接口”建立,却出现奇怪的结果,两边的Site to Site VPN 已建立成功,Sonicwall 这端可以 ping 到 FortiGate 端的网段,但反之则 timeout。检查过 policy 的顺序及 routing 的设定都没有问题,重来一次结果也是一样,让我伤透脑筋。
之后去查询官方资料,但官方目前针对 5.6 版的韧体似乎只有提供同为 FortiGate 产品的 Site to Site VPN 精灵模式设定教学,不过我注意到在精灵模式完成的最后一步时,画面有显示这次精灵模式共在哪些项目做了几组异动,其中有个名为 “黑洞路由” 的项目引起我的注意,因为一般在设定 Site to Site VPN 时,都是设定 “静态路由”,”黑洞路由” 这项目倒是第一次看到。于是便到 “静态路由” 去查看,在 Interface 的下拉选单中,果真有个”黑洞”的选项,试着新增一笔路由,并丢到”黑洞”这个介面,设完后,原本还 ping 的到 FortiGate 网段的 Sonicwall,现在也 ping 不到了,接着我把刚刚新增的这组路由给停用,然后神奇的事就发生了,Sonicwall 与 FortiGate 两边的网段都可以互相 ping 的到了,但之后我把 VPN 断开再重新连线,FortiGate 又再度无法 ping 到 Sonicwall 的网段,Sonicwall 则一样可以 ping 到 FortiGate 网段。
接着我又一样的做法再来一次,把”黑洞”路由启用、再停用,两边网段就又可以互通,测试几次确认结果都一样后,便开始研究这个”黑洞”路由的设定。在路由的设定参数中,有”优先”跟”距离”两个值会影响先后顺序,最后试出只要将”黑洞”路由的”优先”数值小于 VPN 路由的”优先”;”距离”数值大于 VPN 路由的”距离”,即可让两边网段正常连线,就算重启 VPN 连线也可以正常互 ping 了。
后来去查了官方关于”黑洞”的资讯,只查到旧版韧体可以透过指令去设定此”黑洞”路由,但我仍是不了解为何我这样的设法能够解决 FortiGate 网段 ping 不到 Sonicwall 网段的问题,目前先将此成功的设定方式分享出来,后续若有进一步的资讯,再来更新此篇,若各位网友知道为什么的话,也欢迎在下面留言讨论,谢谢。
Sonicwall NSA 4600 | FortiGate设备80E |
韧体:6.2.7.1 | 韧体:5.6.4 |
Lan: 192.168.1.0/24 192.168.2.0/24 Wan: |
Lan: 192.168.100.0/24 Wan: |
【Sonicwall設定】
1.建Object
「Network」->「Address Objects」
名称: FortiGate_network
Zone Assignment: VPN
类型: 网络
网络: 192.168.100.0
Netmask: 255.255.255.0
确定
2.設定VPN Tunnel
「VPN」
Enable VPN
加
–General tab
IPSec Keying Mode: IKE using Preshared Secret.
名称: FortiGate_network
IPSec primary Gateway Name or Address: 203.4.5.6
Shared Secret: 設一組密碼
Local IKE ID: IP Address (保留空白)
Peer IKE ID: IP Address (保留空白)
–Network tab
本地网络:LAN主要子网(192.168.1.0/24、192.168.2.0/24)
目的网络:FortiGate_network(192.168.100.0/24)
–Proposals tab
IKE (Phase1) Proposal
Exchange: Main Mode
DH Group: Group 2
Encryption: 3DES
Authentication: SHA1
Life Time: 28800
IKE (Phase2) Proposal
Protocol: ESP
Encryption: 3DES
Authentication: SHA1
DH Group: Group 2
Life Time: 28800
–Advanced tab
Enable Keep Alive.
确定
[FortiGate设置]
1.設定VPN
「VPN」->「IPsec隧道」
“创建新的”
名称: SonicWall
模板类型: 习惯
–网络
Remote Gateway: Static IP
IP Address: 203.1.2.3
Mode: Main
Authentication Method: Preshared Key
Pre-shared Key: 同上面Sonicwall設定的密碼
–相 1 Proposal
Encryption: 3DES
Authentication: SHA1
DH Group: 2
Keylife: 28800
–相 2 选择
设定第一个网段(192.168.1.0)
名称: SonicWall-192.168.1.0
本地地址: 192.168.100.0/24
远程地址: 192.168.1.0/24
設定第二個網段(192.168.2.0)
名称: SonicWall-192.168.2.0
本地地址: 192.168.100.0/24
远程地址: 192.168.2.0/24
–Advanced
Encryption: 3DES
Authentication: SHA1
不勾選Enable perfect forward secrecy(PFS)
Keylife: 28800
2.建立路由
设置 192.168.1.0 路由
「Network」->「静态路由」
Create New
目的地: 192.168.1.0/24
接口: SonicWall
管理距离: 10
-高级选项
优先: 3 (要大于 Blackhole 预设的 0)
确定
设置 192.168.2.0 路由
「Network」->「静态路由」
Create New
目的地: 192.168.2.0/24
接口: SonicWall
管理距离: 10
-高级选项
优先: 3 (要大于 Blackhole 预设的 0)
确定
设置 192.168.1.0 黑洞
「Network」->「静态路由」
Create New
目的地: 192.168.1.0/24
接口: 黑洞
管理距离: 12 (要大于一般路由预设的 10)
确定
设置 192.168.2.0 黑洞
「Network」->「静态路由」
Create New
目的地: 192.168.2.0/24
接口: 黑洞
管理距离: 12 (要大于一般路由预设的 10)
确定
3.設定防火牆規則
“政策 & 对象」 - >「IPv4的政策」
Create New
名称: Forti2Sonicwall
Source Interface: Port 1(192.168.100.0 所在的port)
出接口: SonicWall
资源: FortiGate_network
目的地: SonicWall_network
Schedule: always
服务: 所有
Action: Accept
确定
Create New
名称: Sonicwall2Forti
Source Interface: SonicWall
出接口: Port 1(192.168.100.0 所在的port)
资源: SonicWall_network
目的地: FortiGate_network
Schedule: always
服务: 所有
Action: Accept
确定
【參考連結】
- 老森常谭 » Sonicwall FortiGate防火牆建立Site to Site VPN
- (20) 03 防火墙飞塔, Fortinet公司: 防火墙策略. – YouTube的
- 站点到站点的IPsec VPN具有重叠子网 – Fortinet的食谱