给“龙虾”穿上盔甲:OpenClaw六大防护策略

正文内容

工信部NVDB预警刚发完,GitHub Advisory Database又爆出数十个漏洞。有人问我:“这龙虾还能养吗?”我说能,但得穿上防弹衣再出门。

老张昨晚又发消息来了,这次不是吐槽,是截图。

截图里是GitHub Advisory Database的页面,密密麻麻列着OpenClaw的漏洞,光高危就5个,CVSS评分最高8.8。他问:“我这刚部署好的小龙虾,是不是该扔了?”

我说你慌啥,这些漏洞就像你家门锁有隐患,但你要做的是换把好锁,不是把房子点了。

今天就给你把这身“龙虾盔甲”从头到脚穿明白。

为啥非得穿盔甲?先看几个血淋淋的案例

奇安信刚发了一份安全排查指南,里面有几个真实案例值得看

案例一:某用户部署的OpenClaw暴露在公网,没改默认端口,没设IP白名单。攻击者扫到后,利用CVE-2026-25253漏洞直接远程执行代码,把服务器当肉鸡挖矿去了。

案例二:有人从网盘下了个“功能增强包”,结果是个恶意Skill。装上后API Key被偷,一天被刷掉800多美元。

案例三:更惨的一位,给OpenClaw开了管理员权限,让它“清理无用文件”。结果它把 /etc 目录当“无用文件”给清了,系统直接崩溃

这些不是吓唬你,是真事。

防护策略一:最小权限原则——别让它想干啥就干啥

OpenClaw默认追求功能最大化,啥权限都想要。但安全的原则正好相反:只给完成任务必需的最小权限

具体怎么做?

如果你在Linux上部署,千万不要用root用户跑OpenClaw。专门创建一个普通用户,比如叫 clawuser,然后限定它只能访问特定目录。

在配置文件里启用 allowlist(目录白名单),只允许它读写你指定的文件夹。比如:

"filesystem": {
  "allowlist": ["/home/clawuser/workspace", "/tmp/claw-temp"],
  "denylist": ["/etc", "/root", "/home/*/.ssh"]
}

国家应急中心(CNCERT)的官方提示里特别强调:对运行环境进行严格隔离,使用容器等技术限制OpenClaw权限过高问题

想了解怎么配置allowlist,可以翻翻 OpenClaw安全 专题里的详细教程。

防护策略二:端口修改+IP白名单——把门藏起来

OpenClaw默认用18789端口做管理界面,这个端口就像你家大门,门牌号全网都知道

第一层防护:改端口号

把18789改成别的随机端口,比如34567。这样攻击者扫默认端口就扫不到你了。

第二层防护:IP白名单

更关键的是设白名单。阿里云的安全组配置里,可以把18789端口的入方向来源设为只允许你的IP访问,而不是 0.0.0.0/0

华为云的官方文档也明确要求:配置IP地址白名单,以免暴露端口到公网

如果你确实需要公网访问,别直接暴露18789。用SSH隧道转发,或者配个Nginx加HTTPS和密码认证。OVHcloud的教程里专门讲了怎么用SSH隧道安全访问:

# 在本地电脑执行,把远程端口映射到本地
ssh -L 18789:127.0.0.1:18789 user@你的服务器IP

然后在本地浏览器打开 http://127.0.0.1:18789,这样外部根本扫不到你的服务

防护策略三:容器化隔离——套个透明罩子

Docker部署不只是为了省事,更是为了安全。

用Docker跑OpenClaw,相当于给它套了个透明罩子——它在里面怎么折腾,都不会直接影响宿主机

关键配置

services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw-gateway
    restart: always
    ports:
      - "127.0.0.1:18789:18789"  # 只监听本地
    volumes:
      - ~/openclaw/data:/home/node/.openclaw
    environment:
      - NODE_ENV=production

注意上面 ports 那行写的是 127.0.0.1:18789:18789,这意味着端口只暴露在本地,外部网络根本访问不到

