资讯详情

从 RJ45 到云端:以太网温湿度变送器通过 TCP/IP 上云,同时暴露 SNMP 与 UDP 服务的安全策略近期在调试一套工业环境监控系统时,遇到了关于 Modbus 连接保持的问题。现场部署了

📅 2026/9/23 9:00:54 | 华诺云谱 👁 阅读
从 RJ45 到云端:以太网温湿度变送器通过 TCP/IP 上云,同时暴露 SNMP 与 UDP 服务的安全策略近期在调试一套工业环境监控系统时,遇到了关于 Modbus 连接保持的问题。现场部署了
从 RJ45 到云端以太网温湿度变送器通过 TCP/IP 上云同时暴露 SNMP 与 UDP 服务的安全策略近期在调试一套工业环境监控系统时遇到了关于 Modbus 连接保持的问题。现场部署了一批 恒湿净化设备包括 恒湿消毒净化一体机 等主要用来维持特定环境的温湿度指标。在长时间运行后发现设备偶尔会掉线。把 Modbus TCP、SNMP、UDP 三协议跑通之后新的问题浮出水面传感器直接暴露 SNMP 和 UDP 服务等于在监控网络里开了三扇门。如果只管连通不管安全弱电井里随便接一台笔记本就能读走所有数据、甚至写寄存器改设定值。这篇把从 RJ45 到云端这条链路上三协议并存时的安全策略拆开讲清楚。一、威胁模型三扇门各自的风险面先明确攻击面再谈防护。以太网温湿度变送器 ├── TCP 502 Modbus TCP → 可读全量寄存器可写下发设定值 ├── UDP 161 SNMP Agent → 可读系统信息、配置可写如果 RW community └── UDP 9000 私有 Trap → 可被伪造源 IP 发送虚假越限事件三类风险协议暴露面典型威胁后果Modbus TCP502 端口未授权读写、寄存器篡改改设定值导致环境失控、固件被写坏SNMP161 端口默认 communitypublic/private、GETBULK 遍历信息泄露、配置被改、设备被劫持UDP 私有 Trap9000 端口伪造 Trap、UDP 泛洪虚假告警、pbuf 池耗尽、网关误联动关键认知传感器在弱电井/吊顶里物理安全约等于零。任何能接入监控 VLAN 的设备都是潜在威胁源。安全策略不能假设内网可信必须按零信任思路设计。二、网络层隔离VLAN ACL 是第一道防线2.1 VLAN 划分监控网络拓扑 管理 VLAN 10交换机管理、NMS │ 监控 VLAN 20传感器、网关、SCADA │ 控制 VLAN 30恒湿机、新风机、风阀 DO │ 上云 VLAN 40边缘网关 → 腾讯云 IoT Explorer原则传感器只待在监控 VLAN 20不跨 VLAN 通信。SNMP 查询只来自 NMSVLAN 10通过三层交换机 ACL 放行。Modbus TCP 只来自边缘网关VLAN 20/40。2.2 交换机 ACL 规则# 传感器网段10.10.20.0/24 # 边缘网关10.10.20.1 # NMS10.10.10.5 # 规则 1传感器 → 只允许响应 Modbus TCP不主动发起连接 deny tcp any 10.10.20.0/24 established # 阻断传感器主动建连 # 规则 2Modbus TCP 只允许边缘网关访问 permit tcp host 10.10.20.1 10.10.20.0/24 eq 502 deny tcp any 10.10.20.0/24 eq 502 # 规则 3SNMP 只允许 NMS permit udp host 10.10.10.5 10.10.20.0/24 eq 161 deny udp any 10.10.20.0/24 eq 161 # 规则 4私有 UDP Trap 只允许传感器 → 网关 permit udp 10.10.20.0/24 host 10.10.20.1 eq 9000 deny udp any any eq 9000 # 规则 5传感器禁止访问互联网上云走网关代理 deny ip 10.10.20.0/24 any关键点传感器本身不直接连互联网。上云路径是传感器 → 边缘网关 → MQTT over TLS → 腾讯云 IoT Explorer。传感器只和网关通信不暴露公网 IP。三、Modbus TCP 安全从裸奔到认证3.1 现状问题标准 Modbus TCP没有任何认证机制。连上 502 端口就能读、就能写。这是工业协议的历史包袱。3.2 加固方案方案 A边缘网关做协议代理 认证推荐云端/SCADA → 边缘网关认证、鉴权、审计 │ └── Modbus TCP → 传感器内网VLAN 隔离云端下发指令到边缘网关网关验证来源、签名、权限网关到传感器走内网VLAN 隔离 MAC 绑定传感器侧不需要改固件方案 B传感器固件层加认证需厂商支持Modbus TCP 连接建立后第一个请求必须是认证帧 Function Code: 0x2B (Device Identification, 或私有功能码) Data: HMAC-SHA256(timestamp, device_id, shared_secret) 认证通过后该 TCP 连接后续请求才被处理 超时未认证 → RST方案 CVPN/隧道边缘网关和传感器之间建立 IPsec / WireGuard 隧道 传感器只接受隧道内的 Modbus TCP 流量3.3 寄存器写保护Holding Register 分区 0x0020–0x002F 设定值/下发 → 需要写保护密码 写流程 1. 写 0x003F unlock_key (32-bit) 2. 写目标寄存器 3. 自动重新锁定或超时锁定四、SNMP 安全从 v1/v2c 到 v34.1 禁用 v1/v2c# 错误配置默认 community public # 只读 community private # 读写 # 任何能 ping 通的人都能 snmpwalk 走全部数据4.2 启用 SNMPv3SNMPv3 安全模型 - USM (User-based Security Model) - 认证MD5/SHA - 加密DES/AES - 用户独立凭证可撤销 配置示例Net-SNMP 风格 createUser sensor_monitor SHA auth_password AES priv_password rwuser sensor_monitor priv传感器固件侧如果支持禁用 v1/v2c只开 v3配置只读用户写操作用独立用户 更高权限4.3 如果固件只支持 v2c缓解措施 1. 改 community 为随机长字符串32 字符不用 public/private 2. ACL 限制 SNMP 源 IP只允许 NMS 3. 只读 community禁用 RW community 4. 交换机端口安全绑定 NMS MAC五、UDP 私有 Trap 安全5.1 问题UDP 无连接、无认证任何主机都可以伪造源 IP 向网关发送 UDP Trap网关无法区分真伪。5.2 加固方案方案 A共享密钥 HMACUDP Trap 帧结构扩展 Header (8 bytes): Magic: 0xAA55 Version: 0x02 ← 升级版本 Sensor ID: 0x00010023 Payload Len: 0x0020 ← 扩展 Payload (32 bytes): Timestamp: 0x5f3a_2c1b Temperature: 0x00e2 Humidity: 0x0216 Dew Point: 0x00c3 Alert Flags: 0x0001 Nonce: 0x12345678 ← 防重放 HMAC: 16 bytes ← HMAC-SHA256(key, payload nonce)网关侧验证检查 Sensor ID 是否在白名单检查 Timestamp 与本地时间偏差 5s防重放用预共享密钥计算 HMAC比对验证通过才处理 Trap否则丢弃方案 BDTLS如果 MCU 性能允许UDP DTLS 1.2 握手证书/PSK 认证 加密AES-128-GCM 完整性AEAD方案 CIP 白名单 速率限制最低限度网关侧 1. 只接受已知传感器 IP 的 UDP Trap 2. 每个 IP 每秒最多 5 个 Trap 3. 超出则丢弃 记录日志六、上云安全MQTT over TLS 设备认证6.1 连接路径传感器 → 边缘网关内网VLAN 20 │ 边缘网关 → 腾讯云 IoT ExplorerMQTT over TLS 8883 │ ├── 设备认证X.509 证书 / PSK ├── 数据加密TLS 1.2 └── 云端鉴权CAM 策略传感器不直接上云通过边缘网关代理。网关负责采集传感器数据Modbus TCP接收传感器 TrapUDP汇聚后通过 MQTT 上报云端云端下发指令 → 网关 → 传感器6.2 边缘网关安全配置# 腾讯云 IoT Explorer 连接 client mqtt.Client(client_iddevice_id) client.tls_set( ca_certsroot_ca.pem, certfiledevice_cert.pem, keyfiledevice_key.pem, tls_versionssl.PROTOCOL_TLSv1_2 ) client.connect(endpoint, port8883)6.3 云端安全策略1. 设备级每个边缘网关独立证书不可复用 2. 权限级设备只能发布/订阅自己的 topic $thing/up/property/{ProductID}/{DeviceName} $thing/down/property/{ProductID}/{DeviceName} 3. 规则引擎数据流转到 InfluxDB 前做鉴权 4. 审计所有下发指令记录日志可追溯七、固件安全传感器侧的最后一道防线7.1 固件签名固件更新流程 1. 云端签名固件RSA-2048 / ECDSA 2. 网关下载固件 签名 3. 传感器验证签名 → 写入 Flash 4. 启动前再次验证签名7.2 安全启动Bootloader 验证 Application 签名 → 失败则进入恢复模式 → 拒绝未签名固件7.3 调试接口关闭生产固件 - JTAG/SWD 关闭 - 串口调试关闭或加密 - 默认密码修改八、安全配置检查表项目检查内容通过标准VLAN 隔离传感器是否只在监控 VLAN是不跨 VLANACL502/161/9000 是否限制源 IP是只允许授权设备Modbus是否有写保护机制是unlock write lockSNMP是否禁用 v1/v2c是只开 v3 或改 communitySNMP是否有 RW 权限否只读UDP Trap是否有认证/HMAC是或 IP 白名单 限速上云是否 MQTT over TLS是8883 端口上云设备证书是否独立是一机一证固件是否签名验证是拒绝未签名固件调试JTAG/SWD 是否关闭是九、一句话总结从 RJ45 到云端安全不是加个防火墙就完事而是逐层递进VLAN 隔离限制暴露面、ACL 控制端口访问、Modbus 加认证防篡改、SNMP 升 v3 防泄露、UDP Trap 加 HMAC 防伪造、上云走 TLS 加密、固件签名防降级。​ 传感器是监控网络的末梢也是攻击者的入口——把每一扇门都关好系统才真正可靠。物联网 #Modbus #TCP/IP #UDP #POE供电 #腾讯云 #Wireshark #Python #InfluxDB #以太网温湿度传感器 #网口温湿度变送器 #机房监控
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。