Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OPC DCOM详细配置方法 - 不关防火墙不换登陆用户

OPC DCOM详细配置方法 - 不关防火墙不换登陆用户

作者头像
科控物联
发布于 2024-06-27 09:15:02
发布于 2024-06-27 09:15:02
2.3K0
举报
文章被收录于专栏:科控自动化科控自动化

1. 前言

  OPC DCOM的设置是实现跨网络OPC通信的基础,现有的一些OPC DCOM配置教程虽然讲解了如何配置DCOM,但没有讲清楚为什么要这么做,而且各个教程涉及的配置方法也不尽相同。

  为了彻底搞清楚OPC DCOM的配置过程,我重新做了两台机器的系统,一台是Windows 7 32位,一台是Windows 10 64位,并且重零开始完整的测试了正常运行OPC DCOM所需的最少的配置条件,并进而测试了如何在不关闭Windows防火墙,不切换专用用户(一般的教程都需要在OPC客户端和OPC服务器的计算机上使用同一个用户账户登录)。不敢独享成果,拿出来和各位专业人士商榷。

2. 基础知识

  如何顺利的配置OPC相关的DCOM?首先需要了解OPC DA的工作模式及相关程序(组件、服务)以及Windows的DCOM组件工作机制,然后才能正确的配置OPC DCOM。

  所谓的正确配置DCOM,不仅仅是能完成客户端与服务器的通信,而是要求能够确保Windows系统的安全,还包括灵活运用Windows账户,而不是非得需要在服务器和客户端计算机上使用同一个账户。另外,也无需关闭Windows防火墙就能实现OPC DCOM通信。

