部署指南 2026-04-16

2026年 OpenClaw Gateway 出站治理與安全護欄實戰:網域白名單、Sandbox、稽核日誌與人在回路在遠端實體 Mac 上的可複現 Runbook(openclaw.json 片段 + FAQ)

OpenClaw Gateway 跑在 ZoneMac 遠端實體 Mac 上對接公網模型與工具鏈時,真正的風險往往不在「進站的 TLS」,而在出站任意存取工具執行越權不可稽核的自動操作。本文給出一套可落地的出站網域白名單SandboxJSONL 稽核人在回路(HITL)組合拳;含決策矩陣、可貼上的 openclaw.json 結構示意、七步 Runbook、可引用閾值與 FAQ

OpenClaw Gateway 出站治理與安全護欄遠端實體 Mac 示意圖

1. 導語與適用邊界

出站治理的目標,是把「模型能發起的網路與系統動作」收斂到顯式策略:哪些網域允許解析、哪些 IP 段永遠不可達、工具呼叫在何種檔案系統視圖下執行、誰在什麼逾時視窗內核准高風險步驟——從而把安全從「靠同事自覺」變成可複現、可稽核的機讀設定。

本文預設閘道行程已能以最小權限執行,且入站側已依生產習慣綁定 127.0.0.1 或經反向代理;若你仍在搭建遠端 Mac 上的目錄與 SSH 基線,可先對照 2026年遠程開發 Mac mini 從 0 到 1 完成 iOS 打包與發佈。 需要把稽核落盤與備份視窗對齊時,可與 Gateway 定時備份與 JSONL 可觀測性 Runbook 交叉對照,避免日誌卷與 openclaw backup 爭搶 I/O。若你在升級 Node 或 SecretsRef 時遇到權限邊界問題,亦可一併參考 OpenClaw v2026.3 部署排錯:macOS Tahoe 與 Node.js 22

2. 痛點拆解

  1. 出站無邊界等於隱式 SSRF。模型或工具若可向任意 Host 發起 HTTPS,就可能探測內網、抓取雲端 metadata、或把租戶資料外傳到未備案網域;「事後封 IP」往往已經洩露。
  2. 沒有 Sandbox 的工具執行是裸奔。在遠端實體 Mac 上直接跑 shell/腳本時,一次路徑穿越或環境變數注入就可能讀寫使用者目錄;沙箱把可讀寫的根縮到工作區,並把網路與出站策略綁定。
  3. 缺少稽核與 HITL 時,合規與排錯同時失靈。沒有結構化稽核,你無法證明「當時是誰核准了刪除」;沒有人在回路,破壞性動作會在無人值守視窗自動執行——兩者疊加是 SOC2/內部紅隊最常說的「不可舉證」。

3. 決策矩陣:護欄維度 × 基線

用下表做一次「上線前簽字」:左列為湊合方案,右列為建議基線。

維度 湊合方案(高風險) 建議基線
出站策略 僅依賴系統 Proxy 或防火牆手工維護 應用層 allowlist + 阻斷私網段與 metadata 常見入口
Sandbox 與閘道同使用者、全盤可寫 工作區唯讀或受限寫、網路跟隨出站策略
稽核 僅 stdout 滾動日誌 JSONL,含 request_id、工具名、出站 Host、策略命中與 HITL 決策
人在回路 口頭約定「危險指令先問人」 可程式化規則 + 核准管道 + 逾時預設 abort
7×24 節點 策略與值班表只存在聊天裡 Runbook 與 2026 OpenClaw 實戰教程:在 ZoneMac 物理節點部署 24/7 AI 智能體業務流的完整指南 對齊 on-call 與升級路徑

4. openclaw.json 可複現片段

以下為結構示意:鍵名與巢狀路徑請以你目前 OpenClaw 版本文件為準;合併前務必備份生產檔案,並與團隊既有 gateway.router、憑證引用等段落手工合併,避免覆寫未版本化的金鑰路徑。

4.1 出站、沙箱、稽核與人在回路

{
  "gateway": {
    "security": {
      "outbound": {
        "mode": "allowlist",
        "allowedHosts": [
          "api.openai.com",
          "api.anthropic.com",
          "generativelanguage.googleapis.com"
        ],
        "denyPrivateRanges": true,
        "blockMetadataEndpoints": true,
        "denyHosts": ["169.254.169.254"]
      },
      "sandbox": {
        "enabled": true,
        "toolExecution": "subprocess",
        "filesystem": "workspace-readonly",
        "network": "outbound-policy-only"
      },
      "audit": {
        "sink": "jsonl",
        "path": "/var/log/openclaw/audit.jsonl",
        "retentionDays": 90,
        "emitFields": [
          "request_id",
          "profile",
          "tool_call",
          "outbound_host",
          "policy_decision",
          "hitl_status"
        ]
      },
      "humanInTheLoop": {
        "channels": ["slack_approvals", "email"],
        "rules": [
          {
            "match": { "tool": "shell", "risk": "destructive" },
            "requireApproval": true
          },
          {
            "match": { "outboundHostNotInAllowlist": true },
            "requireApproval": false,
            "action": "deny"
          }
        ],
        "timeoutSeconds": 900,
        "onTimeout": "abort"
      }
    }
  }
}

