CN111343144B - 基于Linux的OPC网闸系统及数据处理方法 - Google Patents

基于Linux的OPC网闸系统及数据处理方法 Download PDF

Info

Publication number
CN111343144B
CN111343144B CN202010076967.3A CN202010076967A CN111343144B CN 111343144 B CN111343144 B CN 111343144B CN 202010076967 A CN202010076967 A CN 202010076967A CN 111343144 B CN111343144 B CN 111343144B
Authority
CN
China
Prior art keywords
host
opc
message
client
linux
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010076967.3A
Other languages
English (en)
Other versions
CN111343144A (zh
Inventor
白岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qax Technology Group Inc, Secworld Information Technology Beijing Co Ltd filed Critical Qax Technology Group Inc
Priority to CN202010076967.3A priority Critical patent/CN111343144B/zh
Publication of CN111343144A publication Critical patent/CN111343144A/zh
Application granted granted Critical
Publication of CN111343144B publication Critical patent/CN111343144B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供一种基于Linux的OPC网闸系统及数据处理方法,系统包括:第一主机和第二主机,第一主机和第二主机的Linux系统上搭建有虚拟化平台,虚拟化平台上安装有Windows客户机操作系统;第二主机的Windows客户机操作系统中运行有OPC Server代理程序,第一主机的Windows客户机操作系统中运行有OPC Client代理程序;第一主机和第二主机上均设置有Socket服务。本发明实施例从虚拟化技术的角度出发,将Windows运行于Linux虚拟化平台,间接实现Window开发的OPC程序运行在Linux环境下,整体上实现了基于Linux的OPC数据采集与代理。

Description

基于Linux的OPC网闸系统及数据处理方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于Linux的OPC网闸系统及数据处理方法。
背景技术
在工业生产过程系统中,需要经由OPC协议将多种不同的厂商的控制器设备所产生的数据进行采集,OPC网闸通过部署在OPC Server和OPC Client之间对OPC数据进行代理和传输,以此来保证网络隔离实现安全防护。
OPC协议标准由微软公司制定,基于微软的DCOM标准实现。DCOM是微软的私有标准,微软没有开放其源代码以及详细设计文档,因此OPC属于微软的私有协议,只有在windows环境下才能进行OPC相关开发。由于Linux有着的开放性和高性能的特定,包括网闸在内的网络安全设备普遍采取基于Linux进行开发。然而由于OPC的封闭性,没有针对Linux系统提供开发库,所以基于Linux系统开发OPC数据采集程序变成了几乎不可能的事情。
由于以上问题,目前普遍采用技术妥协的方式来实现基于Linux的OPC网闸,即网闸并不进行真正的OPC数据采集和代理,而是采用“地址映射”的方式联通网闸两端的OPC客户端和OPC服务器,将原始TCP流量经由摆渡系统传输。在这种实现方式下,OPC数据包不会进行拆解和协议转换,而是直接通过网闸摆渡系统透传,因此原始流量所携带的安全隐患也会随之传播,这样大大降低了网闸的安全功效。
发明内容
针对现有技术中的问题,本发明实施例提供一种基于Linux的OPC网闸系统及数据处理方法。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种基于Linux的OPC网闸系统,包括:第一主机、第二主机,以及,位于第一主机和第二主机之间的网闸摆渡装置;其中,第一主机和第二主机上运行有Linux系统,第一主机用于连接OPC服务器,第二主机用于连接OPC客户端;
其中,第一主机和第二主机的Linux系统上搭建有虚拟化平台,所述虚拟化平台上安装有Windows客户机操作系统;所述第二主机的Windows客户机操作系统中运行有OPCServer代理程序,第一主机的Windows客户机操作系统中运行有OPC Client代理程序;
其中,第一主机上设置有第一Socket服务,以供第一主机上的Windows客户机通过Socket与第一主机通信;第二主机上设置有第二Socket服务,以供第二主机上的Windows客户机通过Socket与第二主机通信;
其中,第一主机上的Windows客户机的网络接口与第一主机的网络接口为共享关系,以供OPC Client代理程序与OPC服务器通信;第二主机上的Windows客户机的网络接口与第二主机的网络接口为共享关系,以供OPC Server代理程序与OPC客户端通信;
其中,OPC客户端向第二主机上的OPC Server代理程序发送OPC报文,OPC Server代理程序对OPC报文进行安全处理,并将处理后的报文通过第二Socket服务传输给第二主机,第二主机将处理后报文通过网闸摆渡装置传输至第一主机;第一主机通过第一Socket服务将接收到的报文传输至OPC Client代理程序,OPC Client代理程序将接收到的报文发送给OPC服务器。
进一步地,所述OPC Server代理程序对OPC报文进行安全处理,具体包括:
所述OPC Server代理程序对OPC报文进行拆解;
对拆解后的报文进行协议解析,获取解析结果;
根据解析结果以及预设的安全控制策略对报文进行安全处理。
进一步地,所述第二主机将处理后报文通过网闸摆渡装置传输至第一主机,具体包括:
所述第二主机将处理后的报文进行私有数据格式封装后通过网闸摆渡装置传输至第一主机。
进一步地,所述网闸摆渡装置包括硬件交换卡。
第二方面,本发明实施例还提供了一种基于Linux的OPC网闸系统的搭建方法,包括:
在第一主机和第二主机之间设置网闸摆渡装置;其中,第一主机用于连接OPC服务器,第二主机用于连接OPC客户端,所述网闸摆渡装置用于在第一主机和第二主机之间进行数据传输;
在第一主机和第二主机的Linux系统上搭建虚拟化平台,并在虚拟化平台上安装Windows客户机操作系统;
在第二主机的Windows客户机操作系统中运行OPC Server代理程序,在第一主机的Windows客户机操作系统中运行OPC Client代理程序;其中,OPC Server代理程序用于接收OPC客户端发送的OPC报文并对OPC客户端发送的OPC报文进行安全处理;OPC Client代理程序用于接收安全处理后的报文并将安全处理后的报文发送给OPC服务器;
在第一主机上设置用于保证第一主机与安装在第一主机上的客户机之间通信功能的第一Socket服务,在第二主机上设置用于保证第二主机与安装在第二主机上的客户机之间通信功能的第二Socket服务;
将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系;将第二主机的网络接口设置为与第二主机上的Windows客户机的网络接口为共享关系。
进一步地,所述在第一主机和第二主机的Linux系统上搭建虚拟化平台,具体包括:
在第一主机和第二主机的Linux系统上搭建KVM虚拟化平台。
进一步地,所述将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系,具体包括:
将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系,在第一主机的KVM虚拟化平台中配置Bridge桥接网络,以供第一主机上的Windows客户机通过Bridge桥接网络与OPC服务器进行通信。
第三方面,本发明实施例提供了一种数据处理方法,所述数据处理方法基于如上面第一方面所述的基于Linux的OPC网闸系统实现,所述数据处理方法包括:
OPC客户端向第二主机发送OPC报文;
第二主机上的OPC Server代理程序接收所述OPC报文,并通过Window OPC接口获取所述OPC报文中的有效数据;
OPC Server代理程序对获取到的有效数据进行安全处理,并将安全处理后的报文通过Socket发送给第二主机;
第二主机对接收到的报文采用私有协议封装,并将封装好的报文通过网闸摆渡装置发送给第一主机;
第一主机接收到报文后,去除私有协议封装,还原有效数据,并将有效数据通过Socket发送给OPC Client代理程序;
OPC Client代理程序在获取到有效数据后,将有效数据通过Window OPC接口发送至OPC服务器。
进一步地,所述OPC Server代理程序对获取到的有效数据进行安全处理,具体包括:
所述OPC Server代理程序根据预设的安全控制策略对获取到的有效数据进行安全处理;
其中,所述预设的安全控制策略中包括:只允许OPC读操作不允许OPC写操作,和/或,通过流量学习自动构建白名单列表并根据白名单列表对获取到的有效数据进行过滤。
进一步地,在所述OPC Server代理程序根据预设的安全控制策略对获取到的有效数据进行安全处理前,所述方法还包括:
对获取的有效数据进行OPC协议解析,获取Interface字段信息和/或Method字段信息;
相应地,所述OPC Server代理程序根据预设的安全控制策略对获取到的有效数据进行安全处理,具体包括:
根据Interface字段信息和/或Method字段信息,以及,预设的安全控制策略对获取到的有效数据进行安全处理。
由上面技术方案可知,本发明实施例提供的基于Linux的OPC网闸系统及数据处理方法,从虚拟化技术的角度出发,将Windows运行于Linux虚拟化平台,间接实现Window开发的OPC程序运行在Linux环境下,整体上实现了基于Linux的OPC数据安全处理。本实施例提供的基于Linux的OPC网闸系统,由于在Linux环境中实际运行了OPC Server代理程序并对OPC报文进行了安全处理,因此解决了现有技术中采用“地址映射”的方式联通网闸两端的OPC客户端和OPC服务器而存在的安全隐患,从而大大提高了网闸的安全功效。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于Linux的OPC网闸系统的一种结构示意图;
图2为本发明一实施例提供的基于Linux的OPC网闸系统的另一种结构示意图;
图3为本发明一实施例提供的基于Linux的OPC网闸系统的搭建方法的流程图;
图4为本发明一实施例提供的数据处理方法的流程图;
图5为本发明一实施例提供的数据处理方法时序交互图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明一实施例提供的基于Linux的OPC网闸系统的结构示意图。如图1所示,本发明实施例提供的基于Linux的OPC网闸系统,包括:第一主机、第二主机,以及,位于第一主机和第二主机之间的网闸摆渡装置;其中,第一主机和第二主机上运行有Linux系统,第一主机用于连接OPC服务器,第二主机用于连接OPC客户端;
其中,第一主机和第二主机的Linux系统上搭建有虚拟化平台,所述虚拟化平台上安装有Windows客户机操作系统;所述第二主机的Windows客户机操作系统中运行有OPCServer代理程序,第一主机的Windows客户机操作系统中运行有OPC Client代理程序;
其中,第一主机上设置有第一Socket服务,以供第一主机上的Windows客户机通过Socket与第一主机通信;第二主机上设置有第二Socket服务,以供第二主机上的Windows客户机通过Socket与第二主机通信;
其中,第一主机上的Windows客户机的网络接口与第一主机的网络接口为共享关系,以供OPC Client代理程序与OPC服务器通信;第二主机上的Windows客户机的网络接口与第二主机的网络接口为共享关系,以供OPC Server代理程序与OPC客户端通信;
其中,OPC客户端向第二主机上的OPC Server代理程序发送OPC报文,OPC Server代理程序对OPC报文进行安全处理,并将处理后的报文通过第二Socket服务传输给第二主机,第二主机将处理后报文通过网闸摆渡装置传输至第一主机;第一主机通过第一Socket服务将接收到的报文传输至OPC Client代理程序,OPC Client代理程序将接收到的报文发送给OPC服务器。
在本实施例中,需要说明的是,OPC网闸一般用于隔离两个安全等级不同的网络。例如,OPC网闸可以用于将企业的生产控制系统和信息管理系统之间进行物理隔离,并对OPC采集的生产过程数据进行传输。
现在结合图2所示的结构示意图对本实施例提供的网闸系统进行详细说明。如图2所示,网闸系统一般由相互独立的两台主机构成,两台主机负责协议的代理、数据接收、协议转换、数据摆渡、协议的还原和发送,两台主机之间通过专用的网闸摆渡装置(例如硬件交换卡)进行通信用以完成数据的摆渡。由于网闸的网络隔离作用,用以隔离两个安全等级不同的网络,因此一般将两台主机分别称作外网主机(以下简称第一主机A)和内网主机(以下简称第二主机B),在本实施例中,第一主机A和第二主机B运行Linux系统。第一主机A和第二主机B分别连接OPC Server和OPC Client两端的网络。
在本实施例中,为使得在Linux系统上运行OPC程序,以实现基于Linux的OPC数据安全处理,本实施例采用了如下技术手段:
①虚拟化平台搭建:在A、B主机的Linux系统之上,安装KVM虚拟化平台。需要说明的是,本实施例在搭建虚拟化平台时,并不限于KVM,根据需要还可以为其他虚拟化平台搭建方式,本实施例对此不作限定。
②Windows客户机设置:进一步在KVM平台上安装原生Windows客户机操作系统。
③OPC代理程序的设置:为了完成OPC的正常交互,需要在Windows客户机操作系统运行专门的OPC代理程序。如图2所示,A主机的Windows客户机中系统中运行OPC Client代理程序(以下简称X),B主机的Windows客户机系统中运行OPC Server代理程序(以下简称Y)。X负责模拟真实OPC Client的行为,向OPC Server发起请求进行数据采集。Y负责模拟真实OPC Server的行为,为真实的OPC Client提供采集后的实时数据。
④OPC代理程序与外界的通信:将A、B主机上的Windows客户机的网络接口与A、B主机的网络接口设置为共享关系,在A、B主机的KVM环境中配置Bridge桥接类型网络,使得A、B主机中的Windows客户机可以通过Bridge桥接网络与外界通信。这样X、Y可以通过桥接口于OPC Server、OPC Client进行通信。需要说明的是,本实施例只是以Bridge桥接类型网络进行举例,并不是对其进行限制,在实际应用时还可以根据需要采用不同的网络设备和网络类型。
⑤OPC代理程序与宿主机通信:X、Y接收到OPC Server和OPC Client的数据经过处理后,需要传递给各自的Linux宿主机系统,宿主机分别设置对应程序,通过在Linux宿主机中设置Socket监听数据传输服务(以下简称M、N)来完成Windows客户机和Linux宿主机之间的数据交互。一侧的宿主系统可以将数据摆渡传输到网闸的另一侧主机。
在本实施例中,由①-⑤可见,本实施例从虚拟化技术的角度出发,将Windows运行于Linux虚拟化平台,间接实现了Window开发的OPC程序运行在Linux环境下,从而整体上实现了基于Linux的OPC数据安全处理。
由上面技术方案可知,本发明实施例提供的基于Linux的OPC网闸系统,从虚拟化技术的角度出发,将Windows运行于Linux虚拟化平台,间接实现Window开发的OPC程序运行在Linux环境下,整体上实现了基于Linux的OPC数据安全处理。本实施例提供的基于Linux的OPC网闸系统,由于在Linux环境中实际运行了OPC Server代理程序并对OPC报文进行了安全处理,因此解决了现有技术中采用“地址映射”的方式联通网闸两端的OPC客户端和OPC服务器而存在的安全隐患,从而大大提高了网闸的安全功效。
基于上述实施例的内容,在本实施例中,所述OPC Server代理程序对OPC报文进行安全处理,具体包括:
所述OPC Server代理程序对OPC报文进行拆解;
对拆解后的报文进行协议解析,获取解析结果;
根据解析结果以及预设的安全控制策略对报文进行安全处理。
在本实施例中,所述OPC Server代理程序在对OPC报文进行安全分析时,先对其进行拆解,然后对拆解后的报文进行协议解析,获取解析结果,最后根据解析结果以及预设的安全控制策略对报文进行安全处理,从而可以将OPC报文携带的安全隐患消除,截断危险数据的传输。
例如,可以根据预设的安全控制策略对OPC报文进行安全策略检查。举例来说,假设安全控制策略为:只允许OPC读操作不允许OPC写操作,则根据解析结果以及预设的安全控制策略对报文进行安全处理,具体包括:
根据解析结果对接收到的OPC报文进行检测,将关于OPC写操作的OPC报文丢弃。
举例来说,假设安全控制策略为:通过流量学习自动构建白名单列表并根据白名单列表对OPC报文进行过滤,则根据解析结果以及预设的安全控制策略对报文进行安全处理,具体包括:
根据解析结果通过流量学习自动构建白名单列表;
根据构建的白名单列表对接收到的OPC报文进行过滤,以去除不在白名单列表内的OPC报文。
在本实施例中,需要说明的是,在基于安全控制策略对报文进行安全判断和处理时,可以通过解析OPC协议中的Interface和Method字段的方式实现内容层面的检查。现列举部分Interface值如表1所示:
列举部分Interface值如表1所示:
表1
Figure BDA0002378715940000091
基于上述实施例的内容,在本实施例中,所述第二主机将处理后报文通过网闸摆渡装置传输至第一主机,具体包括:
所述第二主机将处理后的报文进行私有数据格式封装后通过网闸摆渡装置传输至第一主机。
在本实施例中,第二主机将处理后的报文进行私有数据格式封装并通过网闸摆渡装置进行传输,从而一方面使得报文得到私有格式的封装保护,另一方面,也保证了报文可以以较短的时间传输至第一主机。
基于上述实施例的内容,在本实施例中,所述网闸摆渡装置包括硬件交换卡。
在本实施例中,采用硬件交换卡进行第一主机和第二主机之间的数据传输,能够保证传输质量和传输速度,不容易造成数据丢失的情况。
图3示出了本实施例提供的基于Linux的OPC网闸系统的搭建方法的流程图。如图3所示,本实施例提供的基于Linux的OPC网闸系统的搭建方法,包括:
步骤101:在第一主机和第二主机之间设置网闸摆渡装置;其中,第一主机用于连接OPC服务器,第二主机用于连接OPC客户端,所述网闸摆渡装置用于在第一主机和第二主机之间进行数据传输;
步骤102:在第一主机和第二主机的Linux系统上搭建虚拟化平台,并在虚拟化平台上安装Windows客户机操作系统;
步骤103:在第二主机的Windows客户机操作系统中运行OPC Server代理程序,在第一主机的Windows客户机操作系统中运行OPC Client代理程序;其中,OPC Server代理程序用于接收OPC客户端发送的OPC报文并对OPC客户端发送的OPC报文进行安全处理;OPCClient代理程序用于接收安全处理后的报文并将安全处理后的报文发送给OPC服务器;
步骤104:在第一主机上设置用于保证第一主机与安装在第一主机上的客户机之间通信功能的第一Socket服务,在第二主机上设置用于保证第二主机与安装在第二主机上的客户机之间通信功能的第二Socket服务;
步骤105:将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系;将第二主机的网络接口设置为与第二主机上的Windows客户机的网络接口为共享关系。
在本实施例中,当OPC客户端向OPC服务器发送OPC报文时,OPC客户端向第二主机上的OPC Server代理程序发送OPC报文,OPC Server代理程序对OPC报文进行安全处理,并将处理后的报文通过第二Socket服务传输给第二主机,第二主机将处理后报文通过网闸摆渡装置传输至第一主机;第一主机通过第一Socket服务将接收到的报文传输至OPC Client代理程序,OPC Client代理程序将接收到的报文发送给OPC服务器。
基于上述实施例的内容,在本实施例中,所述在第一主机和第二主机的Linux系统上搭建虚拟化平台,具体包括:
在第一主机和第二主机的Linux系统上搭建KVM虚拟化平台。
在本实施例中,为了在Linux系统上运行OPC程序,故可以在Linux系统上搭建KVM虚拟化平台,进而在KVM虚拟化平台上安装Windows操作系统,间接实现Window开发的OPC程序运行在Linux环境下,从而整体上实现了基于Linux的OPC数据安全处理。
基于上述实施例的内容,在本实施例中,所述将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系,具体包括:
将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系,在第一主机的KVM虚拟化平台中配置Bridge桥接网络,以供第一主机上的Windows客户机通过Bridge桥接网络与OPC服务器进行通信。
在本实施例中,为了实现OPC代理程序与外界的通信,将第一主机和第二主机上的Windows客户机的网络接口与第一主机和第二主机的网络接口设置为共享关系,在第一主机和第二主机的KVM环境中配置Bridge桥接类型网络,使得第一主机和第二主机中的Windows客户机可以通过Bridge桥接网络与外界通信。这样第一主机和第二主机上的OPCClient代理程序和OPC Server代理程序可以通过桥接口与OPC服务器以及OPC客户端进行通信。
图4示出了本实施例提供的数据处理方法的流程图。如图4所示,本实施例提供的数据处理方法,基于上面实施例所述的OPC网闸系统实现,包括如下步骤:
步骤201:OPC客户端向第二主机发送OPC报文;
步骤202:第二主机上的OPC Server代理程序接收所述OPC报文,并通过WindowOPC接口获取所述OPC报文中的有效数据;
步骤203:OPC Server代理程序对获取到的有效数据进行安全处理,并将安全处理后的报文通过Socket发送给第二主机;
步骤204:第二主机对接收到的报文采用私有协议封装,并将封装好的报文通过网闸摆渡装置发送给第一主机;
步骤205:第一主机接收到报文后,去除私有协议封装,还原有效数据,并将有效数据通过Socket发送给OPC Client代理程序;
步骤206:OPC Client代理程序在获取到有效数据后,将有效数据通过Window OPC接口发送至OPC服务器。
在本实施例中,结合下面的例子以及图5所示的时序交互图(报文从OPC客户端到OPC服务器)对本实施例提供的数据处理方法进行解释说明(A主机指代第一主机、B主机指代第二主机)。
a、OPC Client向B主机发送OPC请求报文(以下简称P1)。
b、接收到P1请求报文,通过Window OPC接口获取到P1中有效内容(以下简称D)。
c、Y将获取到的有效数据D,进行OPC报文安全检查(后面实施例对其进行详述),安全检查后将D通过socket发送给N。
d、N收到D后使用私有协议封装(以下简称E),并经过网闸摆渡系统将E发送给A主机的M。
e、M接收E后,去除私有协议封装,还原有效数据D。并将D通过Socket发送给X。
f、X在获取到D后,根据D的内容,通过Window OPC接口向OPC Server发送请求报文P2。
在本实施例中,通过将OPC程序通过虚拟化的技术运行在Linux系统下,保证了完整的OPC协议采集和代理机制,并通过Linux的高性能的摆渡系统,将拆解后的OPC数据传输到OPC Client一侧,通过拆解、传输、再封装保证OPC数据传输的安全性,提升了网闸的安全功效。
基于上述实施例的内容,在本实施例中,所述OPC Server代理程序对获取到的有效数据进行安全处理,具体包括:
所述OPC Server代理程序根据预设的安全控制策略对获取到的有效数据进行安全处理;
其中,所述预设的安全控制策略中包括:只允许OPC读操作不允许OPC写操作,和/或,通过流量学习自动构建白名单列表并根据白名单列表对获取到的有效数据进行过滤。
基于上述实施例的内容,在本实施例中,在所述OPC Server代理程序根据预设的安全控制策略对获取到的有效数据进行安全处理前,所述方法还包括:
对获取的有效数据进行OPC协议解析,获取Interface字段信息和/或Method字段信息;
相应地,所述OPC Server代理程序根据预设的安全控制策略对获取到的有效数据进行安全处理,具体包括:
根据Interface字段信息和/或Method字段信息,以及,预设的安全控制策略对获取到的有效数据进行安全处理。
在本实施例中,举例来说,当Y收到OPC有效报文D时,可以根据安全控制策略对OPC请求报文进行安全策略检查,例如,安全控制策略可以为:只允许OPC读操作不允许OPC写操作或者通过流量学习自动构建白名单列表并根据白名单列表对获取到的有效数据进行过滤。对于违反安全检查策略的报文进行丢弃或者reset连接处理。
在本实施例中,举例来说,假设安全控制策略为:只允许OPC读操作不允许OPC写操作,则根据解析结果对接收到的OPC报文进行检测,将关于OPC写操作的OPC报文丢弃。
举例来说,假设安全控制策略为:通过流量学习自动构建白名单列表并根据白名单列表对OPC报文进行过滤,则根据解析结果通过流量学习自动构建白名单列表,并根据构建的白名单列表对接收到的OPC报文进行过滤,以去除不在白名单列表内的OPC报文。
在本实施例中,需要说明的是,在基于安全控制策略对报文进行安全判断和处理时,可以通过解析OPC协议中的Interface和Method字段的方式实现内容层面的检查。
在本实施例中,需要说明的是,在工业生产过程系统中,需要经由OPC协议将多种不同的厂商的控制器设备所产生的数据进行采集,OPC网闸通过部署在OPC Server和OPCClient之间对OPC数据进行代理和传输,以此来保证网络隔离实现安全防护。为此,本实施例提供了一种基于Linux系统的OPC工业网闸系统的实现方法,该方法通过将OPC采集程序通过虚拟化的技术运行在Linux系统下,保证了完整的OPC协议采集和代理机制,并通过Linux的高性能的摆渡系统,将拆解后的OPC数据传输到OPC Client一侧,通过拆解、传输、再封装保证OPC数据传输的安全性,提升了网闸的安全功效。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本发明中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于Linux的OPC网闸系统,其特征在于,包括:第一主机、第二主机,以及,位于第一主机和第二主机之间的网闸摆渡装置;其中,第一主机和第二主机上运行有Linux系统,第一主机用于连接OPC服务器,第二主机用于连接OPC客户端;
其中,第一主机和第二主机的Linux系统上搭建有虚拟化平台,所述虚拟化平台上安装有Windows客户机操作系统;第二主机的Windows客户机操作系统中运行有OPC Server代理程序,第一主机的Windows客户机操作系统中运行有OPC Client代理程序;
其中,第一主机上设置有第一Socket服务,以供第一主机上的Windows客户机通过Socket与第一主机通信;第二主机上设置有第二Socket服务,以供第二主机上的Windows客户机通过Socket与第二主机通信;
其中,第一主机上的Windows客户机的网络接口与第一主机的网络接口为共享关系,以供OPC Client代理程序与OPC服务器通信;第二主机上的Windows客户机的网络接口与第二主机的网络接口为共享关系,以供OPC Server代理程序与OPC客户端通信;
其中,OPC客户端向第二主机上的OPC Server代理程序发送OPC报文,所述OPC Server代理程序对OPC报文进行拆解;对拆解后的报文进行协议解析,获取解析结果;根据解析结果以及预设的安全控制策略对报文进行安全处理,并将处理后的报文通过第二Socket服务传输给第二主机,第二主机将处理后报文通过网闸摆渡装置传输至第一主机;第一主机通过第一Socket服务将接收到的报文传输至OPC Client代理程序,OPC Client代理程序将接收到的报文发送给OPC服务器。
2.根据权利要求1所述的基于Linux的OPC网闸系统,其特征在于,所述第二主机将处理后报文通过网闸摆渡装置传输至第一主机,具体包括:
所述第二主机将处理后的报文进行私有数据格式封装后通过网闸摆渡装置传输至第一主机。
3.根据权利要求1所述的基于Linux的OPC网闸系统,其特征在于,所述网闸摆渡装置包括硬件交换卡。
4.一种基于Linux的OPC网闸系统的搭建方法,其特征在于,包括:
在第一主机和第二主机之间设置网闸摆渡装置;其中,第一主机用于连接OPC服务器,第二主机用于连接OPC客户端,所述网闸摆渡装置用于在第一主机和第二主机之间进行数据传输;
在第一主机和第二主机的Linux系统上搭建虚拟化平台,并在虚拟化平台上安装Windows客户机操作系统;
在第二主机的Windows客户机操作系统中运行OPC Server代理程序,在第一主机的Windows客户机操作系统中运行OPC Client代理程序;其中,OPC Server代理程序用于接收OPC客户端发送的OPC报文并对OPC报文进行拆解;对拆解后的报文进行协议解析,获取解析结果;根据解析结果以及预设的安全控制策略对报文进行安全处理;OPC Client代理程序用于接收安全处理后的报文并将安全处理后的报文发送给OPC服务器;在第一主机上设置用于保证第一主机与安装在第一主机上的客户机之间通信功能的第一Socket服务,在第二主机上设置用于保证第二主机与安装在第二主机上的客户机之间通信功能的第二Socket服务;
将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系;将第二主机的网络接口设置为与第二主机上的Windows客户机的网络接口为共享关系。
5.根据权利要求4所述的基于Linux的OPC网闸系统的搭建方法,其特征在于,所述在第一主机和第二主机的Linux系统上搭建虚拟化平台,具体包括:
在第一主机和第二主机的Linux系统上搭建KVM虚拟化平台。
6.根据权利要求5所述的基于Linux的OPC网闸系统的搭建方法,其特征在于,所述将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系,具体包括:
将第一主机的网络接口设置为与第一主机上的Windows客户机的网络接口为共享关系,在第一主机的KVM虚拟化平台中配置Bridge桥接网络,以供第一主机上的Windows客户机通过Bridge桥接网络与OPC服务器进行通信。
7.一种数据处理方法,其特征在于,所述数据处理方法基于如权利要求1所述的基于Linux的OPC网闸系统实现,所述数据处理方法包括:
OPC客户端向第二主机发送OPC报文;
第二主机上的OPC Server代理程序接收所述OPC报文,并通过Window OPC接口获取所述OPC报文中的有效数据;
OPC Server代理程序对获取的有效数据进行OPC协议解析,获取Interface字段信息和/或Method字段信息;根据Interface字段信息和/或Method字段信息,以及,预设的安全控制策略对获取到的有效数据进行安全处理,并将安全处理后的报文通过Socket发送给第二主机;
第二主机对接收到的报文采用私有协议封装,并将封装好的报文通过网闸摆渡装置发送给第一主机;
第一主机接收到报文后,去除私有协议封装,还原有效数据,并将有效数据通过Socket发送给OPC Client代理程序;
OPC Client代理程序在获取到有效数据后,将有效数据通过Window OPC接口发送至OPC服务器。
8.根据权利要求7所述的数据处理方法,其特征在于,所述预设的安全控制策略中包括:只允许OPC读操作不允许OPC写操作,和/或,通过流量学习自动构建白名单列表并根据白名单列表对获取到的有效数据进行过滤。
CN202010076967.3A 2020-01-23 2020-01-23 基于Linux的OPC网闸系统及数据处理方法 Active CN111343144B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010076967.3A CN111343144B (zh) 2020-01-23 2020-01-23 基于Linux的OPC网闸系统及数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010076967.3A CN111343144B (zh) 2020-01-23 2020-01-23 基于Linux的OPC网闸系统及数据处理方法

Publications (2)

Publication Number Publication Date
CN111343144A CN111343144A (zh) 2020-06-26
CN111343144B true CN111343144B (zh) 2022-09-02

Family

ID=71188027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010076967.3A Active CN111343144B (zh) 2020-01-23 2020-01-23 基于Linux的OPC网闸系统及数据处理方法

Country Status (1)

Country Link
CN (1) CN111343144B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014218152A1 (de) * 2014-09-11 2016-03-17 Robert Bosch Gmbh Kommunikationseinrichtung und Verfahren zur Kommunikation zwischen einer Bedienoberfläche einer Maschine und einer Steuereinrichtung der Maschine
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法
CN108769022A (zh) * 2018-05-29 2018-11-06 浙江大学 一种用于渗透测试的工业控制系统安全实验平台

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003558B2 (en) * 1998-10-16 2006-02-21 Iconics, Inc. Method and system for communicating information and controlling equipment according to a standard protocol between two computers
AT411973B (de) * 2001-01-26 2004-08-26 Fronius Schweissmasch Prod Verfahren zum betreiben eines schweissgerätes bzw. einer schweissanlage
CN1731347A (zh) * 2004-08-06 2006-02-08 梁肇新 基于Linux的Windows软件兼容层体系结构
CN101247391B (zh) * 2007-12-28 2013-03-06 上海电力学院 Opc安全代理系统及其代理方法
CN106027511A (zh) * 2016-05-13 2016-10-12 北京工业大学 一种基于Modbus/TCP深度解析的协议隔离方法
CN106341397A (zh) * 2016-08-25 2017-01-18 柏盟(北京)科技发展有限公司 一种工业安全隔离网闸
CN109474540B (zh) * 2018-09-12 2022-06-10 奇安信科技集团股份有限公司 一种识别opc流量的方法及装置
CN109639707B (zh) * 2018-12-27 2021-07-09 奇安信科技集团股份有限公司 基于网闸的数据传输方法、设备、系统和介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014218152A1 (de) * 2014-09-11 2016-03-17 Robert Bosch Gmbh Kommunikationseinrichtung und Verfahren zur Kommunikation zwischen einer Bedienoberfläche einer Maschine und einer Steuereinrichtung der Maschine
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法
CN108769022A (zh) * 2018-05-29 2018-11-06 浙江大学 一种用于渗透测试的工业控制系统安全实验平台

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于单向隔离网闸的数据过滤系统研究与实现;基于单向隔离网闸的数据过滤系统研究与实现;《中国优秀硕士学位论文全文数据库(电子期刊)》;20160115;全文 *
工业网络的物理隔离与数据采集;weixin_34281477;《CSDN》;20171214;全文 *
工控系统中间件研究兼论OPC;申忠利等;《电力自动化设备》;20060125(第01期);全文 *

Also Published As

Publication number Publication date
CN111343144A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
EP2241159B1 (en) Method and message processing engine with a virtual network interface
US8875296B2 (en) Methods and systems for providing a framework to test the security of computing system over a network
US8910129B1 (en) Scalable control system for test execution and monitoring utilizing multiple processors
US6874147B1 (en) Apparatus and method for networking driver protocol enhancement
EP2669802B1 (en) Facilitating communication between enterprise software applications
EP3155764B1 (en) Method and system for secure bidirectional communication for industrial devices
KR102017038B1 (ko) 패스워드 변경 기능이 구비된 웹 어플리케이션의 접근통제 시스템
CN113489527B (zh) 轻量化网络中间件的架构系统及卫星通信方法
CN112769597A (zh) 一种云边协同虚拟化场景的容器网络限流方法和系统
US20070199065A1 (en) Information processing system
US20060212587A1 (en) System, method and program product to manage a communication session
CN108306934A (zh) 一种跨服务器文件传输方法及系统
US8972543B1 (en) Managing clients utilizing reverse transactions
CN111343144B (zh) 基于Linux的OPC网闸系统及数据处理方法
Kim et al. Multi-channel transmission method for improving TCP reliability and transmission efficiency in UNIWAY
CN115883255B (zh) 数据过滤方法、设备以及计算机可读介质
CN106528267A (zh) 基于Xen特权域的网络通信监控系统及方法
CN110661868A (zh) 一种可拓展的可视化应用部署的解决方法
CN114268669A (zh) 访问处理方法及系统
CN114205149A (zh) 网络通信方法及装置
US8601577B1 (en) Using configured error codes to enable spam blocking downstream from a mail transfer agent
CN114598536B (zh) 一种云平台虚拟化数据流量安全监控方法、系统及存储介质
JP7146124B1 (ja) 端末装置、方法およびプログラム
KR100670807B1 (ko) 대규모 트래픽의 ip 네트워크 에뮬레이션 시스템 및 방법
CN115344348A (zh) 基于libvirt和qemu的智能网卡虚拟机迁移方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

GR01 Patent grant
GR01 Patent grant