4、网络安全防护:网络架构安全设计、防火墙与入侵检测、VPN与安全远程访问
网络安全防护这块,说实话,是很多自控系统工程师容易忽视的环节。我见过太多项目,现场设备跑得挺好,但网络侧基本是「裸奔」状态。你想想看,一个控制网络要是被人攻破了,后果可不仅仅是丢数据那么简单。
我个人习惯把网络安全防护分成三个层面来考虑:架构设计、边界防护、远程接入。咱们一个一个聊。
4.1 网络架构安全设计
架构设计是地基。地基没打好,后面加再多防火墙也是白搭。
我在项目中遇到过最典型的问题:OT网络和IT网络直接二层互通。说白了,办公网的人能Ping通PLC,这太危险了。正确的做法是什么?分层隔离。
核心原则:将自控系统网络划分为不同的安全区域,区域之间通过防火墙或工业网关进行隔离。
我建议采用经典的Purdue模型来分层:
| 层级 | 名称 | 典型设备 | 安全要求 |
|---|---|---|---|
| Level 4-5 | 企业层/管理层 | ERP、MES服务器 | 标准IT安全策略 |
| Level 3 | 生产运营层 | 历史数据库、操作员站 | 严格访问控制 |
| Level 2 | 过程控制层 | DCS、PLC控制器 | 最小化通信 |
| Level 1 | 现场设备层 | 传感器、执行器 | 物理隔离为主 |
这里我画了一张图,帮你快速理解这个分层逻辑:
嗯,这里要注意:不同层级之间不要直接路由。我见过有人图省事,把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