denyPrivateRangesblockMetadataEndpoints 解決「模型以為在測公網 API,實際在打內網」的經典 SSRF 形狀;humanInTheLoop.rules 裡對「非白名單出站」用 deny 而非核准,避免核准佇列被海量探測淹沒。

5. 七步落地 Runbook(遠端實體 Mac)

  1. 凍結出站清單。拉取過去 7 天閘道存取日誌與上游帳單中的 Host,去重後對應到供應商文件;區分「模型 API」「登入 OAuth」「CDN 下載」三類。
  2. 備份 JSON 與日誌路徑。cp openclaw.json openclaw.json.bak.$(date +%Y%m%d%H%M);確認 /var/log/openclaw 掛載獨立卷或有 logrotate。
  3. 先合 outbound,再開 sandbox。避免先縮檔案系統權限導致工具初始化失敗卻誤判為「模型問題」。
  4. 接通稽核欄位。保證每筆記錄能串聯 request_id 與上游回應標頭中的追蹤 ID,便於供應商工單。
  5. 設定 HITL 管道。在 Slack/郵件裡用固定討論串範本,包含「核准/拒絕/延期」與過期語意;逾時一律 abort
  6. 負向與正向用例。負向:對私網與 metadata 位址應出現策略拒絕且稽核為 deny;正向:白名單網域完整走通一次工具鏈。
  7. 歸檔與演練。每季做一次「核准人全員不可用」演練,確認不會靜默執行高危指令。

6. 出站拒絕與 HITL 分診表

現象 優先解釋 建議動作
連線 RFC1918 位址成功 出站策略未生效或 DNS 被劫持到內網 立刻回滾並檢查是否走了系統 Proxy 旁路;稽核應顯示 denyPrivateRanges 命中
合法供應商網域被拒 重新導向到新 Host(常見於 OAuth)未入白名單 抓包 Host 鏈,依供應商文件補齊;臨時可走工單擴容而非全域關閉白名單
工具回報 EPERM/EACCES Sandbox 檔案系統視圖過緊 把建置快取與 artifact 明確掛載進允許寫路徑;不要把全盤放寬為可寫
核准佇列堆積 規則過寬,把可自動拒絕的流量送進 HITL 對明確非法出站使用 deny;縮小 destructive 定義
逾時後任務「自己跑完」 onTimeout 誤設為 continue 改為 abort 並加告警;複核稽核是否記錄逾時事件

7. 可引用資訊(寫進 Runbook 的數字與清單)

  • 稽核保留retentionDays: 90 常與季度覆盤節奏對齊;若受合規約束 1 年+,改為冷歸檔到物件儲存並更新 DLP 流程。
  • HITL 視窗timeoutSeconds: 900(15 分鐘)適合跨時區 on-call;更短適合純互動情境,避免佇列占用。
  • 私網防護:除 RFC1918 外,務必單列 169.254.169.254 等鏈路本機與 metadata 入口——雲與混合 Mac 節點上尤其常見。

8. FAQ

問:出站白名單會不會卡死第三方 SDK 的跳轉網域?
會。上線前用一週期的真實流量樣本抓 Host 直方圖,把供應商文件列出的 API、OAuth、CDN 與重新導向網域一併納入;對偶發長尾網域可設工單擴容流程,而不是臨時關閉白名單。

問:Sandbox 能防住「模型誘導」的破壞性 shell 嗎?
沙箱降低檔案系統與網路越權面,但不能取代策略:對 rm/curl 到內網/metadata 等高風險工具仍應設定人在回路或靜態拒絕清單,並把每次嘗試寫入稽核。

問:稽核 JSONL 磁碟滿了怎麼辦?
為日誌卷單獨 quota;用按日滾動與 retentionDays 對齊備份策略;與 Cron 備份 Runbook 聯動,避免與 openclaw backup 爭用同一視窗造成寫放大。

問:人在回路逾時應預設放行還是中止?
預設建議 abort:放行會把高風險操作推遲到無人值守時段,違背核准語意;若業務必須自動繼續,應降級為唯讀動作並顯式告警,而不是靜默執行原指令。

9. 總結與節點選型

出站治理、沙箱、稽核與 HITL 四件事,本質是同一命題:把「能做什麼」寫成策略,並能用日誌證明。把它們落在 ZoneMac 遠端實體 Mac 上,你能獲得長期穩定的 Unix 語意與 launchd 級行程託管,減少「為了繞過權限而關沙箱」的誘惑。

與同等價位的通用 x86 小主機相比,Mac mini M4 在 Apple Silicon 統一記憶體頻寬、待機約 4W 量級的靜音執行與 macOS 原生安全堆疊(Gatekeeper、SIP、FileVault)上更契合長期線上閘道角色:當機率低、修補路徑清晰,也更適合與 Xcode/簽章/公證類工具同機共存。若你希望把本文的護欄與 Runbook 跑在可預期、低維運摩擦的硬體上,Mac mini M4 是目前高性價比的起點;現在即可透過 ZoneMac 取得遠端實體 Mac,把出站策略與稽核閉環落在真機環境上。

限時優惠

需要一台可跑 OpenClaw 出站治理的遠端實體 Mac?

ZoneMac 提供高效能 Mac mini 雲端租賃,閘道、稽核卷與工具鏈同機落地,便於複現 openclaw.json 與 7×24 值守。

按需開通 物理真機 SSH 直達
macOS 雲端租賃 超低價限時優惠
立即購買