新闻详情

新闻详情

首页 / 资讯中心 / 详情

openClaw 安全配置实战:从 Gateway 到沙箱模式,一份可落地的 config.toml 骨架

发布时间:2026/9/27 22:04:36来源:尧图网络
openClaw 安全配置实战:从 Gateway 到沙箱模式,一份可落地的 config.toml 骨架
1. 为什么你的 openClaw 一上线就被盯上openClaw 是一个把大模型接入 IM 渠道、让它能读写文件、执行命令、调用外部工具的 Agent 框架。它能做什么简单说你给它一个飞书或 Telegram 机器人它就能帮你查资料、改代码、跑脚本。适合谁适合想把 AI 从聊天框里放出来、真正干活的开发者和运维。但问题也出在这里一旦它连上了公网、拿到了 shell 权限攻击面就不再是“模型会不会胡说”而是“别人能不能借它的手删你的库”。社区里关于 openClaw 不安全的讨论很多但大多停在“别暴露公网”“小心提示词注入”这种口号层面。真正缺的是一份能直接抄的配置骨架。我试过把 Gateway、沙箱模式、Docker 隔离这三块拆开配发现只要 config.toml 里几个关键项写错前面所有努力都白费。下面这份骨架你可以直接拿去改。先明确威胁模型入站访问陌生人给机器人发消息、工具影响提示词注入让 AI 执行非预期操作、网络暴露Gateway 端口裸奔、本地权限以 root 跑、插件风险恶意技能偷 Key。核心思路只有一句假设模型可以被操纵那就让操纵的影响范围有限。2. TaoToken 前置先把模型入口收进可控范围在配 openClaw 之前模型调用这一层也得收敛。很多人把 API Key 明文写在 config.toml 里一旦配置文件被读走Key 就泄露了。我的做法是统一走 TaoToken 的 API 入口Key 只放在环境变量里配置文件里只留引用。TaoToken 官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。你需要在控制台生成 Key然后把它写进环境变量而不是写进任何会被 git 提交的文件。# 生成后只写入当前 shell 的环境变量不要 echo 到终端历史 export TAOTOKEN_API_KEYsk-你的key # 验证环境变量已生效只显示前 6 位 echo ${TAOTOKEN_API_KEY:0:6}如果你要长期跑编码类 Agent建议用 Coding Plan把模型调用和额度管理放在一起避免 Key 散落在多台机器上。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite API Keys 管理页是 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 配 openClaw 的模型 provider 时对着文档填 base_url 就行。这一步的意义在于即使 openClaw 的配置文件被读攻击者拿到的也只是TAOTOKEN_API_KEY这个变量名而不是真实 Key。Key 的轮换和额度上限在控制台做比在每台机器上改配置文件靠谱得多。3. 可复制的 config.toml 骨架下面这份骨架覆盖 Gateway、沙箱、Docker 三块。注意openClaw 不同版本的字段名可能有差异以你本地openclaw --version对应的文档为准但结构逻辑是通用的。# ~/.openclaw/config.toml # 权限chmod 600属主为专用低权限用户 [gateway] # 只监听本地绝不写 0.0.0.0 host 127.0.0.1 # 改掉默认 18789避免被批量扫描 port 28796 # 必须开认证密码从环境变量读 auth_mode password auth_password ${OPENCLAW_GATEWAY_PASSWORD} # 反向代理场景下只信任本机代理 trusted_proxies [127.0.0.1] [sandbox] # 强制沙箱Agent 只能在 workspace 内活动 mode strict workspace /opt/openclaw/workspace # 禁止执行任意系统二进制 allow_system_binaries false # 禁止 shell 直通需要时再单独开 allow_shell false [heartbeat] # 除非明确需要自主循环否则关掉 enabled false [channels.telegram] # 私信只允许白名单pairing 和 open 都别用 dm_policy allowlist allowlist [123456789] # 群里必须 才响应 mention_required true [plugins] # 默认拒绝只放明确信任的 deny_all_by_default true allow [openclaw/fs-reader, openclaw/web-search] [logging] # 日志脱敏别把 token 写进日志 sanitize true sensitive_fields [api_key, password, token, secret, authorization] level normal几个容易写错的点host写成0.0.0.0等于把控制界面送给全网auth_mode留空等于没认证sandbox.mode写成off或permissive时allow_shell再一开Agent 就能在你机器上跑任意命令。plugins.deny_all_by_default是白名单模式的关键不写这行装了什么插件就跑什么插件。settings.json 里对应的是工具白名单放在 Agent 工作区{ allowed_tools: [ filesystem:read, browser:navigate, search:web ], denied_tools: [ filesystem:write, filesystem:delete, shell:execute ], require_confirmation: { file_delete: true, file_move: true, system_command: true, external_api_call: true } }allowed_tools只留完成任务必需的shell:execute默认禁掉。真要跑命令走require_confirmation里的二次确认而不是直接放开。4. 验证沙箱是否生效、Gateway 是否收敛配完不验证等于没配。下面这几条命令是我每次改完配置都会跑的。先看 Gateway 监听地址。如果输出里出现0.0.0.0:28796或*:28796说明 host 没生效回去改 config.toml。ss -tlnp | grep 28796 # 期望输出127.0.0.1:28796再验证认证是否真的拦住了未授权请求。不带密码直接请求应该返回 401 或 403而不是 200。curl -i http://127.0.0.1:28796/health # 期望HTTP/1.1 401 Unauthorized验证沙箱让 Agent 尝试写一个 workspace 之外的文件应该被拒绝。你可以通过模型对话发一条指令测试模型对话入口在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 。如果它成功写到了/tmp或/etc说明沙箱没生效。# 检查沙箱进程的挂载和权限 ls -ld /opt/openclaw/workspace # 期望drwx------ openclaw openclawDocker 部署的话用下面这份 compose 做隔离。关键项是read_only、cap_drop: ALL、no-new-privileges以及端口只绑127.0.0.1。services: openclaw: image: openclaw:latest user: 1000:1000 read_only: true cap_drop: - ALL security_opt: - no-new-privileges:true ports: - 127.0.0.1:28796:28796 volumes: - ./data:/data:ro - ./logs:/logs:rw deploy: resources: limits: cpus: 2 memory: 2G跑起来后用docker inspect确认ReadonlyRootfs是 trueCapDrop包含 ALL。docker inspect openclaw_secure --format {{.HostConfig.ReadonlyRootfs}} {{.HostConfig.CapDrop}} # 期望true [ALL]最后跑一次内置审计让它自动修可修的问题openclaw security audit --deep openclaw security audit --fix审计会检查入站策略、工具范围、网络暴露、文件权限、插件安全。如果它报gateway.host过宽或sandbox.mode不是 strict别跳过回去改。5. 本篇常见错排查报错一gateway auth failed: password not set原因auth_password引用的环境变量没导出或者变量名拼错。检查echo $OPENCLAW_GATEWAY_PASSWORD是否有值注意 config.toml 里用的是${VAR}语法不是$VAR。报错二沙箱模式下 Agent 报permission denied但任务本该能跑原因workspace路径权限不对或者allow_system_binaries false把必需的工具也禁了。先chmod 700workspace再确认任务需要的工具在allowed_tools里。别为了省事把allow_shell打开。报错三Docker 里 openClaw 启动即退出日志显示read-only file system原因read_only: true后需要写的目录没单独挂载。把日志、缓存、session 目录用:rw挂出来数据目录用:ro。别直接把根文件系统改成可写。报错四改了端口但ss还是显示旧端口原因openClaw 没重启或者有旧进程占着。pkill -f openclaw后重新openclaw start再ss -tlnp确认。报错五插件装了但没生效日志说plugin denied原因deny_all_by_default true时插件必须在allow列表里。把插件名完整写进去注意 scope 前缀比如openclaw/fs-reader不能简写成fs-reader。报错六API Key 在日志里出现明文原因logging.sanitize没开或者sensitive_fields没覆盖到你的字段名。把 Key 相关的字段名都加进去然后openclaw security audit --fix会帮你检查日志权限。6. 把安全变成日常动作配完这一套你的 openClaw 至少做到了Gateway 只监听本地、有认证、端口非默认沙箱强制开启、工具白名单、高危操作要确认Docker 只读根文件系统、去掉所有 capability、禁止提权。但安全不是一次性的是日常动作。每周跑一次openclaw security audit --deep看有没有新开的端口、新装的插件、权限变宽的目录。API Key 在 TaoToken 控制台设月度额度上限防止失控消耗。模型调用统一走 https://taotoken.net/api Key 只放环境变量配置文件权限锁 600。如果你还在用默认端口、默认监听、默认权限那确实不安全。但按上面这份骨架配一遍你就已经比大多数“养虾人”稳了。最后一句不存在完美安全的设置只有持续收敛的配置。从最小权限开始需要什么再开什么别反过来。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Dede模板选型指南:从0到1避坑,多少钱才能搞定? 2026/9/27 22:50:22

