ClawSkills logoClawSkills

Moltbot Security

AI 代理的安全加固 - Moltbot、OpenClaw、Cursor、Claude。锁定网关、修复权限、身份验证、防火墙。对于 vibe-coding 设置至关重要。

介绍

# Moltbot Security Guide

您的 Moltbot 网关是为本地使用而设计的。如果在没有适当安全措施的情况下暴露在互联网上,攻击者可以访问您的 API 密钥、私人消息和完整的系统访问权限。

**基于:** 真实的漏洞研究,该研究在 Shodan 上发现了 1,673 多个暴露的 OpenClaw/Moltbot 网关。

---

## 概要 - 5 个基本要素

1. **绑定到环回接口** — 永远不要将网关暴露到公共互联网 2. **设置认证令牌** — 要求所有请求都必须经过身份验证 3. **修复文件权限** — 只有您应该能读取配置文件 4. **更新 Node.js** — 使用 v22.12.0+ 以避免已知漏洞 5. **使用 Tailscale** — 安全的远程访问,无需公开暴露

---

## 暴露的内容(真实风险)

当您的网关可以被公开访问时: - 完整的对话历史记录(Telegram, WhatsApp, Signal, iMessage) - Claude、OpenAI 和其他提供商的 API 密钥 - OAuth 令牌和机器人凭证 - 对主机系统的完整 Shell 访问权限

**提示注入攻击示例:** 攻击者向您发送一封包含隐藏指令的电子邮件。您的 AI 读取它,提取您最近的电子邮件,并将摘要转发给攻击者。无需任何黑客技术。

---

## 快速安全审计

运行此命令以检查您当前的安全状况:

```bash openclaw security audit --deep ```

自动修复问题:

```bash openclaw security audit --deep --fix ```

---

## 第 1 步:仅将网关绑定到环回接口

**作用:** 防止网关接受来自其他机器的连接。

检查您的 `~/.openclaw/openclaw.json`:

```json { "gateway": { "bind": "loopback" } } ```

**选项:** - `loopback` — 仅可从本地主机访问(最安全) - `lan` — 仅可从本地网络访问 - `auto` — 绑定到所有接口(如果暴露则有危险)

---

## 第 2 步:设置身份验证

**选项 A:令牌认证(推荐)**

生成一个安全令牌:

```bash openssl rand -hex 32 ```

添加到您的配置:

```json { "gateway": { "auth": { "mode": "token", "token": "your-64-char-hex-token-here" } } } ```

或通过环境变量设置:

```bash export CLAWDBOT_GATEWAY_TOKEN="your-secure-random-token-here" ```

**选项 B:密码认证**

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

然后:

```bash export CLAWDBOT_GATEWAY_PASSWORD="your-secure-password-here" ```

---

## 第 3 步:锁定文件权限

**作用:** 确保只有您可以读取敏感的配置文件。

```bash chmod 700 ~/.openclaw chmod 600 ~/.openclaw/openclaw.json chmod 700 ~/.openclaw/credentials ```

**权限含义:** - `700` = 只有所有者可以访问文件夹 - `600` = 只有所有者可以读/写文件

或者让 OpenClaw 修复它:

```bash openclaw security audit --fix ```

---

## 第 4 步:禁用网络广播

**作用:** 停止 OpenClaw 通过 mDNS/Bonjour 宣告自身。

添加到您的 Shell 配置(`~/.zshrc` 或 `~/.bashrc`):

```bash export CLAWDBOT_DISABLE_BONJOUR=1 ```

重新加载:

```bash source ~/.zshrc ```

---

## 第 5 步:更新 Node.js

较旧的 Node.js 版本存在安全漏洞。您需要 **v22.12.0+**。

检查版本:

```bash node --version ```

**Mac (Homebrew):** ```bash brew update && brew upgrade node ```

**Ubuntu/Debian:** ```bash curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs ```

**Windows:** 从 [nodejs.org](https://nodejs.org/) 下载

---

## 第 6 步:设置 Tailscale(远程访问)

**作用:** 在您的设备之间创建加密隧道。无需公开暴露即可从任何地方访问 OpenClaw。

**安装 Tailscale:**

```bash # Linux curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up

# Mac brew install tailscale ```

**为 OpenClaw 配置 Tailscale:**

```json { "gateway": { "bind": "loopback", "tailscale": { "mode": "serve" } } } ```

现在仅通过您的 Tailscale 网络进行访问。

---

## 第 7 步:防火墙设置 (UFW)

**适用于云服务器(AWS, DigitalOcean, Hetzner 等)**

**安装 UFW:** ```bash sudo apt update && sudo apt install ufw -y ```

**设置默认规则:** ```bash sudo ufw default deny incoming sudo ufw default allow outgoing ```

**允许 SSH(不要跳过!):** ```bash sudo ufw allow ssh ```

**允许 Tailscale(如果使用):** ```bash sudo ufw allow in on tailscale0 ```

**启用:** ```bash sudo ufw enable ```

**验证:** ```bash sudo ufw status verbose ```

⚠️ **永远不要这样做:** ```bash # DON'T - exposes your gateway publicly sudo ufw allow 18789 ```

---

## 第 8 步:SSH 加固

**禁用密码认证(使用 SSH 密钥):**

```bash sudo nano /etc/ssh/sshd_config ```

更改: ``` PasswordAuthentication no PermitRootLogin no ```

重启: ```bash sudo systemctl restart sshd ```

---

## 安全清单

部署之前:

- [ ] 网关绑定到 `loopback` 或 `lan` - [ ] 已设置认证令牌或密码 - [ ] 文件权限已锁定 (600/700) - [ ] 已禁用 mDNS/Bonjour - [ ] Node.js v22.12.0+ - [ ] 已配置 Tailscale(如果是远程) - [ ] 防火墙阻止端口 18789 - [ ] 已禁用 SSH 密码认证

---

## 配置模板(安全默认值)

```json { "gateway": { "port": 18789, "bind": "loopback", "auth": { "mode": "token", "token": "YOUR_64_CHAR_HEX_TOKEN" }, "tailscale": { "mode": "serve" } } } ```

---

## 致谢

基于 [@NickSpisak_](https://x.com/NickSpisak_) 的安全研究,他在 Shodan 上发现了 1,673 多个暴露的网关。

原始文章:https://x.com/nickspisak_/status/2016195582180700592

---

## 安装

```bash clawdhub install NextFrontierBuilds/moltbot, openclaw-security ```

由 [@NextXFrontier](https://x.com/NextXFrontier) 构建

更多产品