4、网络安全防护:网络架构安全设计、防火墙与入侵检测、VPN与安全远程访问

网络安全防护这块,说实话,是很多自控系统工程师容易忽视的环节。我见过太多项目,现场设备跑得挺好,但网络侧基本是「裸奔」状态。你想想看,一个控制网络要是被人攻破了,后果可不仅仅是丢数据那么简单。

我个人习惯把网络安全防护分成三个层面来考虑:架构设计边界防护远程接入。咱们一个一个聊。

4.1 网络架构安全设计

架构设计是地基。地基没打好,后面加再多防火墙也是白搭。

我在项目中遇到过最典型的问题:OT网络和IT网络直接二层互通。说白了,办公网的人能Ping通PLC,这太危险了。正确的做法是什么?分层隔离

核心原则:将自控系统网络划分为不同的安全区域,区域之间通过防火墙或工业网关进行隔离。

我建议采用经典的Purdue模型来分层:

层级 名称 典型设备 安全要求
Level 4-5 企业层/管理层 ERP、MES服务器 标准IT安全策略
Level 3 生产运营层 历史数据库、操作员站 严格访问控制
Level 2 过程控制层 DCS、PLC控制器 最小化通信
Level 1 现场设备层 传感器、执行器 物理隔离为主

这里我画了一张图,帮你快速理解这个分层逻辑:

Level 4-5:企业层/管理层 ERP、MES、历史数据库 防火墙 / 工业网关 Level 3:生产运营层 操作员站、工程师站、OPC服务器 工业防火墙 / 深度包检测 Level 2:过程控制层 DCS控制器、PLC、RTU 物理隔离 / 单向网闸 Level 1:现场设备层 传感器、执行器、变频器、IO模块 安全等级递增 → 访问控制趋严

嗯,这里要注意:不同层级之间不要直接路由。我见过有人图省事,把Level 3的交换机和Level 2的交换机直接级联,结果一个病毒从办公网一路扫到了PLC。血的教训。

我的小技巧:在架构设计阶段,先画一张「数据流图」,标清楚哪些设备需要通信、用什么协议、走哪个端口。然后根据这张图来配置防火墙规则,而不是凭感觉瞎开端口。

4.2 防火墙与入侵检测

防火墙是边界防护的第一道门。但自控系统的防火墙和IT防火墙不太一样。

为什么?因为工业协议太特殊了。Modbus TCP、PROFINET、EtherNet/IP这些协议,普通防火墙根本看不懂。你想想看,一个防火墙如果连Modbus的功能码都识别不了,它怎么判断这个报文是「读寄存器」还是「写线圈」?

所以我建议使用工业防火墙,它具备深度包检测(DPI)能力。举个例子:

# 工业防火墙规则示例(以Modbus TCP为例)
规则1:允许 Level 3 → Level 2 的 Modbus TCP 连接
  源IP:192.168.10.0/24(操作员站网段)
  目的IP:192.168.20.0/24(PLC网段)
  功能码:仅允许 01(读线圈)、03(读保持寄存器)
  禁止功能码:05(写单线圈)、06(写单寄存器)、16(写多寄存器)

规则2:禁止 Level 2 → Level 3 的主动连接
  说明:PLC不应主动向操作员站发起连接

我曾经在一个水处理项目中,发现有人把防火墙配成了「全通」模式。问原因,对方说「怕影响通信」。其实这是个误区——精确的规则不会影响正常通信,反而能帮你挡住异常流量

再说说入侵检测(IDS)。我个人习惯在核心交换机上做端口镜像,把流量引到IDS设备上。IDS不阻断流量,只做告警。这样即使误报,也不会影响生产。

注意:不要在控制网络中启用「主动阻断」模式的IPS(入侵防御系统)。工业通信对延迟极其敏感,IPS误阻断一个包,可能导致整个生产线停机。我建议用旁路模式的IDS,先观察、再手动处置。

4.3 VPN与安全远程访问

远程访问是刚需。设备厂商要远程调试,运维人员要远程监控。但直接暴露RDP、VNC端口到公网?那是找死。

我推荐用VPN + 堡垒机的方案。具体来说:

  • VPN网关:部署在OT网络边界,只开放一个UDP端口(如IPSec的500/4500端口)
  • 双因素认证:密码 + 动态令牌或证书
  • 堡垒机:所有远程操作必须经过堡垒机,记录操作日志

这里给一个OpenVPN的配置片段,我实际项目中用过:

# OpenVPN 服务端配置(关键参数)
port 1194
proto udp
dev tun

# 证书认证
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem

# 分配虚拟IP池
server 10.8.0.0 255.255.255.0

# 推送路由,让VPN客户端能访问PLC网段
push "route 192.168.20.0 255.255.255.0"

# 限制并发连接数
max-clients 10

# 客户端断开后自动清理路由
client-to-client
duplicate-cn

配置完VPN后,记得做一件事:限制VPN客户端的访问范围。不要给VPN用户整个OT网络的权限。我习惯的做法是:VPN客户端只能访问跳板机(Jump Server),然后通过跳板机去操作PLC。这样即使VPN账号被盗,攻击者也拿不到控制器的直接访问权。

避坑指南:我曾经遇到一个项目,远程访问时延高达500ms,操作员点一下鼠标要等2秒才有反应。后来发现是VPN的加密算法选错了。工业场景建议用AES-128-GCM,不要用AES-256-CBC。前者硬件加速好,延迟低。

最后说一句:网络安全不是一次性工作。架构设计完了要验证,防火墙规则要定期审计,VPN证书要按时轮换。我每个季度都会做一次网络扫描,看看有没有不该出现的开放端口。嗯,养成习惯就好。


公众号:蓝海资料掘金营,微信deep3321