Dede模板选型指南:从0到1避坑,多少钱才能搞定?

Dede模板选型指南:从0到1避坑,多少钱才能搞定? 域名解析配错了,服务器环境没搭好,网站上线三天打不开,这是多少新手建站时的噩梦。很多人一上来就问 多少钱 ,却没搞懂 Dedecms(织梦)这套老牌 CMS…

阅读更多 →
专注高密网站建设选哪家好 2026/9/27 22:50:22

专注高密网站建设选哪家好

高密网站建设选哪家好?从零搭建到SEO霸屏实战指南 自己不会代码想做网站,却总被各种技术名词劝退?别慌。很多高密本地的老板和项目负责人都卡在这一步:想做个像样的企业官网或商城,怕被外包公司坑,又怕自己从零搭建太折腾。其实,只要搞懂逻辑,专注…

阅读更多 →
RK3588 方案定制开发全流程:从需求沟通到量产,每个环节在做什么 2026/9/27 22:50:16

RK3588 方案定制开发全流程:从需求沟通到量产,每个环节在做什么

RK3588 方案定制开发全流程:从需求沟通到量产,每个环节在做什么摘要:很多第一次做嵌入式定制的客户不清楚「方案定制」到底包含哪些环节、每个环节自己要配合什么。本文按真实项目节奏,把 RK3588 定制开发的 8 个环节逐一拆开讲清…

