基于TAG部署防火墙策略
基于TAG部署防火墙策略
FortiGate 通过 FortiClient EMS Fabric Connector 获取标签和终端成员,并把它们转换为只读动态地址对象。管理员可以在普通防火墙、ZTNA、VPN 或 NAC 策略中引用这些对象,使访问权限随终端状态动态变化。
适用范围与限制
- 普通防火墙策略使用标签中的 IP 或 MAC 成员,主要面向以该 FortiGate 为网关的直接连接终端。
- ZTNA Access Proxy 使用设备身份、证书和姿态标签,不单纯依赖客户端 IP/MAC。
- VPN 终端能否使用标签取决于 EMS、FortiClient、FortiOS 和 VPN 类型的兼容组合。
- EMS 与 FortiGate 连接异常时,已有动态对象、会话及新请求的行为取决于版本和具体策略,必须进行故障测试。
- 每个 Security Posture Tag 可能在各 VDOM 中生成 IP 和 MAC 对象;大量标签会消耗 FortiGate 地址对象容量。
先决条件
- EMS、FortiClient 和 FortiOS 版本兼容。
- FortiClient 已连接 EMS,目标标签在 Tag Monitor 中有正确成员。
- FortiGate 能正常通过Fabric Connector连接到EMS,详细信息参考EMS和FortiGate集成
- 已规划标签共享范围:仅本 FortiGate 直连终端,或选定其他 Fabric FortiGate 的终端。
- 已准备不会影响生产的测试源、目标服务和回退策略。
配置过程
TAG规则STAFF_baseline已经设置完成,关于TAG规则请参考创建动态TAG。
1. 配置共享标签类型和终端范围
- 登录EMS,进入Fabric & Connectors ,选择需要配置的FortiGate并编辑:

- 选择终端共享范围:

需要按需选择一下共享方式:
1. **Only share FortiClients connected to this fabric device**:默认且推荐,只共享网关指向当前 FortiGate 的终端。
2. **Share FortiClients connected to selected fabric devices**:同时共享当前设备和指定其他 FortiGate 的终端;仅在明确的 Security Fabric 路径中使用。
- 在 Tag Types Being Shared 中按需选择:

1. Security Posture Tags:默认必选。
2. Classification Tags:使用人工资产分类时启用。
3. FortiGuard Outbreak Alert Tags:使用疫情告警动态控制时启用。
4. Fabric Tags:使用 FortiAnalyzer/FortiEDR IOC 标签时启用。
- 点击Update按钮更新的配置。

2. 创建普通防火墙策略
建议先建立“允许合规终端”的正向策略,再由后续策略处理不匹配流量:
- 进入 Policy & Objects > Firewall Policy,单击 Create New。

- 选择正确的 Incoming Interface 和 Outgoing Interface,配置 Destination、Service、Schedule、用户认证、NAT 和安全配置文件。

- 在 Source 中选择 EMS 动态标签地址;FortiOS 版本支持时,启用 Security posture tag 并选择标签。

- 完成后单击OK按钮完成创建

警告
- 标签策略下方若存在
all → all的允许规则,不匹配标签的终端仍可能被放行。验收必须检查完整策略顺序,而不只是标签策略自身。
3. 流量验证
放行TAG存在终端的流量
- 打开登录EMS,找到测试设备可以看到符合规则,终端标记TAG

- 客户端访问DMZ区域的服务器,能够正常访问,FCT也能看到TAG被标记。

- 打开FortiGate,进入Policy&Objects>ZTNA,打开Security Posture Tags,鼠标移动到对应的TAG信息上,可以看到TAG有匹配的客户端。

- 单击View matched endpoints和View resolved addresses中,可以看到对应的终端信息。 终端信息:

解析终端:

终端不存在TAG后流量被阻止
- 使测试终端不再满足标签条件,对应的TAG信息丢失。客户端不再能正常访问DMZ区域的服务器。

- 打开FortiGate,进入Policy&Objects>ZTNA,打开Security Posture Tags,鼠标移动到对应的TAG信息上,TAG上没有对应的客户端信息。

其他预期结果
| 场景 | 预期结果 |
|---|---|
| 终端满足标签 | 新建连接命中允许策略,日志包含 EMS/标签信息 |
| 终端失去标签 | 新建连接被拒绝;ZTNA 场景按产品行为终止不再合规的现有会话 |
| 多标签 Any/All | 分别只满足一个和满足全部,结果与逻辑一致 |
| Classification Tag | 启用共享后 FortiGate 出现标签并能正确匹配 |
| IPv4/IPv6 | 双栈两条路径均不能绕过标签控制 |
| EMS 暂时不可达 | 行为符合既定失败策略 |
| Connector 恢复 | 标签成员和动态对象重新同步,无过期成员残留 |
| 策略顺序 | 不合规终端不会落入后续宽泛允许规则 |
常见问题与排错
| 问题现象 | 排查方向 |
|---|---|
| FortiGate 看不到标签 | 检查 Connector 状态、双向授权、证书、WSS/HTTPS、标签类型共享设置及版本兼容性。确认标签在 EMS Tag Monitor 中存在且已启用。 |
| 标签存在但没有成员 | 先检查 EMS 中的规则和终端 Telemetry。普通防火墙场景还要确认终端是否以该 FortiGate 为默认网关,以及 IP/MAC 学习是否正确。 |
| 策略没有命中 | 检查接口、VDOM、IPv4/IPv6、IP/MAC 对象类型、策略顺序、Any/All 逻辑、用户组和服务条件。使用流量日志确认请求实际命中的 Policy ID。 |
| 终端修复后仍无法访问 | 确认终端已重新获得标签、EMS 已更新成员、FortiGate Last Sync 正常。必要时新建连接验证,区分旧会话缓存与动态对象未更新。 |
更新历史
| Ver | Description | Author | Rev | Date |
|---|---|---|---|---|
| 1.0 | First Complete | ysheng | tanga | 2026.10.28 |
| 0.1 | Draft Version | - | - | 2026.08.04 |