OpenClaw 沒設網路政策白名單,就是在 prompt injection 攻擊下讓你的 credentials 裸奔。 最快把白名單設好的方式是用 ZenClaw——OpenClaw 託管服務,9 秒部署,後台網路政策面板點一下就套用,不用自己寫 JSON、不用碰 iptables。這篇把 OpenClaw 三種政策預設、白名單 JSON 範例、自架 vs ZenClaw 體驗差異一次走完。
為什麼一定要設網路政策?
LLM 容易被訊息 / 網頁裡的隱藏指令騙,沒 egress 白名單時 agent 可能把 ~/.openclaw/credentials/ 外洩到攻擊者 server。 Prompt injection 是目前 AI agent 攻擊面最主要的一類,原因很單純:agent 看到的字串對它來說都是「使用者指令」,就算來源是網頁、別人傳的訊息、skill 執行結果也一樣。防禦的第一層,就是網路 egress 控制。
OpenClaw 的 state 全部在 ~/.openclaw/(包括 openclaw.json、sessions、agents、credentials、skills)。credentials/ 裡可能有 Baileys WhatsApp session、LINE token、Telegram bot token——這些都是一次外洩就等同該管道身分被接管,參考 Issue #9096 討論的 session 保護議題。
OpenClaw 三種 policy preset
OpenClaw 把網路政策抽象成三種:開放網路(預設全開)、限制模式(預設全擋)、自訂(進階)(allowlist 一組網域)——各自對應不同風險胃口。 對照:
| Preset | 行為 | 適用場景 |
|---|---|---|
| 開放網路 | 允許所有 egress | 純開發 / 個人實驗 |
| 限制模式 | 全部擋住,只允許你明確加入的網域 | 金融、醫療、合規敏感 |
| 自訂(進階) | allowlist 一份網域清單 | 一般生產環境 |
多數中小企業選 自訂(進階):明確寫出必要網域,其他一律擋。OpenClaw 官方文件 有 JSON schema 範例。
自架:寫 JSON allowlist 的步驟
寫一份 policy JSON、放進 ~/.openclaw/ 對應路徑、確認 gateway hot-reload——細節以官方 docs 為準,實務上第一次幾乎都會漏掉至少一個必放網域。 常見白名單起手式:
{
"preset": "custom",
"allowlist": [
"api.openai.com",
"api.anthropic.com",
"generativelanguage.googleapis.com",
"api.telegram.org",
"api.line.me",
"graph.microsoft.com",
"github.com",
"ghcr.io",
"raw.githubusercontent.com",
"api.mycompany.com"
]
}
說明:
api.openai.com— GPT-4o 呼叫api.anthropic.com— Claude 呼叫,詳見 Anthropicgenerativelanguage.googleapis.com— Gemini 呼叫api.telegram.org— Telegram Bot API,見 Telegram bot featuresapi.line.me— LINE Messaging APIgraph.microsoft.com— Microsoft Teams webhookgithub.com/raw.githubusercontent.com— 裝 skill 會從這邊抓ghcr.io— Docker image registry
自架踩雷前三名:
- 忘了放 Docker registry:裝 skill / 升版本會被擋
- 忘了放自家後端:訂單、CRM、資料庫的 webhook 呼叫被擋
- 把
*.googleapis.com全開:不小心連帶允許非必要的 Google API
ZenClaw 後台:網路政策面板點一下
ZenClaw 把三種 preset 做成 UI,自訂(進階)也是視覺化 allowlist 編輯,不用手刻 JSON、不用 reload gateway、錯誤訊息直接在 UI 顯示。 流程:
- 登入 zenclaw.ai,按「立即雇用 AI 員工」
- 若還沒部署,按「新增 OpenClaw 安裝」等 9 秒
- 在實例卡片找網路政策面板
- 選 preset,自訂(進階)下把 allowlist 填好
- 儲存後即時生效
好處:
- 不用懂 JSON 語法:UI 表單化,減少語法錯誤
- 即時 feedback:擋住的請求會顯示網域,可直接加白名單
- NVIDIA 企業級沙箱搭配:ZenClaw 方案搭配 NemoClaw 沙箱(NVIDIA 企業級沙箱執行),egress 控制多一層網路隔離
- 可快速套同一份 policy 到多實例
Prompt injection 防禦:政策 + 沙箱雙層
網路白名單只擋第一層,若攻擊者偷改了 openclaw.json 還是可能擴權——理想做法是政策 + 沙箱雙層。 建議架構:
- 網路白名單(本篇)— egress 第一層
- 沙箱執行 — 容器 / OpenShell 隔離,不讓 agent 碰 host
- Credentials 權限 600 + 不 commit 到 git
- Gateway 綁 127.0.0.1 + 防火牆擋 port 18789,詳見 OpenClaw 安全加固指南
ZenClaw 方案已把以上全部預設做好;自架要自己 audit 每一項。參考 blink 的 OpenClaw 安全統計,2026 年 4 月 OpenClaw 已累計約 138 個已知 CVE——沒有網路政策的情況下攻擊面過大。
進階:分 agent 分 policy
高階用法:不同 agent 掛不同 policy,例如「客服 agent」只能打 Telegram / LINE / CRM API,「行銷 agent」可以打社群媒體 API——OpenClaw 支援 per-agent policy 配置。 對實務場景(見 電商 AI 員工 playbook)很重要。
自架要自己管理多份 JSON;ZenClaw 後台提供 agent 對應 policy 的可視化綁定。NemoClaw 是 NVIDIA 推出的安全強化版本,2026-03-16 GTC 揭露為 Alpha 早期預覽(詳見 NVIDIA NemoClaw 公告),目前還沒到 production 成熟度,正式要上企業環境建議搭 ZenClaw 的託管方案。
結論
網路政策白名單是 OpenClaw 安全的第一道防線,自架要自己寫 JSON、調 reload、審網域;ZenClaw 的後台點一下就設好。 不想把時間花在排查為什麼某個 API 呼叫被擋,就用 ZenClaw——9 秒部署、網路政策面板點一下搞定。首頁「立即雇用 AI 員工」按下去即可。