ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

汇川AM系列后台安全与用户权限配置实战指南

汇川AM系列后台安全与用户权限配置实战指南 做汇川AM系列调试这些年我见过最典型的一次事故设备交付后操作员在触摸屏上误点了“配方初始化”整条线废了一批料厂家远程过来查发现控制器后台密码还是出厂默认值随便一个人连上InoProShop都能在线改程序。复盘结论很扎心——不是AM不行是后台安全管理和用户权限压根没设。AM400、AM600这一级别的中型PLC安全能力完全能覆盖绝大多数场景关键在于你要理解它的权限结构并且愿意花半小时把它配好。这篇文章把我自己的配置习惯、踩过的坑、以及同行问得最多的权限问题一起整理出来给准备做设备交付或者正在收尾项目的工程师一个参考。1. 为什么后台安全是AM系列项目交付的“隐藏红线”1.1 默认状态下AM系列是一台“敞开门”的控制器很多工程师拿到AM系列第一件事就是写逻辑、调EtherCAT轴、通Modbus TCP等程序跑通了直接拔线走人。后台安全那是什么能吃吗这种心态在调试阶段没什么问题但到了交付和运维阶段隐患会集中爆发。AM系列控制器的默认状态是“开放”的——控制器密码为空、工程没有启用用户管理、下载程序不设限制。任何人只要拿到InoProShop选择TCP连接扫一下IP就能在不输入任何凭证的情况下建立在线连接执行下载、上载、在线写入、启动停止等操作。听起来很可怕但这确实是工业现场的常态。更关键的是很多设备从出厂到交付中间隔了好几个月调试人员一批接一批谁手里都有工程U盘。如果后台没有权限体系本质上无法确认“最后一次改动是谁做的、为什么改”等出了事故只能靠现场监控回查最后往往不了了之。1.2 工业现场真正频发的风险来自“内部”做安全配置之前先要搞清楚防的是谁。很多朋友一听到控制器安全第一反应是“防黑客”。但在工厂环境下外部黑客攻击自家PLC的概率极小真正频发的风险来自内部操作员在生产画面的顺手操作中把不该动的内部参数改了维护工程师为了应急把整份程序重新下载一遍导致正在运行的轴组态被覆盖离职工程师留了一份工程副本后续接手的维护方与设备原厂产生纠纷第三方服务商在现场做设备改造时顺手把程序和配方备份拷走。所以这篇文章讲的安全管理本质上是把“谁能碰这台控制器、碰了之后能做什么、做了有没有痕迹”彻底说清楚。AM系列在这方面给了足够手段只是很多人没用起来。2. 三层防护从InoProShop工程到PLC运行时到存储介质2.1 工程层使用者进入工程的第一道门AM系列的工程文件依托InoProShop汇川基于Codesys内核开发的编程环境管理。工程层防护要解决的是“谁能打开这个工程文件”的问题。在InoProShop里如果工程设置了打开密码打开时就会先弹出密码框。这个密码和控制器下载密码是两码事它只保护工程文件本身。我强烈建议交付前把这一层设上。因为工程文件一旦落到U盘、邮箱、网盘里没有密码就等于源码直接外流。更关键的是要规划好“用户管理”。它和简单的工程密码完全不同工程密码只是给整包工程加了一把锁谁有密码谁就是管理员用户管理则是把不同的人放到不同角色里每人用自己的账号登录可操作的范围互不相同。打个比方工程密码是一把“万能钥匙”用户管理才是“每个人一张门禁卡”。2.2 运行层真正和控制器“对话”时决定的权限运行层指的是在线连接控制器之后能够执行什么操作。这部分最容易混淆因为很多人以为“我能连接上”就等于“我能下载”。AM系列的权限是分项控制的建立在线连接、在线修改、冷启动下载、热复位下载、启动停止、变量写入、固件升级每一项都可以独立授权。默认情况下只要不启用用户管理所有在线功能对匿名用户都是开放的。一旦启用了用户管理并开启强制登录系统就会要求输入用户名和密码然后按该用户所属组的权限决定能否执行某项操作。这个机制和IT系统里SVN、Jenkins、Linux的权限设计思路异曲同工——用户、用户组、权限项三层模型。如果你之前配置过这些工具理解InoProShop的用户管理会非常快。2.3 文件层SD卡与CNC File模式的边界AM系列控制器大多支持存储卡扩展或文件服务很多工程师只在“参数备份恢复”时才用到却忽略了它们的安全属性。存储卡一旦放任不管就等于给程序文件、配方数据开了一条旁路通道——通过存储卡就能把整个工程或备份文件拷走甚至可以用存储卡里的旧固件、旧工程覆盖控制器里的当前版本。这个场景下CNC File模式是大家经常搜索的一个词。你可以把它理解成控制器与外置文件介质之间的文件交换模式通过该模式可以把工程备份、数据文件、配方文件在控制器和存储卡之间移动。它的初衷是方便批量生产与异地维护但若没有限制也容易成为数据泄露或误覆盖的入口。我的经验做法是只要项目主要程序写完就把文件层交换能力限制为“仅允许指定用户组操作”或者干脆关闭自动挂载避免现场人员随手插一张SD卡进入文件模式把程序拷走。3. 手把手配置用户组一个值得抄的模板3.1 用户组应该怎么划划用户组之前先想清楚现场有哪些人需要操作这台控制器。按照我做过的项目经验角色通常不超过四种角色典型对象权限定位系统管理员电气负责人全权含用户管理、固件升级设备工程师调试工程师可下载、在线修改、调试参数产线操作员产线值班人员只读监视、极少数操作维护工程师设备维修可上载、诊断、备份不可修改程序为什么要这样划核心原则是“最小权限”每个人只需要完成自己职责范围内的操作不该打开的通道一律关闭。操作员并不需要“在线修改”给他这个权限只会增加误操作风险维护工程师需要读取诊断信息和上载程序进行分析所以保留上载权限但不应该允许直接下载新逻辑覆盖生产程序。3.2 在InoProShop里新建用户并分配权限以AM400/AM600项目为例在InoProShop里选择“工程”菜单下的“工程设置”进入“用户管理”相关页签。不同软件版本路径名可能稍有差异但逻辑一致。第一步勾选“启用用户管理”。不启用这一项后面建的组和用户都不会生效。第二步新建用户组。我习惯直接用英语命名AdminGroup、EngineerGroup、OperatorGroup、MaintainGroup。用户组里的权限项不要图省事全勾第4节会逐条说明。第三步在相应组下新建用户。每个用户设置登录名和密码。密码建议至少8位包含大小写和数字。具体长度要求视固件版本而定但无论如何不要用1234、admin这类默认值——我见过不止一台出厂的PLC用默认密码裸奔到停机。第四步把项目保存然后重新打开工程验证。这一步一定要做很多朋友配好不测试到了现场登录时报错才发现保存工程时用户管理并没有真正生效。3.3 登录、切换用户与强制下线用户管理启用后InoProShop连接控制器时会要求输入账号密码。实际使用中同一个工程可能需要在不同角色间切换比如工程师上午用自己账号调试下午想切换到管理员账号做权限维护那就在在线连接状态下退出登录重新登录目标账号即可。强制下线这个功能容易被忽略。当交接班时如果上一班的人忘记退出登录下一班就无法用自己账号登录——有些控制器会限制同一时刻的在线用户数。遇到这种情况管理员可以在用户管理界面强制指定用户下线不用重启控制器或重启软件。这个操作建议在项目调试群里提前和现场人员讲清楚避免半夜值班的时候打电话来问为什么登不进去。4. 权限表把每个操作交给对的人4.1 核心权限项逐条解读InoProShop权限配置页里有一大排复选框每个名字看起来都很接近如果不逐条理解很容易在“全选”和“全不选”之间反复横跳。我按实际效果把它们归成三类。连接类权限在线连接是否允许与目标控制器建立在线连接。就算这一项勾了具体能执行什么操作还要看下面的单项。上载可否把控制器内存中的应用程序读回到工程里。这个权限非常敏感——它能“复制”程序建议只开放给管理员和受信任的维护工程师。下载可否把工程写入控制器。其中又细分为首次下载和在线修改在线修改对生产影响小首次下载通常会造成设备停机或启动逻辑重新初始化。运行控制类权限启动/停止控制器这个权限给错了后果是操作员可以随时停机。默认只给管理员和设备工程师。写入/强制变量在线调试很有用但在生产环境给错人就可能在故障处理时被误改内部变量。操作员账号一律不建议给这个权限。敏感操作类权限固件升级务必仅限管理员否则一次误操作就能让整台设备变砖头。用户管理务必仅限管理员。否则普通用户能给自己涨权限这套体系就白搭了。修改通信参数影响外部系统连接建议仅限管理员或设备工程师。4.2 一张可以直接抄的配置表把上面的原则落到具体配置我自己用的表长这样权限系统管理员设备工程师产线操作员维护工程师在线连接允许允许允许允许上载允许允许禁止允许下载冷启动允许允许禁止禁止在线修改允许允许禁止禁止启动/停止允许允许禁止允许写入/强制变量允许允许禁止禁止固件升级允许禁止禁止禁止用户管理允许禁止禁止禁止我给操作员开放“在线连接”和“启动/停止”的意图是有些场景下需要他们在远端上位机上复位设备。如果你们的产线不需要操作员做任何控制动作就把这两个也关掉只保留纯监视。4.3 密码与账号生命周期管理账号和权限建好之后还要管好账号生命周期。项目验收时把调试期创建的所有通用账号清掉改用实名账号。人员离职时第一时间禁用账号而不是改密码——改密码会挤掉正在使用的登录状态禁用账号则更平滑。AM系列的用户管理支持多用户现场完全可以做到一人一号。这是一个朴素但极有用的操作很多人不做实名出事之后想追溯都无从下手。5. 防“扒程序”的核心操作上载限制与CNC File模式保护5.1 先搞清楚程序会从哪里泄露我一直认为做程序保护之前要先做威胁分析。程序泄露通常有三条路一是用InoProShop直接上载二是通过存储卡文件交换读走备份三是通过通信端口把文件拖走。所以防泄露的思路不能只靠一个密码而是每条路都要堵住。5.2 加密下载与Boot工程设置AM系列在下载时支持设置保护选项。这里要提醒保护不是只设一个“下载需要输入密码”就完了还要注意Boot工程开机自启动工程的属性。如果Boot工程允许上载那拿到控制器的人通过上载Boot工程也能把运行程序拿到手。所以交付时我会确认工程配置中“允许上载/允许从目标设备读取”这类选项处于关闭状态。开启关闭之后即便对方能在线连接执行上载操作也会被明确拒绝。这个操作非常关键我见过不少设备在线连接密码设了但Boot工程的上载通道没关最后程序还是被别人“拿”走了。5.3 CNC File模式下的安全策略回到CNC File模式。这个模式我使用的安全配置思路是出口方向把“读取/导出工程备份”的权限设置为仅管理员。普通用户进入文件模式可以看到控制器日志等非敏感文件但无法导出程序和配方。入口方向禁止随意使用存储卡里的工程文件覆盖控制器。否则一张卡就能把设备“降级”到旧版本或者覆盖成别的项目这是极其危险的。独立加密存储如果项目有严格保密要求备份文件在存储卡里建议加密存放。能否开启视固件支持而定能开就开。坦白说很多出厂默认配置是开放状态如果没有做这一步任何拿着SD卡的人都能成为“影子工程师”——在无人知晓的情况下修改或备份设备内容。6. 别忽略通信口Modbus TCP Server与OPC的访问控制6.1 Modbus TCP Server如何避免“裸奔”AM系列支持Modbus TCP通信既可以做Client也可以做Server。当它作为Server也就是你们搜“汇川AM系列Modbus TCP通讯Server编程”时最常遇到的场景时等于在网络上开了一个允许第三方直接读写寄存器的口子。如果你把保持寄存器里放的是设备关键参数而Modbus Server又允许写入那任何能ping通这个IP的人都能远程改参数——这比操作员误操作可怕得多。我的建议是能不开放Server就不开放能只读就不要给写权限。如果一定要读写把Server允许写入的寄存器范围缩到最小。借助路由器和交换机的访问控制列表限制Modbus TCP 502端口的访问源网段不要放行到全网。利用AM系列支持的连接监视功能定期查看哪些IP在访问控制器及时发现异常连接。6.2 OPC UA访问认证别走“匿名通道”OPC通信的配置同样是AM系列高频搜索点。OPC UA本身支持用户名密码认证甚至支持证书和加密通道。但我在几个项目里看到为了图方便工程师把OPC UA服务器配成了匿名访问等于把整棵地址空间都晾在车间网络上。正确做法是OPC UA服务端开启用户名密码认证使用单独账号和强密码发放给上位机系统使用如果上位机数量多、数据流量大就开启证书安全策略。做好之后即便有人扫描到4840端口也拿不到有效数据。6.3 网段隔离与白名单思路我经手的设备几乎都有一个原则控制器所在的设备网段与办公网、车间信息网物理或逻辑隔离。如果客观条件做不到靠交换机ACL、防火墙规则限制哪些IP能访问控制器IP也是必要的兜底措施。AM系列不像IT防火墙那样有复杂的访问控制但你可以在上位机侧设置可连接设备的白名单从源头卡住无关设备的连接请求。7. 维护踩坑总结密码忘了、权限冲突、升级后失效7.1 最怕的不是黑客是忘了密码后台安全做得太好副作用就是自己也会被锁住。我有一次出差到外地项目现场密码只有上一任工程师知道结果那个人联系不上了最后只能联系厂家走流程处理。这里有一条重要建议密码一定要双人掌握并且登记在设备投产档案里不要只存于某一个人的手机或笔记本中。工程密码、控制器密码、用户密码三者分开登记避免一串密码泄露导致所有保护全部失效。7.2 权限配得太死调试时效率骤降如果调试期就启用用户管理而且权限设得非常严你会发现每写一个变量就要输入一次密码反而拖慢进度。我的方法是调试阶段先用管理员账号把所有功能开放调完程序、做验收测试之前再切换到正式的用户权限体系。分阶段切换既能保证调试效率又能保证交付时是“收紧状态”。7.3 固件升级或工程覆盖后权限配置“神秘消失”AM系列的权限配置在固件升级、存储卡恢复、冷启动下载等操作后有可能发生不生效或被覆盖的现象。尤其是从存储卡恢复旧工程时如果旧工程里没有启用用户管理就等于把安全设置一并清掉了。我的习惯是在做任何覆盖类操作前后都导出权限配置文件复核一遍用户列表和权限项确认没有静默丢失。7.4 顺手解决DWORD/REAL转换的小疑问很多人在通信配置里卡在“DWORD怎么转REAL”尤其在Modbus TCP Server/Client的寄存器组里。数据类型的转换本身不属于安全配置但权限设置和通信调试经常要一起做这里顺带说一句不要用一个强制转换指令直接转。在Codesys体系里通常要先处理字节序再通过类型转换函数或联合体方式完成。遇到读取到的数值异常先怀疑寄存器映射和字节顺序别先怀疑权限设置这是排查类似问题比较省时的路径。最后分享一点个人体会。后台安全管理这件事最难的不是技术而是让项目所有人接受“多一道登录环节”这个操作习惯。我踩过几次坑之后现在的流程是调试期放开、验收前收紧、交付时把账号和密码连同权限说明一起写进运维手册。这样做之后设备运行一年多都没再出过“谁动了我的程序却不知道”的糟心事。你也可以把这份配置节奏直接抄进自己的项目流程里半小时投入换来的是后面几万个运行小时的安心。
返回列表