朱 同,劉 媛
(廊坊開發區中油龍慧自動化工程有限公司,河北 廊坊 065000)
隔離區(demilitarized zone,DMZ)是為了防止外部網絡直接訪問內部網絡而設置的、非安全系統與安全系統之間的區域。通過設置DMZ,能夠有效地保護內部網絡。相比一般的防火墻方案,設置DMZ 對攻擊者來說又多了一道關卡[1]。
目前,工業控制系統的數據訪問需求已不再僅僅滿足于數據的實時傳輸。DMZ 系統作為數據采集與監視控制(supervisory control and data acquisition,SCADA)系統的對外屏障,隸屬于SCADA 系統。其部署了2 臺DMZ 服務器,采用雙主模式工作,是DMZ 系統的核心部分,負責實現SCADA 系統與外部網絡的數據交互。DMZ 服務器可實現雙向客戶端服務器(client and server,CS)模式(雙向客戶端&服務器架構)通信。即:一方面作為客戶端采集外部網絡數據,又作為服務器向SCADA 系統轉發外部網絡數據;另一方面既作為客戶端采集SCADA 系統數據,又作為服務器向外部網絡轉發SCADA 系統數據。DMZ 服務器除了實時傳輸數據之外,還能傳遞數據質量戳和時間戳,保證數據交互的時鐘同步性,具備數據緩存和數據回填功能,并可實現數據加密和證書認證通信。
SCADA 系統內部署了北京油氣調控中心研發的過程控制系統(process control system,PCS)工控人機界面(human machine interface,HMI)軟件,以下簡稱PCS。PCS 與DMZ 服務器通信協議為 IEC104,外部網絡與DMZ 服務器通信協議為OPC UA。DMZ 服務器作為中轉平臺,向雙方提供所需數據后,由雙方主動從中讀取。
以下是對DMZ 系統安全數據交互設計開發的詳細闡述。系統已在中俄東線天然氣管道工程黑河壓氣首站成功應用并投入正常運行。
從提高安全性考慮,將數據傳輸分為3 個區域,分別為外部網絡非安全數據區、DMZ 數據區、SCADA 系統安全數據區。SCADA 系統與外部網絡相互間均有數據交互。交互的數據主要為工藝生產過程數據,類型主要為Float、Bool 型,并附帶傳遞數據質量戳和時間戳,可監測數據質量、保證時間同步[2]。
數據傳輸總體框架如圖1 所示。

圖1 數據傳輸總體框架示意圖Fig.1 Schematic diagram of overall data transmission framework
在本方案中,DMZ 數據區包括2 臺DMZ 服務器、2臺隔離網閘、2 臺路由器和2 臺防火墻。其中,隔離網閘、路由器與防火墻用于網絡安全監控及承擔網絡路由功能,在此不作重點描述。
2 臺DMZ 服務器用于數據采集和轉發。使用OPC UA 協議采集外部網絡非安全數據區的數據,通過IEC104 協議轉發至SCADA 系統安全數據區,并使用IEC104 協議采集SCADA 系統安全數據區的數據,通過OPC UA 協議再轉發至外部網絡非安全數據區。所描述的“轉發”并非直接向目的地設備寫入數據,而是采集數據后在本地生成數據源,并進行協議轉換后供目的地設備讀取。
DMZ 服務器采用華三H3C UniServer R4900 系列服務器。每臺DMZ 服務器配置2 塊千兆獨立網卡,設置不同網段IP 地址,分別用于對接安全數據區與非安全數據區,實現兩個方向、兩種協議的數據采集和轉發。利用不同網卡,互不干擾,避免了雙方網絡物理上的直接接觸,增強數據通信的安全性[3]。DMZ 服務器中安裝Windows Server2012 操作系統,并在此基礎上部署OPC UA 與IEC104 協議轉換應用及服務程序包。
在2 臺DMZ 服務器上同時部署相同的協議轉換應用及服務。每臺服務器需部署2 個服務程序包。協議轉換服務程序包如圖2 所示。

