安全沙箱部署

防止AI誤刪庫 —— 把OpenClaw關進沙箱裡

為什麼要把 OpenClaw 關進沙箱

AI 能幫你寫程式碼、改檔案、跑腳本,這既是它厲害的地方,也是它危險的地方。萬一 AI 執行了一條不該執行的命令,後果可大可小。

沙箱的意思就是:給 AI 畫一個圈,它只能在圈裡活動,出了圈什麼也幹不了。哪怕它想搞事情,也傷不到你的系統。

沒有沙箱可能發生什麼

['AI 執行 rm -rf / 把整個系統刪了(真實案例不止一個)', 'AI 誤改系統關鍵設定檔案,伺服器直接起不來', 'API Key 被 AI 輸出到日誌裡,任何人都能看到', '容器逃逸,影響宿主機上的其他服務', 'AI 透過網路把敏感資料發出去']

Docker 沙箱 + 權限控制 + 網路隔離

['只讀檔案系統,AI 改不了任何檔案', '丟棄所有 Linux capabilities,權限降到最低', '限制 CPU 和記憶體,防止資源耗盡', '網路隔離,只能訪問必要的 API 端點', '日誌審計,所有操作都有記錄']

Docker 沙箱搭建

核心思路:唯讀掛載 + 禁止網路 + 資源限制。

建立安全沙箱容器
# 建立一個高度受限的容器

這條指令做了什麼:檔案系統唯讀、所有特權丟棄、記憶體限 1G、CPU 限 1 核、進程數限 100、完全斷網。夠狠了吧。

docker-compose.yml 沙箱設定

生產環境建議用 compose 管理,設定寫在檔案裡不容易忘:

docker-compose.yml
version: "3.8"

AppArmor / Seccomp 加固

想再狠一點?加上核心層級的安全政策:

seccomp-profile.json(精簡版)
{
  "defaultAction": "SCMP_ACT_ERRNO",
  "architectures": ["SCMP_ARCH_X86_64", "SCMP_ARCH_AARCH64"],
  "syscalls": [
    {
      "names": [
        "read", "write", "open", "close", "stat", "fstat",
        "mmap", "mprotect", "munmap", "brk", "ioctl",
        "access", "pipe", "select", "sched_yield",
        "dup", "dup2", "clone", "execve", "exit",
        "wait4", "kill", "getpid", "getuid", "getgid",
        "socket", "connect", "sendto", "recvfrom"
      ],
      "action": "SCMP_ACT_ALLOW"
    }
  ]
}

這個 seccomp 設定只允許最基本的系統呼叫,像 mount、ptrace 這些危險操作全部攔截。

沙箱部署五步走

1

建立隔離容器

用 --read-only 和 --cap-drop ALL 建立一個高度受限的容器。

2

只讀檔案系統

除了 /tmp 和指定的 workspace 目錄,其他地方都不能寫。

3

限制網路

用 internal network 禁止直接訪問外網,需要 API 的話走代理。

4

資源限額

CPU、記憶體、進程數都設上限,防止容器吃光宿主機資源。

5

日誌審計

所有容器操作都記錄日誌,定期檢查有沒有異常行為。

沙箱部署 (OpenClaw)

多層隔離保護,檔案系統唯讀,網路白名單控制,資源有上限。AI 誤操作只影響容器內部,不會波及系統。

VS
裸機部署 (傳統方式)

共享系統權限,檔案完全可讀寫,網路無限制。部署簡單,但 AI 誤操作可能波及整個系統甚至刪庫。

🏢 企業環境可以考慮 Zscaler Private AccessCloudflare Tunnel 等方案,在網路層面做更細粒度的訪問控制,連 VPN 都省了。
MOLILI 桌面應用自帶沙箱隔離,AI 的所有操作都在安全沙箱內執行,不用自己折騰這些設定。 了解 MOLILI →
這篇教程對你有幫助嗎?