阅读更多 →
iOS 27正式推送:Siri AI英文先行,开发者该盯的其实是App Intents 2026/9/27 22:50:10

iOS 27正式推送:Siri AI英文先行,开发者该盯的其实是App Intents

北京时间 9 月 15 日凌晨,苹果开始推送 iOS 27 正式版(美东时间是 9 月 14 日),iPadOS 27、macOS 27 等平台同步更新。这一版最大的看点不是界面,而是拖了两年多的新一代 Siri AI 终于以测试版形式落地:它基…

阅读更多 →
学了半年网安还挖不到洞?不是你不努力,是这5个认知误区在拖你后腿 2026/9/27 22:50:09

学了半年网安还挖不到洞?不是你不努力,是这5个认知误区在拖你后腿

有一类人很典型:学了半年网安,SQL注入会背、XSS会讲、工具也装了一堆——但一上靶场,还是不知道从哪下手。 于是得出结论:“我是不是不适合这行?” 我的判断恰恰相反:你不是不努力,是努力的方向…

阅读更多 →
小区宠物智能管理监控系统:从品种识别到风险预测的全链路实践 2026/9/27 22:50:09

小区宠物智能管理监控系统:从品种识别到风险预测的全链路实践

背景 随着城市社区宠物数量增长,物业管理面临三大痛点:1. 品种识别难 — 巡查人员无法快速判断宠物品种,难以执行品种管理规定2. 行为监控难 — 散养、扰民、伤人等事件缺乏实时记录与追溯3. 主人管理难 — 不文明养宠行为(不牵绳…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