圖2 協議轉換服務程序包Fig.2 Protocol conversion service package
“1042OpcCon”用于IEC104 協議數據的采集,并轉發為OPC UA 協議的數據,即用于SCADA 系統安全數據區向外部網絡非安全數據區的數據傳遞,部署IEC104 客戶端及OPC UA 服務應用。“Opc2104Con”用于OPC UA 協議數據的采集,并轉發為IEC104 協議的數據,即用于外部網絡非安全數據區向SCADA 系統安全數據區的數據傳遞,部署OPC UA 客戶端及IEC104 服務應用。為保證轉發業務運行的可靠性,“1042OpcCon”與“Opc2104Con”兩套服務為協議轉換核心系統,分別運行、互不影響,既可以通過Bin 目錄下提供的Install.bat 腳本進行服務的注冊,又可以通過Uninstall.bat 腳本進行服務的卸載。
DMZ 服務及客戶端的運行依賴于消息隊列ActiveMq 和數據庫引擎Mysql。消息隊列用于服務與客戶端的通信,采用消息隊列方式可以最大化地降低服務和客戶端之間的耦合,使服務更加穩定運行,并防止客戶端對正常轉發數據的影響。Mysql 用于存儲歷史數據,可以快速實現檢索和查詢。
Check_service.bat 用于守護服務的運行。對于服務在運行過程中可能出現的異常停止,此腳本可以自動檢測并啟動服務。
DMZ 服務器安裝了數據查詢可視化界面客戶端,并且可以可通過“1042OpcCon”服務目錄與“Opc2104Con”服務目錄下的Opc104ViewClient.exe 進行啟動。客戶端啟動程序界面如圖3 所示。

圖3 客戶端啟動程序界面Fig.3 Client startup program interface
為防止客戶端被誤關閉,客戶端最小化的時候會隱藏到系統托盤,雙擊即可打開界面。啟動后,可通過可視化界面查詢在DMZ 服務器中兩個方向數據采集信息,用于通信故障后在本地的分析和篩查。客戶端實時數據查詢可視化界面包括數據點列表(展示轉發和采集的數據點名稱與地址)、實時曲線顯示區域、實時數據值顯示區域。通過該可視化界面,用戶可自由查詢當前各個采集與轉發數據點的實時數值與實時變化曲線。
DMZ 服務器中組態了歷史曲線界面,用于查詢歷史數據;可以根據左側的轉發地址列表進行篩選,并在右側展示歷史轉發的數據曲線。客戶端歷史數據查詢可視化界面包括數據點列表(展示轉發和采集的數據點名稱與地址)、歷史曲線顯示區域、歷史數據值顯示區域。通過該可視化界面,用戶可自由查詢當前各個采集與轉發數據點的歷史數值與歷史曲線。
消息隊列系統用于在協議轉換核心系統和客戶端系統緩存和傳輸實時數據。DMZ 系統首先要保障的是兩個基礎的數據轉換服務的穩定、可靠。從整個大系統的體系結構上,要保證子系統之間沒有過多依賴,使核心系統在非必要系統不工作情況下也能正常運行。子系統之間采用消息隊列方式通信,采用消息隊列隔離核心系統和客戶端界面之間的依賴,保證客戶端系統的運行狀態不會影響核心系統的數據接入和轉發[4]。
時序數據庫系統用于保存系統交換的實時數據,提供搜索引擎接口,保證數據查詢的近實時性。DMZ需要存儲高頻率的實時數據,基本點位為1 000 個信號,存儲頻率為1 s,每天的數據量量為86 400 000 條。普通的關系型數據庫無法滿足此規模的數據量的查詢,而傳統的實時數據庫系統是有損存儲,會造成數據精度丟失。DMZ 系統采用近實時時序數據庫Elasticsearch 存儲高頻數據,可以滿足數據庫存儲和查詢的近實時性[5]。
DMZ 服務器部署完畢后,除需要訪問SCADA 系統外,在安全區網絡內可能會有多個第三方系統訪問DMZ 服務器讀取相關數據。為了防止未被許可的第三方系統隨意接入DMZ 數據區獲取數據信息,方案采用了網絡協議(internet protocol,IP)地址綁定的方法,提出了多用戶實時訪問優化方案。
除了在隔離網閘內進行IP 地址的過濾之外,在DMZ 服務器中通過設置允許客戶端訪問清單,綁定DMZ 服務器向安全數據區發布數據的信任IP 地址,開放同一端口號,使得在信任清單里面的設備能夠訪問、清單外的設備拒絕訪問[6]。通過這種方式,有效實現了多用戶的實時訪問,也保護了DMZ 系統的信息安全。
IP 地址綁定舉例如下所示。


