OpenClaw 安全加固完全指南
API密钥是AI时代的数字黄金,泄露可能导致巨额损失。本文梳理OpenClaw安全配置方案,从密钥管理到权限控制,全方位守护AI资产。一、为什么 OpenClaw 安全如此重要?
OpenClaw(龙虾)作为一款开源 AI 智能体框架,具备系统指令执行、文件读写、API 调用等高权限能力。这意味着:
✅ 它能帮你高效完成复杂任务 ⚠️ 一旦配置不当,也可能成为安全隐患
真实风险案例
二、API 密钥安全管理:第一道防线
2.1 密钥存储的黄金法则
❌ 绝对不要这样做:将密钥硬编码在代码中 把密钥明文保存在配置文件里 在日志中打印密钥 通过不安全的渠道传输密钥
#### 方案一:使用系统密钥管理工具(推荐)
macOS - Keychain:# 存储密钥 security add-generic-password -s "openclaw-openai" -a "user" -w "sk-xxx" 读取密钥
security find-generic-password -s "openclaw-openai" -w Linux - Secret Service / GNOME Keyring:# 使用 secret-tool secret-tool store --label="OpenClaw OpenAI" provider openai key api-key secret-tool lookup provider openai key api-key Windows - Credential Manager: ```powershell 使用 PowerShell
$credential = Get-Credential -Message "Enter API Key" $credential.Password | ConvertFrom-SecureString | Set-Content api_key.txt ```#### 方案二:环境变量管理
# .zshrc 或 .bashrc 中设置 export OPENAI_API_KEY="sk-xxx" export ANTHROPIC_API_KEY="sk-ant-xxx" export ZHIPU_API_KEY="xxx" 使用 direnv 按项目隔离
在项目根目录创建 .envrc
echo 'export OPENAI_API_KEY="sk-xxx"' .envrc direnv allow #### 方案三:专用密钥管理工具
| 1Password | ||
| Bitwarden | ||
| HashiCorp Vault | ||
| AWS Secrets Manager |
2.2 OpenClaw 配置中的密钥安全
查看你的 `~/.openclaw/openclaw.json`,检查以下安全要点:
🔍 安全检查清单:[ ] 配置文件权限是否为 `600`(仅所有者可读写) [ ] 是否使用了环境变量引用而非明文存储 [ ] 是否启用了密钥轮换机制 [ ] 是否禁用了不必要的模型提供商
{ "models": { "providers": { "openai": { "apiKey": "${OPENAI_API_KEY}", "baseUrl": "https://api.openai.com/v1" }, "anthropic": { "apiKey": "${ANTROPIC_API_KEY}", "baseUrl": "https://api.anthropic.com" } } } } 设置文件权限:chmod 600 ~/.openclaw/openclaw.json chmod 700 ~/.openclaw 2.3 密钥泄露应急处理
如果发现密钥可能泄露,立即执行:1. 立即撤销密钥
登录各模型提供商控制台 删除/禁用泄露的密钥 生成新密钥
查看 API 调用记录 确认是否有异常消费
替换所有使用该密钥的配置文件 重启相关服务
检查系统日志 确认泄露范围和影响
三、权限控制:最小权限原则
3.1 系统权限配置
❌ 禁止以 root 或管理员身份运行 OpenClaw# 创建专用用户 sudo useradd -m -s /bin/bash openclaw sudo usermod -aG docker openclaw # 如果需要 Docker 权限 切换用户运行
sudo su - openclaw 3.2 OpenClaw 内置权限控制
OpenClaw 支持多层次的权限控制:
#### 工具调用权限
在 `~/.openclaw/agents/main/agent/config.json` 中配置:
{ "permissions": { "tools": { "file_read": true, "file_write": ["/home/user/projects/", "/tmp/"], "shell_execute": false, "web_search": true, "api_call": ["https://api.github.com/", "https://api.openai.com/"] } } } #### 网络访问控制
{ "network": { "allowHosts": [ "api.openai.com", "api.anthropic.com", "github.com" ], "blockHosts": [ "*", "!api.openai.com", "!api.anthropic.com" ] } } 3.3 技能(Skill)安全审查
安装技能前,务必审查:
🔍 技能安全检查清单:[ ] 来源是否可信(官方仓库 / 知名开发者) [ ] 代码是否开源可审计 [ ] 请求的权限是否合理 [ ] 是否有恶意代码(检查网络请求、文件操作) [ ] 社区评价如何
# 先查看技能详情 openclaw skill info skill-name 检查技能权限要求
openclaw skill inspect skill-name 在隔离环境测试
openclaw skill install --sandbox skill-name 四、网络安全:防止外部攻击
4.1 本地部署安全
如果你将 OpenClaw 作为服务运行:
# 仅绑定本地地址,禁止外部访问 openclaw server --host 127.0.0.1 --port 8080 如需外部访问,使用反向代理 + HTTPS
Nginx 配置示例
server { listen 443 ssl; server_name openclaw.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 4.2 防火墙配置
# UFW (Ubuntu) sudo ufw default deny incoming sudo ufw allow from 192.168.1.0/24 to any port 8080 sudo ufw enable firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="8080" protocol="tcp" accept' sudo firewall-cmd --reload 4.3 使用 VPN/内网穿透
如需远程访问,优先考虑:
- WireGuard
:轻量级 VPN - Tailscale
:零配置组网 - Cloudflare Tunnel
:无需开放端口
五、数据安全与隐私保护
5.1 对话历史管理
# 查看对话存储位置 ls ~/.openclaw/conversations/ 定期清理历史记录
openclaw conversation clear --older-than 30d 禁用云端同步(如使用)
openclaw config set sync.enabled false 5.2 敏感数据处理
在 OpenClaw 中处理敏感数据的最佳实践:1. 使用本地模型
{ "models": { "providers": { "local": { "baseUrl": "http://localhost:11434/v1", "apiKey": "dummy", "models": ["llama3.3:70b"] } } } } 2. 启用数据脱敏
{ "privacy": { "maskPII": true, "maskPatterns": [ "\\b\\d{18}\\b", // 身份证号 "\\b1[3-9]\\d{9}\\b", // 手机号 "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b" // 邮箱 ] } } 3. 敏感操作二次确认
{ "safety": { "confirmDestructiveActions": true, "confirmFileDelete": true, "confirmShellExecution": true } } 六、审计与监控
6.1 启用操作日志
{ "logging": { "level": "info", "file": "~/.openclaw/logs/openclaw.log", "maxSize": "100MB", "maxBackups": 10, "audit": { "enabled": true, "events": ["tool_call", "file_access", "config_change"] } } } 6.2 定期安全审计
每月执行一次的安全检查:#!/bin/bash openclaw-security-audit.sh
echo "=== OpenClaw 安全审计 ==="
检查配置文件权限
echo "1. 检查配置文件权限..." ls -la ~/.openclaw/openclaw.json 检查密钥是否明文存储
echo "2. 检查密钥存储方式..." grep -n "sk-" ~/.openclaw/openclaw.json || echo "✓ 未发现明文密钥" 检查已安装技能
echo "3. 检查已安装技能..." openclaw skill list 检查日志中的异常
echo "4. 检查近期异常..." tail -n 100 ~/.openclaw/logs/openclaw.log | grep -i "error\|warning\|failed" 检查网络连接
echo "5. 检查网络连接..." netstat -tulpn | grep openclaw echo "=== 审计完成 ===" 七、安全配置速查表
7.1 生产环境最小安全配置
{ "security": { "production": true, "autoUpdate": false, "allowUnsignedSkills": false, "sandboxEnabled": true }, "permissions": { "tools": { "shell_execute": false, "file_write": [], "network": { "mode": "whitelist", "allowedHosts": [] } } }, "logging": { "level": "warn", "audit": { "enabled": true } } } 7.2 开发环境推荐配置
{ "security": { "production": false, "autoUpdate": true, "allowUnsignedSkills": true, "sandboxEnabled": false }, "permissions": { "tools": { "shell_execute": true, "file_write": ["${HOME}/projects/*"], "network": { "mode": "blacklist", "blockedHosts": [] } } } } 八、总结:安全是持续的过程
OpenClaw 的安全不是一次配置就万事大吉,而是需要:
1. 定期审查:每月检查配置和权限 2. 及时更新:关注安全公告,及时升级 3. 最小权限:只给必要的权限 4. 密钥轮换:定期更换 API 密钥 5. 监控告警:设置异常行为告警
记住:安全是每个人的责任。再好的工具,也需要正确的使用方式。参考资料
CNCERT OpenClaw 安全使用实践指南 OpenClaw 官方安全文档 OWASP API 安全 Top 10
夜雨聆风