FortiGate IPSec VPN 限制特定国家IP连接

参加完 2025 资安大会后,感觉透过限制IP来源的防护政策还是有一定的效果,因此就在评估对现有 FortiGate VPN 增加相关设定。首先已确认 FortiGate 可以设置以 国家/ 地理地址 作为识别的地址对象,所以后续就剩相关政策的设定与套用。

原先 AI 建议可以在《防火墙政策》设定 Wan → IPSec 来过滤,但实际测试并没有挡下来,猜测是因为当建置IPSec VPN后,FortiGate 会在《进入本机流量政策 (Local-In)》加入一个政策,允许任何IP通过IPSec连入而造成《防火墙政策》无效,因此要阻挡的话,也需要从这个 Local In Policy 下手了。

我的固件版本是 7.4.7,在图形界面中,Local In Policy 只能检视,无法异动,因此在建立好相关国家的的地址对象后,接下来就需要进入《CLI 控制台》,以指令方式进行 Local In Policy 异动。
(依官方说明,7.6.0 后便可以通过 GUI 设置。)

【FortiGate 环境】

  • 韧体版本:7.4.7
  • VPN 连接方式:IPSec
  • 设定目的:只允许特定国家IP可以连接IPSec VPN。

【CLI 控制台】
先说明一下,以优先级而言,一般可能会先设定允许的规则,再设定拒绝All,但因为我想先确认 Deny All 有生效,所以我会先设定 Deny 的规则,等最后全部设完再用 move 去调整 policy 的顺序。

1. 拒绝所有 IP 连接 IPSec VPN

config firewall local-in-policy
    edit 1
        set intf "virtual-wan-link" # virtual-wan-link 為 Interface 的名稱
        set srcaddr "all"
        set dstaddr "all"
        set action deny
        set service "IKE" "ESP"
        set schedule "always"
    next
end

2. 允许特定国家IP连接IPSec VPN

config firewall local-in-policy
    edit 2
        set intf "virtual-wan-link"
        set srcaddr "Country-Allow"
        set dstaddr "all"
        set action accept
        set service "IKE" "ESP"
        set schedule "always"
    next
end

3. 调整 local-in-policy 顺序

config firewall local-in-policy
move 2 before 1
end

4. 查看最后设定结果

show firewall local-in-policy

 

【番外篇】
在测试的过程,如果有想观察相关流量状况,可以通过以下指令进行。

1. 用 sniffer 观察任何进入 500, 4500 port 的流量

diag sniffer packet any 'port 500 or port 4500' 4 # 4 最詳細,1 最簡單

// 按 CTRL + C 結束

2. 用 debug 模式观察来自 123.123.123.123 的前 100 笔流量

diag debug reset
diag debug flow filter addr 123.123.123.123
diag debug flow trace start 100
diag debug enable

diag debug disable
diag debug reset

3. 用 debug 模式观察 IKE 流量

diag debug reset
diag debug console timestamp enable
diag debug application ike -1 # 等級從 1 ~ 15,-1 代表最詳細
diag debug enable

diag debug disable
diag debug reset

 

《相关连结》

发表评论

请注意:: 评论审核已启用,可能会耽误您的评论. 有没有必要重新提交您的评论.