由此例可知,僅允許IP 地址為“10.211.3.11”“10.211.3.12”“10.31.147.21”和“10.31.147.22”的設備進入DMZ 數據區訪問。
針對數據通信可能會發生短暫中斷的情況,DMZ服務器中增加了數據緩存與推送功能,開辟數據緩存寄存器區域。一旦發生通信中斷,DMZ 服務器會向緩存區域存儲緩存數據。根據預先設定的數據存儲量,到達溢出點后,新產生的緩存數據會把最先存儲的數據依次覆蓋掉[7]。當通信恢復后,DMZ 服務器重新建立鏈接,并把緩存數據主動推送給最終用戶。用戶可根據需要,決定是否把緩存數據回填至本地數據庫。
選取某一個數據點,模擬DMZ 服務器與SCADA系統安全數據區通信中斷。在一定時間內通信恢復后,SCADA 系統接收到的DMZ 服務器向緩存區域寫入的數據隊列形成的趨勢曲線圖,與在通信中斷期間該點的實際變化一致。DMZ 服務器數據緩存趨勢曲線如圖4 所示。

圖4 DMZ 服務器數據緩存趨勢曲線圖Fig.4 Trend curve of DMZ server data cache
OPC UA 通信可以開啟認證證書的校驗功能。開啟后,OPC 客戶端與服務器在建立通信連接時會檢測對方證書是否在自己的信任列表內:如果在信任列表內,則進行正常數據通信;否則,通信終止。證書通過雙方的OPC 軟件生成,相互交換后,將對方證書添加到信任列表內,并可以設置證書有效期。有效期過后,原先信任的證書將不再為雙方數據通信提供認證校驗,數據通信終止,必須重新生成證書并再次互相交換才可繼續通信。在使用認證證書的同時,還可以對通信數據進行加密。加密方式可采用以下幾種。
①Basic128Rsa15-簽名。
②Basic128Rsa15-簽名和加密。
③Basic256-簽名。
④Basic256-簽名和加密。
⑤Basic256Sha256-簽名。
⑥Basic256Sha256-簽名和加密。
通過認證證書和數據加密,可以有效增強DMZ 服務器的數據通信安全性。
以下闡述了SCADA 系統內進行的與DMZ 系統安全數據交互通信設置,以及數據對外發布的方案。
安全數據區SCADA 系統包括2 臺實時服務器、1套冗余可編程邏輯控制器(programmable logic controller,PLC)[8]。實時服務器部署了PCS 上位機軟件。
SCADA 系統通過實時服務器PCS 上位機軟件采集DMZ 服務器的數據,在PCS 軟件內組態配置IEC104 數據采集通道,使PCS 作為IEC104 客戶端。SCADA 系統IEC104 協議采集通道配置如下。
①建立通道描述,命名為“IEC104 數據采集”,通信類型選擇為實時采集。
②通信規約選擇為fes_104、客戶端模式。設置對端第一 IP 地址與對端第二 IP 地址,分別為10.211.3.11 與10.211.3.12。
③設置第一端口號與第二端口號均為2404。
規約類型選擇IEC104,通道類型為實時采集,配置PCS 上位機作為客戶端,2 個對端IP 地址分別為2臺DMZ 服務器。PCS 上位機可實現數據采集的雙網冗余,在通信不發生故障的前提下,使用對端第一IP地址作為主訪問路徑采集數據,而對端第二IP 地址路徑處于備用休眠狀態。第一端口號和第二端口號分別對應主備兩條訪問路徑。
SCADA 系統內的數據需要通過DMZ 服務器發布給外部網絡非安全數據區。從安全角度考慮,禁止外部網絡直接訪問SCADA 系統內PLC,因此需要通過SCADA 系統的實時數據服務器對外轉發數據。實時服務器PCS 上位機軟件通過MDOBUS TCP/IP 協議采集PLC 數據,并配置IEC104 數據轉發通道,以及數據點的點對點映射,在上位機軟件應用層面實現MODBUS TCP/IP 數據和IEC104 數據的實時對接。當PCS 上位機建立了與站控PLC 的MODBUS TCP/IP 通信,就會啟動相應的IEC104 數據轉發通道。把采集到的PLC 數據打上時間標簽后用IEC104 數據格式向DMZ 服務器轉發,從而實現SCADA 系統數據向外部網絡的傳輸[9]。
DMZ 系統2 臺服務器采用雙主機制,SCADA 系統PCS 上位機建立2 條獨立的IEC104 數據轉發通道。每條通道指向其中1 臺DMZ 服務器。2 條通道同時對外轉發數據,2 條通道的主備由DMZ 服務器決定。
SCADA 系統IEC104 協議轉發通道配置如下。
①建立通道描述,命名為“IEC104 數據轉發通道1”,通信類型選擇為實時轉發。
②通信規約選擇為fes_104、服務端模式,設置對端第一IP 地址為10.211.3.11,對端第二IP 地址不作設置。
③設置第一端口號為2404,第二端口號不作設置。
規約類型選擇IEC104,通道類型為實時轉發,并配置PCS 上位機作為服務端,配置對端第一IP 地址為DMZ 服務器1,端口號使用雙方預先定義的2404端口。
IEC104 數據轉發通道2 配置與通道1 一致,僅需修改對端第一IP 地址指向DMZ 服務器2 即可。
PCS 上位機除實現MODBUS 數據采集和IEC104數據轉發外,還可實現IEC104 數據采集和IEC104 數據轉發。這就為DMZ 數據上傳調控中心提供了解決方案。
由于調控中心不能直接訪問DMZ 數據區,因此也需要通過SCADA 實時數據服務器進行轉發[10]。轉發協議采用IEC104,方法與SCADA 實時服務器向DMZ服務器的轉發一致,在PCS 上位機進行數據點的地址映射,配置轉發通道,與調控中心建立連接后啟動轉發通道。調控中心轉發通道配置如下。
①建立通道描述,命名為“DMZ 數據轉發第三方系統通道”,通信類型選擇為實時轉發。
②通信規約選擇為fes_104、服務端模式,設置對端第一IP 地址為10.0.1.114,設置對端第二IP 地址為10.0.1.115。
③設置第一端口號與第二端口號均為2404。
規約類型選擇IEC104,通道類型為實時轉發,并配置PCS 上位機作為服務端,配置對端第一IP 地址和第二IP 地址指向調控中心2 臺服務器。
綜上所述,通過DMZ 實現SCADA 系統和外部網絡的安全數據交互的設計已在中俄東線天然氣管道黑河壓氣首站投入運行,主要用于中俄雙方輸氣生產數據的實時交換。該應用數據傳輸快速、穩定、可靠,安全性高,極大地方便了中俄雙方生產運行人員對數據的實時監控分析,安全保障了雙方生產控制系統。DMZ 服務器的數據中轉應用完全自主開發,OPC UA與IEC104 之間協議轉換可根據實際需求高效對接,兼容性優于直接部署不同品牌的協議轉換軟件。該方案的實際應用,為OPC UA 和IEC104 之間的協議轉換應用開發提供了較為完善的實現方法,對今后SCADA 系統對外數據發布具有較高的參考價值,能夠為信息化智慧管道在數據共享層面的建設提供一定的指導。