OpenClaw Linux 教程OpenClaw Linux 教程
首页
基础教程
最佳实践
OpenClaw 官网
编程指南
首页
基础教程
最佳实践
OpenClaw 官网
编程指南
  • 最佳实践

    • 🚀 最佳实践
    • 第1章 - 远程 Gateway 部署
    • 第2章 - 安全加固
    • 第3章 - 多 Agent 路由
    • 第4章 - 自动化工作流
    • 第5章 - 故障排除

第2章 - 安全加固

嗨,朋友!安全是运行 OpenClaw 最重要的事情之一。毕竟,OpenClaw 拥有执行 Shell 命令、读写文件的能力——如果配置不当,后果可能很严重。这一章我来帮你把安全做到位。

🤔 为什么安全这么重要?

OpenClaw 连接的是真实的消息平台。这意味着:

  • 陌生人可能通过聊天应用给你的 Bot 发消息
  • AI 有能力在你的服务器上执行任何命令
  • 不当配置可能导致 API Key 被滥用

核心原则

将所有入站 DM 视为不可信输入。

🔐 DM 安全策略

默认策略:Pairing(配对)

OpenClaw 默认使用 pairing 策略,这是最安全的方式:

陌生人发消息 → Bot 返回配对码 → 你手动批准 → 用户加入白名单
{
  "channels": {
    "telegram": {
      "dmPolicy": "pairing"
    },
    "discord": {
      "dmPolicy": "pairing"
    },
    "whatsapp": {
      "dmPolicy": "pairing"
    }
  }
}

管理配对请求

# 查看所有配对请求
openclaw pairing list

# 批准特定请求
openclaw pairing approve telegram <配对码>

# 拒绝请求
openclaw pairing reject telegram <配对码>

策略对比

策略行为安全性适用场景
pairing需配对码确认🔒🔒🔒个人使用(默认)
open允许所有人⚠️公共服务(谨慎使用)

重要

永远不要在没有其他安全措施的情况下使用 open 策略。如果必须使用,至少要配合白名单:

{
  "channels": {
    "telegram": {
      "dmPolicy": "open",
      "allowFrom": ["特定用户ID"]
    }
  }
}

🏖️ 沙箱隔离

OpenClaw 支持 Docker 沙箱,可以限制非主会话的权限。

为什么需要沙箱?

  • 主会话(你自己):完整权限,可以执行任何操作
  • 非主会话(群组、其他渠道):应该限制权限,防止滥用

配置沙箱

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main"
      }
    }
  }
}

mode: "non-main" 表示非主会话的 bash 命令会在 Docker 容器中运行。

沙箱权限

工具沙箱内说明
bash✅ 允许(Docker 内)命令在容器中执行
read / write / edit✅ 允许文件操作
sessions_*✅ 允许会话管理
browser❌ 禁止浏览器控制
canvas❌ 禁止画布操作
cron❌ 禁止定时任务
nodes❌ 禁止设备节点

安装 Docker(沙箱依赖)

# 安装 Docker
curl -fsSL https://get.docker.com | sh

# 将 openclaw 用户添加到 docker 组
sudo usermod -aG docker openclaw

# 重新登录使生效
su - openclaw

# 验证
docker run hello-world

🔒 Gateway 安全配置

1. 绑定地址

永远保持 Gateway 绑定在本地:

{
  "gateway": {
    "bind": "127.0.0.1"
  }
}

绝对不要

{
  "gateway": {
    "bind": "0.0.0.0"
  }
}

这会把 Gateway 暴露到公网!

2. 认证模式

如果使用 Tailscale Funnel 或其他公开访问方式,必须设置密码:

{
  "gateway": {
    "auth": {
      "mode": "password"
    }
  }
}

3. Tailscale 安全

{
  "gateway": {
    "tailscale": {
      "mode": "serve",
      "resetOnExit": true
    }
  }
}
  • serve 模式仅 Tailnet 内部可访问,使用 Tailscale 身份认证
  • resetOnExit 在 Gateway 关闭时撤销 Tailscale 配置

🛡️ 系统级安全

1. 防火墙配置

# 安装 ufw(如果没有)
sudo apt install -y ufw

# 允许 SSH
sudo ufw allow ssh

# 不要开放 Gateway 端口(18789)到外网
# Gateway 只应通过 SSH 隧道或 Tailscale 访问

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status

2. SSH 安全加固

# 禁用密码登录,只允许密钥认证
sudo tee -a /etc/ssh/sshd_config << 'EOF'
PasswordAuthentication no
PermitRootLogin no
EOF

# 重启 SSH
sudo systemctl restart sshd

3. 自动安全更新

# 安装自动更新
sudo apt install -y unattended-upgrades

# 启用
sudo dpkg-reconfigure -plow unattended-upgrades

🔍 安全检查清单

定期运行以下检查:

# OpenClaw 安全检查
openclaw doctor

# 检查 DM 策略是否安全
# doctor 会警告不安全的配置

# 检查 Gateway 是否只监听本地
ss -tlnp | grep 18789
# 应该只看到 127.0.0.1:18789

# 检查防火墙状态
sudo ufw status

# 检查异常登录
last -10

📋 安全最佳实践总结

  1. DM 策略:保持 pairing 模式,不要用 open
  2. Gateway 绑定:只绑定 127.0.0.1,不要 0.0.0.0
  3. 远程访问:使用 SSH 隧道或 Tailscale,不要直接暴露端口
  4. 沙箱:非主会话启用 Docker 沙箱
  5. 用户隔离:用普通用户运行 OpenClaw,不要用 root
  6. API Key:妥善保管,不要泄露
  7. 系统更新:定期更新系统和 OpenClaw
  8. 防火墙:只开放必要端口(SSH)
  9. SSH 加固:禁用密码登录,使用密钥认证
  10. 定期检查:运行 openclaw doctor 和安全审计

💪 练习题

  1. OpenClaw 的默认 DM 策略是什么?为什么这是最安全的选择?
  2. 什么是沙箱模式?它保护了什么?
  3. 列举 5 条你认为最重要的安全措施。

答案提示

  1. 默认是 pairing,因为它要求每个新用户都经过你的手动批准才能使用 Bot
  2. 沙箱将非主会话的 bash 命令在 Docker 容器中执行,防止群组/渠道中的陌生人在你的主机上执行危险命令
  3. 参考安全最佳实践总结中的任意 5 条

下一步: 第3章 - 多 Agent 路由 →

最近更新: 2026/2/28 09:29
Contributors: 王长安
Prev
第1章 - 远程 Gateway 部署
Next
第3章 - 多 Agent 路由