2. FactoryTalk Directory部署与安全边界

FactoryTalk Directory(FTD)是FactoryTalk View SE、FactoryTalk Historian、FactoryTalk Linx等产品的“身份与命名中枢”。它并不直接参与控制逻辑,却决定了谁能登录、能访问哪些区域、能引用哪些标签。理解FTD的部署方式,本质上是在理解整个FactoryTalk系统的安全边界从哪里开始划分。

一、Directory服务器的角色与安装位置

FTD分为两种角色:Network Directory(网络目录)和Local Directory(本地目录)。Network Directory用于多台工作站共享同一套应用、区域和用户账户,是分布式SE系统的核心;Local Directory只服务于单机应用,通常用于工程测试或独立HMI。

安装Network Directory时,建议将其部署在独立的Windows Server上,而不是与View SE客户端或Historian混装。原因是FTD对DNS解析、时间同步和网络延迟敏感,混装会引入不必要的故障面。安装过程的关键选择点如下:

FactoryTalk Directory 配置向导
├─ 选择角色:Network Directory / Local Directory
├─ 指定计算机名:FTD-SRV01(必须与DNS正向解析一致)
├─ 选择账户:本地管理员组 或 域服务账户
├─ 指定数据存储路径:D:\FTD\Data(建议独立卷)
└─ 确认端口:默认使用 135、139、445、49152-65535 动态端口

安装完成后,必须通过“FactoryTalk Directory Configuration Wizard”将客户端指向该服务器。客户端首次连接时会写入注册表项,记录Directory服务器的主机名。若主机名变更而注册表未更新,客户端会持续报“无法连接到FactoryTalk Directory”。

二、网络端口与通信边界

FTD的通信并非单一端口,而是依赖一组Windows RPC和SMB端口。实际工程中,防火墙策略必须放行以下内容:

端口/协议用途方向
TCP 135RPC Endpoint Mapper客户端 → FTD服务器
TCP 139/445SMB文件共享与命名管道双向
TCP 49152-65535RPC动态端口客户端 → FTD服务器
UDP 137/138NetBIOS名称解析同网段内

如果安全策略不允许开放大范围动态端口,可以在FTD服务器上通过注册表将RPC动态端口限制为固定范围,例如50000-50100,再在防火墙中只放行该区间。这一做法在跨站点部署中尤为常见,因为它让防火墙规则可审计、可预测。

注意:不要仅放行135端口就认为FTD可以通信。RPC协商成功后,实际数据通道会切换到动态端口,只放行135会导致“能发现服务器但无法登录”的典型故障。

三、域模式与工作组模式的选择

FTD支持两种账户体系:域模式和工作组模式。

域模式下,FTD直接引用Active Directory中的用户和组,账户集中管理,密码策略统一,适合多站点、多工程师协作的场景。工作组模式下,FTD使用本地账户,每台客户端和服务器各自维护账户,适合小型独立系统或与AD隔离的OT网络。

选择依据可以归纳为三点:若站点数量超过两个、工程师人数超过五人、或已有AD基础设施,优先域模式;若系统完全隔离、无AD、且账户数量极少,工作组模式更简单。混合模式虽然技术上可行,但会显著增加排障复杂度,不建议在生产环境中使用。

FactoryTalk Directory 部署拓扑与安全边界 主站点 · 安全分区 A FTD-SRV01 Network Directory · 域模式 RPC 135 / 动态 50000-50100 View SE 客户端 FTD 客户端 Historian 节点 FTD 客户端 RPC/SMB RPC/SMB 域账户:DOMAIN\FT_Engineers 安全组映射 → FTD 角色:Engineer / Operator 防火墙策略:仅放行 135 + 50000-50100 禁止 445 跨站点直通 · 启用 IPsec 加密 远程站点 · 安全分区 B FTD-SRV02 冗余 Directory · 只读副本 同步周期:5 min View SE 客户端 本地缓存登录 Linx 网关 标签引用 跨站点信任:单向信任 B 站点用户可读 A 站点标签 安全分区隔离 B 站点不可写 A 站点控制标签 信任关系 · 单向 仅同步用户/区域元数据 主 FTD 服务器 冗余 FTD 服务器 FTD 客户端 信任关系 RPC/SMB 通信

四、冗余Directory的部署要点

冗余Directory通过主备或读写分离方式提供高可用。主服务器承担写入,备用服务器定期同步用户、区域和应用元数据。当主服务器不可用时,客户端可以切换到备用服务器继续登录,但备用服务器上的配置变更不会自动回写主服务器。

部署冗余时需要注意三点:第一,主备服务器必须使用相同的FTD版本和补丁级别;第二,同步账户需要在两台服务器上具有相同的权限;第三,客户端切换不是瞬时的,通常需要30秒到2分钟,具体取决于网络和客户端缓存策略。在冗余切换测试中,可以通过停止主服务器的FTD服务,观察客户端是否在预期时间内自动重连。

五、跨站点信任关系与安全分区设计

跨站点信任关系解决的是“不同站点的FTD如何互相识别用户和区域”的问题。信任关系可以是单向的,也可以是双向的。单向信任意味着B站点信任A站点的用户,但A站点不信任B站点;双向信任则相反。

安全分区设计的核心原则是:控制写入边界,放宽读取边界。具体来说,远程站点可以读取主站点的标签和画面,但不应直接写入主站点的控制标签。实现方式是在FTD中为不同站点分配不同的区域(Area),并通过角色权限限制写操作。例如,B站点的Operator角色只能读取A站点的“生产状态”区域,而A站点的Engineer角色才能写入“控制参数”区域。

在实际项目中,建议将安全分区与网络分区对齐:同一安全分区内的FTD客户端和服务器放在同一VLAN或同一防火墙策略组内,跨分区通信必须经过显式放行。这样做的目的是让安全边界在网络层和FTD层保持一致,减少“网络通了但权限不对”或“权限对了但网络不通”的排查成本。

六、部署检查清单

在完成FTD部署后,建议按以下清单逐项确认:

  • FTD服务器主机名与DNS正向解析一致,且客户端能ping通主机名而非仅IP。
  • 防火墙已放行135、445(如需要)及RPC动态端口范围,且规则经过实际连接测试。
  • 客户端已通过Configuration Wizard指向正确的Directory服务器,注册表项已更新。
  • 域模式或工作组模式的账户已正确映射到FTD角色,且至少有一个管理员账户可登录。
  • 冗余Directory的同步状态正常,主备切换测试已通过。
  • 跨站点信任关系已配置,且远程站点用户无法写入受保护区域。
  • 安全分区与网络分区一致,跨分区通信有明确的防火墙规则和审计日志。

FTD的部署质量直接决定了后续用户权限和审计数据的可信度。如果Directory本身存在解析错误、端口不通或信任关系混乱,后续的权限配置和审计记录都会建立在不可靠的基础上。因此,在进入用户与角色配置之前,务必先完成上述边界确认。