2.1 OPC DCOM的工作机制。
2.1.1 Client和Server在同一台计算机

  当Client和Server在同一台计算机时,首先,Client向OpeEnum组件(CLSID:{13486D51-4821-11D2-A494-3CB306C10000})发起查询本机已注册的所有OPC服务器(包括2.0标准(GUID : {63D5F431-CFE4-11D1-B2C8-0060083BA1FB})的及1.0标准(GUID : {63D5F430-CFE4-11d1-B2C8-0060083BA1FB})的服务器。OpcEnum组件负责返回所有已注册的OPC服务器信息。   第二步,OPC Client获取已注册OPC服务器信息后,确定需要连接的OPC服务器,并通过ConnectionPoint接口及AdviseSink接口获取服务器的各种配置信息、数据项(Tag)实时数据及其它通知(如服务器关闭)。

图表 1 OPC Clientt/Server安装在同一台计算机

2.1.2 Client和Server在不同的计算机

  OPC Slient和Server安装在不同的计算机上,如果需要实现Client和Serve的互联互通,Client和Server所在计算机必须安装有标准的OPC DA组件,并完成系统注册。标准的OPC DA组件包括:

  • opc_aeps.dll
  • opcbc_ps.dll
  • opccomn_ps.dll
  • opcdaauto.dll
  • opchda_ps.dll opcproxy.dll opcsec_ps.dll

图表 2 OPC Client/Server安装在不同的计算机

  首先,OPC客户端软件访问OPC服务器所在计算机上注册的OPCEnum.exe,查询服务器所在计算机上已注册的所有OPC服务器。OpcEnum组件负责返回所有已注册的OPC服务器信息。

  第二步,OPC Client获取已注册OPC服务器信息后,确定需要连接的OPC服务器,并通过ConnectionPoint接口及AdviseSink接口获取服务器的各种配置信息、数据项(Tag)实时数据及其它通知(如服务器关闭)。

  在简单了解OPC客户端与服务器的通讯过程后,可以得出一个结论,无论是在同一台计算机还是不同的计算机,OPC客户端和服务器之间的通讯主要涉及三个部分:OPC Client、OPCEnum.exe和OPC Server。

  下面以Windows 7 32位版本为例,说明OPC DCOM的配置过程。

3 基本(最简单)的配置方法

3.1 概述

  本节所介绍内容,均通过Windows 10及Windows 7的测试。

3.2 关闭Windows防火墙

  为了简化介绍如何建立OPC DCOM通讯的过程,先不考虑防火墙的问题,在建立好DCOM通讯后,在考虑防火墙。所以首先需要禁止Windows 防火墙的功能。关闭Windows防火墙,按如下步骤操作:控制面板 -> 系统和安全 -> Windows防火墙,按下图操作关闭“家庭或工作(专用)网路位置”及“公用网路位置”防火墙。

图表 3 关闭Windows防火墙

3.3 建立相互能识别的用户账号

  为了完成网路中两台计算机的互相访问,必须保证在OPC客户端和OPC服务器上有同样用户名并且密码非空的用户账户。

3.3.1 添加用户账户

  在OPC客户端和OPC服务器所在的计算机操作系统中添加同样的用户,注意: • 该账户必须有相同的账户用户名和密码; • 使用Windows域时, 用户账户是由域控制器来同步; • • 使用多域时,需要作域间的信任或者添加本地用户到受影响的计算机上。

  Windows 7添加用户步骤如下:控制面板 -> 系统和安全 -> 管理工具 -> 计算机管理 -> 本地用户和组。

图表 4 本地用户和组

  鼠标左键双击左侧树结构中的“本地用户和组”,然后选择“用户”节点。

图表 5 用户

  然后选择“操作” -> “新用户”菜单,在新用户对话框中输入用户名和密码,如下图所示。

图表 6 添加新用户

  填写完成后,按“创建”按钮,即完成添加用户账户。注意:在OPC客户端和OPC服务器计算机上要创建相同用户名和密码的用户!

3.3.2 设置本地安全策略

  本步骤需要在OPC客户端及OPC服务器所在计算机上进行设置。以Windows 7为例,说明设置本地安全策略步骤如下:控制面板 -> 管理工具 -> 本地安全策略,或点击Windows 开始按钮,在“搜索程序和文件”对话框中输入 “secpol.msc”。

图表 7 本地安全策略

  在“本地安全策略”对话框中,展开(鼠标左键双击)左侧“本地策略” -> “安全选项”项,在右侧的列表框中,找到“网路访问:本地账户的共享和安全模型”,将其更改为“经典 – 对本地用户进行身份验证,不改变其本来身份”。

图表 8 本地安全策略 – 安全选项

图表 9 本地账户的共享和安全模型属性

3.4 配置系统DCOM 设置

  OPC客户端及OPC服务器所在计算机系统的DCOM设置影响着Windows的DCOM的应用,包括OPC的应用,由于OPC客户端没有自己的DCOM的设置,所以它受缺省DCOM的配置的影响,因此需要作必要的改变。

3.4.1 系统默认的组件服务通用属性

  系统默认的组件服务通用属性如下面(Windows 10的截图,Windows 7相同)

图表 10 系统组件服务通用属性 - 默认属性

图表 11 系统组件服务通用属性 - 访问权限-安全限制

图表 12 系统组件服务通用属性 - 访问权限-默认值

图表 13 系统组件服务通用属性 - 启动和激活权限-安全限制

图表 14 系统组件服务通用属性 - 启动和激活权限-默认值

3.4.2 修改组件服务通用属性

  1. 点击Windows的开始按钮,在“搜索程序和文件”对话框中输入:dcomcnfg,并回车。

  2. 在弹出的“组件服务”对话框中。展开左侧“控制台根节点”,展开到“我的电脑”。鼠标右键选择“我的电脑”,在弹出菜单中选择“属性”。

图表 15 DCOM通用属性设置

  3. 在弹出的“我的电脑属性”页中,选择“默认属性”页,按下图设置。有一些设置教程的这一步和下面的OPC Server设置均将默认身份验证级别设置为“无”,但为了确保网络通讯的安全性,而且已经在客户端和服务器的计算机上建立了相同的用户,因此,还是设置为“连接”比较好

图表 16 我的电脑默认属性

  4. 选择默认协议,确保“面向连接的TCP/IP”协议存在于“DCOM协议”中。

图表 17 默认协议

  5. 选择“COM 安全”页,分别如图选择“访问权限”和“启动和激活权限”的“编辑限制”和“编辑默认值”按钮。

图表 18 COM安全

  6. “访问权限” – “编辑限制”对话框 确保Everyone、opcuser和ANONYMOUS LOGON三个用户都被添加到“组或用户名”列表中,并且上述三个用户的“本地访问”和“远程访问”都被允许。

图表 19 访问权限 - 编辑限制

  7. “访问权限” – “默认访问权限” 确保SYSTEM、opcuser都被添加到“组或用户名”列表中,并且上述账户的本地访问”和“远程访问”都被允许。

图表 20 访问限制 - 编辑默认值

  8. “启动和激活权限”- “编辑限制” 确保Everyone、opcuser用户被添加到“组和用户名”列表中,并且“本地启动”、“远程启动”、“本地激活”和“远程激活”都被允许。

图表 21 启动和激活权限 - 编辑限制

  9. “启动和激活权限”- “编辑默认值” 确保opcuser、INTERACTIVE和SYSTEM用户被添加到“组和用户名”列表中,并且“本地启动”、“远程启动”、“本地激活”和“远程激活”都被允许。

图表 22 启动和激活权限 - 编辑默认值

  经过上述步骤,组件服务的通用属性就设置好了。记住,OPC客户端和OPC服务器所在的计算机都需要设置。

3.4.3 OPC Server的DCOM 设置

  点击Windows的开始按钮,在“搜索程序和文件”对话框中输入:dcomcnfg,并回车。

  在弹出的“组件服务”对话框中。展开左侧“控制台根节点”,展开到“DCOM配置”。然后在右侧的DCOM组件列表中找到需要配置的OPC Server,鼠标右键选择该服务器,然后选“属性”。

图表 23 组件服务

  分别按下面的设置,设置OPC Server。

  1. OPC Server常规属性

图表 24 OPC Server 常规属性

  2. OPC Server位置属性

图表 25 OPC Server位置属性

  3. OPC Server安全属性 其中,配置权限选择自定义,并且不需要修改。

图表 26 OPC Server安全属性

  4. OPC Server终结点属性

图表 27 OPC Server终结点属性

  5. OPC Server标识属性 OPC Server标识属性通常设置为“交互式用户”即可。

图表 28 OPC Server标识属性

  这几个选项的含义及作用如下:   交互式用户:这个账户是当前登陆此计算机的用户账户,也就是说必须有账户登陆,否则不能启动OPC 服务器,当此用户注销时,OPC Server就会关闭;   启动用户:OPC 服务器以访问的用户认证,操作系统会为每个访问的用户创建一个实例,这样会有三个问题出现,若OPC Server只允许一个用户访问时,当系统中已经有了一个实例,再有其它用户就无法访问。若是OPC Server允许多个用户访问时,那么带来的问题是随着不同用户的访问,就会打开多个实例,这样就会占用更多的计算机的资源。另外的一个问题是硬件的抢占,如串口,当一个使用了,其它的用户就无法再使用。因此通常不使用此选项。   下列用户:OPC Server以指定的用户账户认证,这种情况需要在OPC Server的计算机上存在着要指定的账户,而且对于OPC Client必须知道此用户。否则无法访问。   系统账户(仅用于服务):OPC Server以操作系统账户认证,对于工作组还是域,系统账户都能被识别,也不需要有用户登陆。但OPC server必须以服务的方式启动。

3.4.4 OPCEnum设置

  OPCEnum的设置和OPC Server的设置基本相同,只有“标识”属性不同,可参照下图设置。

图表 29 OPCEnum设置 – 标识01   有的系统在这一步无法设置Interactive User账户,那就将用户设置为opcuser。

图表 30 OPCEnum设置 - 标识 02

3.4.5 小结

  经过3.2 至 3.4 的设置后,OPC客户端和服务器就能够实现跨网络的互联互通了。但此时还存在两个问题,一是Windows防火墙还处于关闭状态,这会带来潜在的安全问题。二是OPC客户端和OPC服务器所在的Windows操作系统必须以相同的用户账户登录,这种登录模式可以满足账户敏感度不高的应用环境,但对企业及应用,例如混合了MRP、ERP等应用的环境,各计算机的Windows平台都使用一个账户登录是不能满足应用及安全需求的。

  第3章介绍如何解决这两个问题。

4 增强安全性的配置

  按照第二节的教程设置好OPC DCOM后,跨网络的OPC访问就能实现了,但此时,Windows防火墙是关闭的,这肯定会带来安全隐患,因此,最好还是打开Windows防火墙。

  但打开Windows防火墙后,如果不做任何设置,OPC的访问就会被防火墙阻隔。按照下面的步骤设置Windows防火墙的入、出站规则,即可实现OPC网络访问的正常化。

4.1 入站规则
4.1.1 OPCEnum

  选择控制面板 -> 系统和安全 –> Windows防火墙 -> 高级设置。然后选择“入站规则”。

图表 31 Windows防火墙高级设置

  鼠标右键选择“入站规则”,然后先择“新建规则”。

图表 32 Windows防火墙入站规则 - 规则类型

图表 33 Windows防火墙入站规则 - 程序

  在Windows 10 64位系统中,OpcEnum.exe位于Windows/SysWOW64路径下。

图表 34 Windows防火墙入站规则 - 操作

图表 35 Windows防火墙入站规则 - 配置文件

图表 36 Windows防火墙入站规则 - 名称

4.1.2 OPC服务器、OPC客户端

  OPC服务器和OPC客户端参考OPCEnum的设置过程设置入站规则即可。

4.2 出站规则

  OPCEnum、OPC服务器和OPC客户端的出站规则与入站规则类似,在此不再重复。需要注意的是,在“新建出站规则向导”中“操作”页面,一定要选择“允许连接”。

  设置完成入站规则和出站规则后,在Windows防火墙打开状态下,也可以实现OPC客户端与OPC服务器的跨网络访问,并且能够保证对应的计算机在网络上的安全性。

5 不同的账户登录

  在3.2节中提到,如果要实现跨网络的OPC通讯,最简单的办法就是在OPC客户端和OPC服务器所在的计算机上设置相同的账户(同样的用户名和同样的密码),但这也带来一个问题,一些其它的企业级应用,如ERP等,可能会有同样的对登录账户的需求,而在企业所有的网络计算机上设置并使用相同的用户账户登录是不现实的,同时也会有潜在的安全问题。下面给出解决办法。

  在OPC客户端所在的计算机上,选择控制面板 -> 用户账户和家庭安全,然后选择“凭据管理器”。如下图所示。

图表 37 Windows凭据管理器

  然后选择“添加Windows凭据”。

图表 38 添加Windows凭据

  在“添加Windows凭据对话框”中,输入用于连接OPC服务器的网络地址、用户名、密码。

  此时需注意,如果在连接OPC服务器时,使用的是IP地址,则在Internet地址栏目中就应该填写IP地址,如果使用的是计算机名,则填写计算机名,或者干脆两种凭据都加上。如下图。

图表 39 Windows凭据 - IP地址

图表 40 Windows凭据最终状态

  添加完Windows凭据后,即使使用其它用户账户登录Windows,也能实现和OPC服务器的通讯。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OPC-DA 在 Window7 下配置不得不说的步骤
OPC 经典框架是基于Windows技术,使用COM / DCOM(分布式组件对象模型)在软件之间进行交换数据。OPC 经典框架包含如下协议:
剑指工控
2021/11/09
1.6K0
OPC-DA 在 Window7 下配置不得不说的步骤
远程连接opc服务器设置[通俗易懂]
(1)安装所需的软件,机器上有必要的OPC client、OPC Server,如ifix,rslinx,保证rslinx的版本能支持远程opc功能。
全栈程序员站长
2022/08/31
16.2K1
远程连接opc服务器设置[通俗易懂]
最值得推荐的免费Linux防火墙 转
ClearOS在本次评估报告中是迄今为止最流行的防火墙发行版。它是一款基于CentOS和Red Hat Enterprise Linux,主要面向中小企业和分布式环境而设计的网关和网络服务器。作为一款出色的软路由系统,ClearOS具备现有路由系统的大部分功能,如DHCP、端口转发、防火墙等。同时因为它基于Red Hat,能提供良好的功能扩展支持。
wuweixiang
2018/12/17
5.3K0
最值得推荐的免费Linux防火墙
                                                                            转
黑客使用Sophos防火墙中的0day漏洞部署勒索软件
黑客试图利用Sophos XG防火墙中的0day漏洞将勒索软件分发到Windows计算机,但遭到Sophos发布的修补程序阻止。
FB客服
2020/06/03
9880
内网渗透 | 横向移动总结
通常我们在渗透过程中从外围打点进入内网后拿到主机提升到system权限,这一台主机就已经拿下。但是我们进入内网的目标还是拿下尽可能多的主机,这时候选择横向移动的方法就尤为重要。今天就对一些常用的横向手法进行一个总结,有不足之处欢迎师傅们进行斧正。
HACK学习
2021/07/21
4.1K0
普通防火墙下如何放行工业OPC DA协议
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端口限制在一个小范围内从而保证网络的通讯畅通切安全。
IRTeam-工业安全
2023/09/01
7770
普通防火墙下如何放行工业OPC DA协议
什么是软件防火墙和硬件防火墙?
服务器防火墙是分为硬件防火墙和软件防火墙两大类,那硬件防火墙和软件防火墙有什么区别呢?
德迅云安全-小娜
2022/05/17
3K0
聊聊越来越火的OPC DA 和 OPC UA 的标准
OPC(Open Platform Communications,以前称为 OLE for Process Control)是一组软件技术,为控制各种设备和交换数据提供单一、统一的接口。OPC 规范由国际非营利组织 OPC 基金会制定,该组织于 1994 年由领先的工业自动化产品制造商制定。创建 OPC 的目标是为工程师提供一个通用接口来控制各种设备。
剑指工控
2021/11/04
10.1K0
聊聊越来越火的OPC DA 和 OPC UA 的标准
内网环境下的横向移动总结
在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围。通过此类手段,攻击者最终可能获得域控制器的访问权限,甚至完全控制基于Windows操作系统的整个内网环境,控制域环境下的全部机器。
红队蓝军
2022/07/06
3.9K0
内网环境下的横向移动总结
[WEB安全]内网基础知识整理
内网也指 局域网( Local Area Network , LAN ) 是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的历程安排、电子邮件和传真通信服务等功能。 • 内网是封闭型的,它可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。列如银行、学校、企业工厂、政府机关、网吧、单位办公网等都属于此类。
李鹏华
2024/03/12
2330
[WEB安全]内网基础知识整理
看我如何使用Windows域绕过防火墙获取持卡人数据的访问权限
在这篇文章中,我们将介绍如何绕过防火墙系统,并获取到持卡人数据环境(CDE)的访问权。最终目标:提取目标用户的信用卡数据。
FB客服
2019/06/03
1.4K0
看我如何使用Windows域绕过防火墙获取持卡人数据的访问权限
Windows日志取证
Windows常见安全事件日志ID汇总 适用于:Windows Server 2016
全栈工程师修炼指南
2020/10/23
4K0
防火墙、出入站规则、主机名、hosts映射
说到防火墙,大家多少能够知道,这是一种防御功能,能够起到网络上的防护作用。通常我们可以在系统中直接开启或者关闭防火墙,这将使我们的系统直接暴露在各种攻击之下,所以一般我们在学习阶段都是在虚拟机中关闭防火墙来模拟大部分软件的远程测试。另外,除了个人计算机可以对防火墙进行设置外,网络管理员和网络运营商也可以直接对各级硬件设备进行防火墙(网络访问规则)的设置,如:路由器。
一头小山猪
2020/04/10
2.9K0
rpc服务器不可用 dcom 无法使用任何配置的协议与计算机,如何修复Windows上的“RPC服务器不可用”错误?…
大家好,又见面了,我是你们的朋友全栈君。 问题:如何修复Windows上的“RPC服务器不可用”错误? 有几次我的计算机上出现“RPC服务器不可用”弹出窗口。我不确定它是什么?我该怎么办这个错误? 方
全栈程序员站长
2022/09/03
10K0
rpc服务器不可用 dcom 无法使用任何配置的协议与计算机,如何修复Windows上的“RPC服务器不可用”错误?…
Windows 2016 服务器安全配置和加固「建议收藏」
更换Windows更新服务器 如果你觉得默认的Windows更新服务器比较慢,或者如果选择了阿里云或腾讯云服务器的话,可以更换Windows服务器。
全栈程序员站长
2022/06/27
5K0
Windows 2016 服务器安全配置和加固「建议收藏」
内网渗透测试:利用DCOM进行横向渗透
COM即组件对象模型(Component Object Model,COM) ,是基于 Windows 平台的一套组件对象接口标准,由一组构造规范和组件对象库组成。COM是许多微软产品和技术,如Windows媒体播放器和Windows Server的基础。
FB客服
2021/03/09
2.9K0
内网渗透测试:利用DCOM进行横向渗透
红队技巧-常规横向手法
域内横向移动技术是红队作战在域内最基本技术之一,红队人员会利用该技术,以被攻陷的系统为跳板,通过已经收集的凭据和密码,来访问域内其他主机,扩大战果,最终目的是获取到dc的访问控制权限。
Gamma实验室
2021/07/01
2.2K0
内网渗透之DCOM横向移动
COM即组件对象模型(Component Object Model,COM) ,是基于 Windows 平台的一套组件对象接口标准,由一组构造规范和组件对象库组成。COM是许多微软产品和技术,如Windows媒体播放器和Windows Server的基础。
Gh0st1nTheShel
2021/11/17
2.4K0
WMI远程访问问题解决方法
WMI 全称为:Microsoft Windows Management Instrumentation (WMI) 
全栈程序员站长
2021/08/06
2.8K0
内网渗透|利用 WinRM 进行横向渗透
WinRM 作为 Windows 操作系统的一部分,是一项允许管理员在系统上远程执行管理任务的服务。这样的服务当然不会被攻击者错过,本篇文章我们就来讲讲 WinRM 在横向渗透中的使用。
HACK学习
2021/09/29
5.6K0
相关推荐
OPC-DA 在 Window7 下配置不得不说的步骤
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档