OpenClaw安全配置最佳实践:2026年最新安全加固指南

AI工具4个月前发布 yizz
8,083 0 0

OpenClaw作为自托管的AI网关,存储了你的对话数据、API密钥、聊天应用凭证等敏感信息,安全配置至关重要。本文将详细介绍OpenClaw的安全配置最佳实践,帮助你加固系统,防范各种安全风险。

安全风险分析

OpenClaw可能面临的安全风险:
1. 未授权访问:攻击者通过漏洞获取网关访问权限
2. 数据泄露:对话记录、API密钥、用户凭证等敏感信息泄露
3. 权限滥用:AI被诱导执行危险的系统命令
4. 供应链攻击:恶意技能或依赖包包含后门
5. 网络攻击:网关端口暴露在公网被攻击

基础安全配置

1. 网络访问控制

不要直接暴露网关端口到公网

❌ 错误做法:直接将18789端口映射到公网,任何人都可以访问
✅ 正确做法:
– 使用Tailscale或其他VPN访问,仅允许可信设备连接
– 放在内网,通过SSH隧道访问
– 必须暴露公网时,配置Nginx反向代理+Basic Auth+HTTPS

Nginx反向代理配置示例

server {
    listen 443 ssl;
    server_name openclaw.yourdomain.com;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    # 基础认证
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;

    # 限制IP访问
    allow 192.168.1.0/24;  # 允许内网
    allow your_public_ip;    # 允许你的公网IP
    deny all;

    location / {
        proxy_pass http://127.0.0.1:18789;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

2. 访问权限配置

配置用户白名单

默认情况下OpenClaw的DM配对机制会阻止未知用户访问,建议显式配置允许的用户列表:

{
  "channels": {
    "whatsapp": {
      "allowFrom": ["+8613800138000", "+8613900139000"],
      "dmPolicy": "pairing"
    },
    "telegram": {
      "allowFrom": ["123456789", "987654321"],
      "dmPolicy": "pairing"
    },
    "discord": {
      "allowFrom": ["123456789012345678"],
      "dmPolicy": "pairing"
    }
  }
}

群组安全配置

如果在群组中使用,建议配置必须@才会响应:

{
  "messages": {
    "groupChat": {
      "requireMention": true,
      "mentionPatterns": ["@openclaw"]
    }
  }
}

3. 沙箱配置

为了防止AI执行危险操作,建议启用非主会话的沙箱模式:

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowedTools": ["read", "write", "web_fetch"],
        "deniedTools": ["exec", "process", "system"]
      }
    }
  }
}

这样群组和未知用户的会话只能使用有限的工具,无法执行系统命令。

工具权限控制

限制exec工具权限

exec工具可以执行系统命令,权限很高,建议限制使用:

{
  "tools": {
    "exec": {
      "enabled": true,
      "allowedCommands": ["ls", "cat", "grep"],  # 只允许执行指定命令
      "deniedCommands": ["rm", "dd", "mkfs", "shutdown", "reboot"],  # 禁止危险命令
      "requireConfirmation": true  # 执行前需要用户确认
    }
  }
}

文件系统访问限制

限制AI可以访问的目录,防止读取敏感文件:

{
  "tools": {
    "read": {
      "allowedPaths": ["/root/.openclaw/workspace", "/tmp"],
      "deniedPaths": ["/root/.ssh", "/root/.aws", "/etc", "*/secret*", "*/key*", "*/password*"]
    },
    "write": {
      "allowedPaths": ["/root/.openclaw/workspace", "/tmp"],
      "deniedPaths": ["/etc", "/usr", "/bin", "/sbin"]
    }
  }
}

浏览器工具安全配置

{
  "tools": {
    "browser": {
      "enabled": true,
      "allowFileAccess": false,  # 禁止浏览器访问本地文件
      "blockedUrls": ["*://*.internal/*", "*://192.168.*/*", "*://10.*/*"],  # 禁止访问内网地址
      "requireConfirmationForUrls": ["*://bank.com/*", "*://payment.*"]  # 访问敏感网站需要确认
    }
  }
}

技能安全

只安装可信来源的技能

  • 优先安装官方和经过社区验证的技能
  • 安装第三方技能前要审查代码,确认没有恶意行为
  • 不要安装功能不明的技能

技能权限配置

每个技能都可以配置独立的权限:

{
  "skills": {
    "github": {
      "enabled": true,
      "permissions": {
        "read": true,
        "write": false,  # 禁止写入操作,只能查询
        "delete": false
      },
      "allowedRepos": ["your-username/*"]  # 只允许访问你的仓库
    }
  }
}

定期更新技能

及时更新技能修复安全漏洞:

# 列出已安装的技能
openclaw skills list

# 更新所有技能
openclaw skills update

# 更新指定技能
openclaw skills update github

数据安全

敏感信息加密存储

OpenClaw的配置文件中包含很多敏感信息,建议设置严格的权限:

# 配置文件权限设置为仅所有者可读
chmod 600 ~/.openclaw/openclaw.json
chmod 600 ~/.openclaw/credentials/*.json

# 目录权限设置
chmod 700 ~/.openclaw

定期备份

定期备份配置和数据:

# 备份脚本示例
#!/bin/bash
BACKUP_DIR="/backup/openclaw"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR

# 备份配置文件
tar -zcvf $BACKUP_DIR/config_$DATE.tar.gz ~/.openclaw/*.json ~/.openclaw/credentials

# 备份工作区
tar -zcvf $BACKUP_DIR/workspace_$DATE.tar.gz ~/.openclaw/workspace

# 删除30天前的备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete

日志审计

启用详细日志,定期审计操作记录:

{
  "logging": {
    "level": "info",
    "file": "/var/log/openclaw/gateway.log",
    "auditLog": true,  # 启用审计日志,记录所有工具调用和操作
    "maxSize": "100M",
    "maxFiles": 30
  }
}

审计日志会记录所有工具调用、用户消息、AI响应,方便出现安全问题时溯源。

系统层面安全

运行在专用用户下

不要用root用户运行OpenClaw,创建专用用户:

# 创建专用用户
useradd -m openclaw

# 赋予必要的权限
usermod -aG docker openclaw  # 如果需要使用docker

# 切换用户运行
su - openclaw -c "openclaw gateway --port 18789"

系统更新和漏洞修复

定期更新系统和依赖:

# 更新系统包
apt update && apt upgrade -y

# 更新Node.js到最新LTS版本
nvm install --lts

# 更新OpenClaw到最新版本
npm install -g openclaw@latest

主机安全加固

  • 配置防火墙,只开放必要的端口
  • 禁用SSH密码登录,使用密钥登录
  • 安装fail2ban,防止暴力破解
  • 定期扫描系统漏洞

高级安全特性

操作确认机制

对于高风险操作,开启确认机制:

{
  "security": {
    "requireConfirmation": [
      "exec.*",  # 所有exec操作
      "write.*/etc/.*",  # 写入/etc目录
      "delete.*",  # 所有删除操作
      "browser.*bank.*"  # 浏览器访问银行网站
    ]
  }
}

配置后,AI执行这些操作前会先向你确认,得到同意后才会执行。

内容安全过滤

开启内容过滤,防止AI生成违法违规内容,也防止用户诱导AI做危险操作:

{
  "security": {
    "contentFilter": {
      "enabled": true,
      "blockedKeywords": ["rm -rf /", "dd if=", "mkfs", "删除系统文件", "执行危险命令"],
      "blockedActions": ["获取密码", "导出密钥", "发送数据到外部"]
    }
  }
}

多因素认证

对于Web控制面板,开启多因素认证:

{
  "web": {
    "auth": {
      "mode": "password+2fa",
      "username": "admin",
      "password_hash": "bcrypt哈希后的密码",
      "2fa_secret": "TOTP密钥"
    }
  }
}

安全检查清单

定期进行安全检查,确认以下配置正确:
– [ ] 网关没有直接暴露在公网
– [ ] 已配置用户白名单,未知用户无法访问
– [ ] 启用了沙箱模式,限制非信任会话的权限
– [ ] 敏感系统命令已被禁止或需要确认
– [ ] 文件访问限制已配置,防止读取敏感文件
– [ ] 仅安装了必要的、可信的技能
– [ ] 配置文件权限正确,敏感信息已加密
– [ ] 定期备份机制已配置
– [ ] 审计日志已开启
– [ ] 使用非root用户运行OpenClaw
– [ ] 系统和OpenClaw已更新到最新版本

应急响应

如果发现系统可能被入侵:
1. 立即停止OpenClaw服务
2. 备份当前日志和配置,用于溯源
3. 检查是否有异常操作、未知技能或可疑进程
4. 更换所有API密钥和凭证
5. 修复漏洞后重新部署
6. 必要时报警处理

总结

安全是自托管系统的生命线,OpenClaw虽然功能强大,但如果配置不当也会带来安全风险。按照本文的最佳实践进行配置,可以防范绝大多数安全威胁。记住,安全是一个持续的过程,需要定期检查和更新配置,才能保证系统的安全稳定运行。

更多安全配置细节可以参考官方文档:https://docs.openclaw.ai/gateway/security

© 版权声明

相关文章