关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

普通防火墙下如何放行工业OPC DA协议

发布时间:2023-07-23 11:53:47

OPC DA 协议是工控领域常用协议之一,OPC DA 采用微软的 COM 技术,在不同工控机上采用 OPC DA 通讯则采用 DCOM 技术,而 DCOM 则采用微软的 RPC 动态端口,所以在普通商用防火墙上是无法支持 OPC DA 这个协议。这也是为什么工业防火墙的具备防护 OPC DA 专业技能,工业防火墙会根据 DCOM 中 RPC 来跟踪动态端口的变化,记录协商出来的动态端口,并在策略上动态开放。但实际上工业防火墙在企业内网采购比较少,更多是商业防火墙,而随着 IT 和 OT 融合,在企业网络中获取控制网络的数据的场景越来越多,但很多的 DCS 和 SCADA 系统仅仅具备 OPC DA 对外通讯能力,所以多数企业需要在 IT 和 OT 边界部署工业防火墙。此篇文章就是指导 IT 和 OT 边界采用商业防火墙的情况下如何采用修改注册表的方式,把 RPC 中 DCOM 端口限制在一个小范围内从而保证网络的通讯畅通切安全。


Windows 中的 RPC 服务是允许在自定义配置项(例如注册表项)中指定服务器端口。当指定专用服务端口时,就知道哪些流量在穿越防火墙的主机之间流动。可以以更直接的方式定义允许哪些流量。


使用注册表编辑器,可以修改 RPC 的以下参数。下面讨论的 RPC Port 键值均位于注册表中的以下键中:


HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\Entry name Data Type


Port REG_MULTI_SZ


指定一组 IP 端口范围,其中包含网络上可用的所有端口或不可用的所有端口。每个字符串代表一个端口或一组包含的端口。


例如,单个端口可以用 5984 表示,一组端口可以用 5000-5100 表示。如果任何条目超出 0 到 65535 的范围,或者任何字符串无法解释,则 RPC 运行时会将整个配置视为无效。


PortsInternetAvailable REG_SZ Y 或 N(不区分大小写)


如果是,则端口项中列出的端口是该计算机上的所有网络可用端口。如果为 N,则 “端口” 项中列出的端口是所有不可通过网络访问的端口。


UseInternetPorts REG_SZ Y 或 N(不区分大小写)


指定系统默认策略。


如果是,则使用默认值的进程将从网络可用端口集中分配端口,如先前所定义。如果为 N,则使用默认值的进程将从仅限网络的端口集中分配端口。


例子


在此示例中,任意选择了端口 5000 到 6000(包括端口 5000 和 6000),以帮助说明如何配置新的注册表项。它并不是任何特定系统所需的最小端口数的建议。


在下面添加 Internet 密钥 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc


在 Internet 项下,添加值 Ports (MULTI_SZ)、PortsInternetAvailable (REG_SZ) 和 UseInternetPorts (REG_SZ)。


例如,新的注册表项如下所示:


Ports: REG_MULTI_SZ: 5000-6000


PortsInternetAvailable: REG_SZ: Y


UseInternetPorts: REG_SZ: Y


重新启动服务器。所有使用 RPC 动态端口分配的应用程序都使用端口 5000 到 6000(含)。


应该打开端口 5000 以上的一系列端口。低于 5000 的端口号可能已被其他应用程序使用,并可能导致与 DCOM 应用程序发生冲突。此外,根据以往的经验,至少应打开 100 个端口,因为工控服务依赖这些 RPC 端口进行相互通信。


/template/Home/Zkeys/PC/Static