我整理了 OpenClaw 官方安全文档,发现这 10 条建议很重要
我整理了 OpenClaw 官方安全文档,发现这 10 条建议很重要
作为 OpenClaw 用户,我仔细阅读了官方安全文档,发现很多用户可能忽略了这些重要的安全配置。今天整理出来,希望能帮助大家安全使用 AI 助手。
📢 为什么写这篇文章?
OpenClaw 作为自托管 AI 助手框架,近年来快速流行。它赋予用户强大的自动化能力:
• 🤖 AI 代理 – 自主执行复杂任务
• 🔧 技能扩展 – 60+ 官方技能,数万个社区技能
• 🌐 多渠道集成 – 微信、飞书、Discord、Slack 等
• ⚙️ 深度自动化 – 定时任务、文件操作、API 调用
但强大的能力也意味着风险:
• ❌ 配置不当可能导致敏感信息泄露
• ❌ 权限过大可能造成意外数据损坏
• ❌ 共享使用可能带来信任边界模糊
• ❌ 网络暴露可能引发未授权访问
我花了时间仔细阅读了 OpenClaw 官方安全文档,结合自己的实践经验,整理了这份安全指南,帮你安全养龙虾!🦞
🔒 核心安全原则
1. 最小权限原则
只给 AI 必要的权限,不要过度授权。
❌ 错误做法:
{
"groupPolicy": "open", // 允许所有人访问
"tools": {
"profile": "full" // 启用所有工具
}
}✅ 正确做法:
{
"groupPolicy": "allowlist", // 白名单模式
"tools": {
"profile": "minimal" // 最小工具集
}
}2. 敏感信息管理
永远不要明文存储密码、API Key、Token!
❌ 错误做法:
{
"channels": {
"feishu": {
"appSecret": "8ceb50283ac0cda2634180107c126ebf" // 明文密码
}
}
}✅ 正确做法:
{
"channels": {
"feishu": {
"appSecret": "{{secret:feishu_app_secret}}" // SecretRef 引用
}
}
}使用 SecretRef 管理敏感信息:
# 1. 配置 Secret 提供者
openclaw secrets configure
# 2. 审计现有配置
openclaw secrets audit --check
# 3. 重新加载 Secret
openclaw secrets reload
3. 网络暴露控制
不要将 Gateway 直接暴露在公网!
❌ 危险配置:
{
"gateway": {
"bind": "0.0.0.0", // 监听所有网卡
"auth": {
"mode": "none" // 无认证
}
}
}✅ 安全配置:
{
"gateway": {
"bind": "127.0.0.1", // 仅本地访问
"auth": {
"mode": "shared-secret" // 共享密钥认证
}
}
}如需远程访问:
• 使用 SSH 隧道
• 通过反向代理(Nginx/Caddy)
• 配置防火墙规则
• 启用 HTTPS
🛡️ 安全审计清单
步骤 1:运行安全审计
# 快速审计
openclaw security audit
# 深度审计
openclaw security audit --deep
# 输出 JSON(用于 CI/CD)
openclaw security audit --json
审计会检查:
• ✅ 群组策略是否过于开放
• ✅ 敏感文件权限是否正确
• ✅ 日志是否启用脱敏
• ✅ 工具权限是否合理
• ✅ Sandbox 配置是否启用
• ✅ Webhook 会话密钥是否配置
步骤 2:自动修复常见问题
# 自动应用安全修复
openclaw security audit --fix--fix 会做什么:
• ✅ groupPolicy="open" → groupPolicy="allowlist"
• ✅ logging.redactSensitive="off" → logging.redactSensitive="tools"
• ✅ 收紧敏感文件权限(chmod 600)
--fix 不会做什么:
• ❌ 不会轮换 Token/密码/API Key
• ❌ 不会禁用工具(gateway、cron、exec 等)
• ❌ 不会更改 Gateway 绑定/认证/网络配置
• ❌ 不会删除插件或技能
步骤 3:检查 Secret 配置
# 审计 Secret 配置
openclaw secrets audit --check
# 如果有问题,退出码为 1
echo $? # 0=干净,1=发现问题,2=未解析引用
检查项目:
• 明文存储的敏感信息
• 未解析的 Secret 引用
• 配置文件优先级冲突
• 历史残留的敏感数据
🚨 高危风险警示
风险 1:共享会话导致信息泄露
场景: 多人共用一个 OpenClaw 实例,DM 消息可能被他人看到。
解决方案:
{
"session": {
"dmScope": "per-channel-peer" // 每个频道独立会话
}
}适用场景:
• ✅ 共享收件箱
• ✅ 团队协作
• ✅ 多客服系统
不适用场景:
• ❌ 互不信任的多用户环境 → 应该部署独立 Gateway
风险 2:Sandbox 未启用导致文件系统暴露
场景: AI 可以访问任意文件,可能误删或泄露敏感数据。
解决方案:
{
"sandbox": {
"enabled": true,
"workspace": "/root/.openclaw/workspace",
"readOnlyPaths": ["/etc", "/usr"],
"blockedCommands": ["rm", "dd", "mkfs"]
}
}最佳实践:
• 启用 Docker Sandbox
• 限制工作目录范围
• 阻止危险命令(rm、dd、mkfs 等)
• 使用只读挂载保护系统文件
风险 3:Webhook 会话密钥未配置
场景: 攻击者可以伪造 Webhook 请求,劫持会话。
解决方案:
{
"hooks": {
"defaultSessionKey": "your-secret-key-here",
"allowedSessionKeyPrefixes": ["agent:", "webhook:"]
}
}检查命令:
openclaw security audit | grep "hooks.defaultSessionKey"风险 4:Gateway 无认证模式
场景: gateway.auth.mode="none" 导致 API 无保护
风险: 任何人都可以调用 /tools/invoke 等接口
解决方案:
{
"gateway": {
"auth": {
"mode": "shared-secret"
}
}
}风险 5:小模型 + 浏览器工具 = 高风险
场景: 使用小模型(≤300B)但未启用 Sandbox,同时开放浏览器工具。
风险: 小模型容易被注入攻击,浏览器工具可能被滥用。
解决方案:
{
"model": {
"default": "qwen3.5-plus" // 使用可靠模型
},
"sandbox": {
"enabled": true // 必须启用 Sandbox
},
"tools": {
"browser": {
"enabled": false // 或限制访问范围
}
}
}📋 安全配置模板
家庭/工作站平衡模式(推荐)
适合个人用户和小型团队:
{
"gateway": {
"bind": "127.0.0.1",
"auth": {
"mode": "shared-secret"
}
},
"groupPolicy": "allowlist",
"logging": {
"redactSensitive": "tools"
},
"sandbox": {
"enabled": true,
"workspace": "/root/.openclaw/workspace"
},
"tools": {
"profile": "minimal"
},
"session": {
"dmScope": "per-channel-peer"
}
}VPS 强化模式
适合部署在云服务器的场景:
{
"gateway": {
"bind": "0.0.0.0",
"auth": {
"mode": "shared-secret"
},
"tls": {
"enabled": true,
"certPath": "/etc/ssl/certs/openclaw.crt",
"keyPath": "/etc/ssl/private/openclaw.key"
}
},
"groupPolicy": "allowlist",
"sandbox": {
"enabled": true,
"docker": {
"network": "bridge",
"readOnly": true
}
},
"tools": {
"profile": "minimal",
"blockedTools": ["exec", "browser"]
},
"firewall": {
"allowedPorts": [443],
"blockedIPs": []
}
}配合防火墙规则:
# 仅允许 HTTPS
ufw default deny incoming
ufw allow 443/tcp
ufw enable开发者便利模式
适合本地开发环境:
{
"gateway": {
"bind": "127.0.0.1",
"auth": {
"mode": "shared-secret"
}
},
"groupPolicy": "open", // 开发环境可放宽
"sandbox": {
"enabled": false // 本地开发可禁用
},
"tools": {
"profile": "full"
},
"logging": {
"level": "debug"
}
}⚠️ 警告: 此配置仅限本地开发,不要用于生产环境!
🔍 安全检查命令速查
日常检查
# 查看安全状态
openclaw security audit
# 检查 Secret 配置
openclaw secrets audit --check
# 查看 Gateway 状态
openclaw gateway status
# 检查备份状态
openclaw backup status
定期维护
# 每周执行一次
openclaw security audit --fix
openclaw secrets reload
openclaw update statusCI/CD 集成
# 在 CI 中检查安全配置
openclaw security audit --json | jq '.summary.findings'
openclaw secrets audit --check || exit 1🎯 安全养龙虾 10 条军规
1. 永远使用 SecretRef – 不要明文存储密码
2. 启用 Sandbox – 限制 AI 的文件系统访问
3. 最小权限原则 – 只给必要的工具权限
4. 白名单模式 – groupPolicy 设为 allowlist
5. 本地绑定 – Gateway 绑定 127.0.0.1
6. 启用认证 – 至少使用 shared-secret
7. 日志脱敏 – redactSensitive 设为 tools
8. 定期审计 – 每周运行 security audit
9. 及时更新 – 保持 OpenClaw 最新版本
10. 备份配置 – 定期备份重要配置和会话
📚 资源链接
• OpenClaw 安全指南: https://docs.openclaw.ai/gateway/security
• Secret 管理文档: https://docs.openclaw.ai/gateway/secrets
• Sandbox 配置: https://docs.openclaw.ai/cli/sandbox
• 安全审计工具: openclaw security audit
• 社区 Discord: https://discord.com/invite/clawd
🆘 遇到问题?
常见问题
Q1: 安全审计报错了怎么办?
# 查看详细信息
openclaw security audit --deep
# 自动修复
openclaw security audit --fix
# 如果还有问题,查看具体错误信息
openclaw security audit --json | jq '.findings[]'
Q2: SecretRef 不生效?
# 检查配置
openclaw secrets audit
# 重新加载
openclaw secrets reload
# 查看 Gateway 日志
openclaw logs
Q3: Sandbox 启用后某些功能失效?
# 检查工作目录权限
ls -la ~/.openclaw/workspace
# 调整 Sandbox 配置
# 添加必要的工作目录到白名单
Q4: 多人协作如何保证安全?
• 使用独立 Gateway 实例
• 配置会话隔离(dmScope)
• 限制敏感工具访问
• 定期审计日志
🎉 结语
安全不是一次性的配置,而是持续的过程。
记住:
• 🦞 养龙虾需要耐心,安全配置也需要
• 🛡️ 每道防线都有价值,不要跳过任何一步
• 📊 定期审计,及时发现潜在问题
• 🔄 保持更新,修复已知漏洞
安全养龙虾,从遵守最佳实践开始
夜雨聆风