高级玩法还可以加 --cap-drop=ALL 和 --read-only 参数,彻底限制容器权限

关于容器部署的详细步骤,可以参考 OpenClaw防护策略 里的实战教程。

防护策略四:系统防火墙规则——第二道铁门

云安全组是第一道防线,系统防火墙是第二道。就算云平台配置失误,系统防火墙还能顶住

ufw(简单版)

# 启用防火墙
ufw enable

# 只允许官方白名单IP访问18789
ufw allow from 121.40.82.220 to any port 18789 proto tcp
ufw allow from 47.97.73.42 to any port 18789 proto tcp

# 允许SSH(但只限你的IP)
ufw allow from 你的IP to any port 22 proto tcp

# 默认拒绝其他所有
ufw default deny incoming

iptables(硬核版)

# 清除现有规则
iptables -F

# 默认策略:拒绝所有入站
iptables -P INPUT DROP

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许官方IP访问18789
iptables -A INPUT -p tcp -s 121.40.82.220 --dport 18789 -j ACCEPT
iptables -A INPUT -p tcp -s 47.97.73.42 --dport 18789 -j ACCEPT

# 允许你的SSH
iptables -A INPUT -p tcp -s 你的IP --dport 22 -j ACCEPT

# 保存规则
iptables-save > /etc/iptables/rules.v4

阿里云开发者社区的工程师强调,双层防护能避免单一层级配置失误导致风险

防护策略五:Skill来源管控——别乱装插件

ClawHub上有几千个技能插件,但奇安信的报告中指出,约4.5%的Skill存在恶意行为或严重漏洞

国家应急中心也专门提了:严格管理插件来源,禁用自动更新功能,仅从可信渠道安装经过签名验证的扩展程序

三条铁律

  1. 安装前先查评分:只装安全评分≥90、下载量大、更新频繁的Skill
  2. 用skill-vetting扫描:装之前先用官方的安全扫描工具检查
  3. 拒绝网盘/群聊分享的插件:非官方渠道的Skill,再诱人也别装

防护策略六:密钥脱敏与审计——别把密码写脸上

GitHub Advisory Database披露的多个漏洞都涉及同一个问题:认证信息明文暴露

别这么做

  • 在代码里硬编码API Key
  • 在环境变量明文存密钥
  • 在URL里带Token

正确姿势

  • API Key单独存成 secrets.json,权限设为600
  • 使用密钥管理服务(如阿里云KMS)
  • 启用操作日志审计,定期检查谁调用了你的Key

国家应急中心的提示特别强调:加强凭证管理,避免在环境变量中明文存储密钥;建立完整的操作日志审计机制

DefectDojo的工程师还建议:为OpenClaw单独申请API Key,并在Provider后台设置硬性消费限额(比如每月50美元)。这样就算Key被盗,损失也有限。

写在最后:安全是养出来的,不是买来的

老张后来按这六条把自己的小龙虾全副武装了一遍,昨晚又发消息来了:“改完了,现在感觉不是虾了,是坦克。”

我说这就对了。

OpenClaw确实是个好东西,GitHub星标28万不是白给的。但它就像刚拿驾照的新手司机,你不能直接把它扔高速上。得给它系上安全带,装上防撞梁,再配个行车记录仪。

奇安信那篇指南的标题说得特别好:“在效率与安全之间寻找平衡”

别被漏洞吓退,也别不当回事。花半小时把这六条做完,你的小龙虾就能放心干活了。

想安全地养你的小龙虾?

文章评分

这篇文章对您有帮助吗?

分享到

微信
朋友圈
QQ
QQ空间
微博
抖音
小红书
复制
二维码

实用功能

夜间模式
小字
大字
收藏
目录
笔记
朗读
相关
搜索
我的笔记
文章内搜索
相关文章推荐
正在加载相关文章...

反馈建议

您需要登录后才能填写意见反馈信息

分享二维码

使用手机扫描二维码

操作成功