Skip to main content

多端點部署

分散式部署中,多台機器上的 Guard agent 向一台集中式 Manager 回報。Manager 提供機群全域可見性、跨 agent 威脅關聯、集中式策略派發。

架構

[Machine A: Manager]                [Machine B: Guard Agent]
+-------------------+               +---------------------+
| Manager Server    |<-- heartbeat --| GuardEngine         |
| :8443             |<-- events   --| (learning/protection)|
|                   |-- policy   -->|                     |
+-------------------+               +---------------------+
        ^
        |                            [Machine C: Guard Agent]
        |                            +---------------------+
        +<-- heartbeat/events -------| GuardEngine         |
        +--- policy ---------------->|                     |
                                     +---------------------+

部署 Manager

1

產生認證 Token

建立 Manager 和 Agent 之間通訊用的 token:
export MANAGER_TOKEN=$(openssl rand -hex 32)
echo $MANAGER_TOKEN
這個 token 要安全保存。每個 Guard agent 註冊都需要它。
2

啟動 Manager

panguard manager --port 8443 --auth-token "$MANAGER_TOKEN"
Manager 接受 Guard agent 連線,提供:
  • Agent 登錄 — 最多追蹤 500 個已註冊 agent
  • 威脅彙總 — 透過來源 IP、惡意軟體 hash、攻擊模式做跨 agent 關聯
  • 策略引擎 — 集中派發規則和 config
  • SSE 串流 — 給管理儀表板的即時事件串流
3

確認 Manager 在跑

curl -H "Authorization: Bearer $MANAGER_TOKEN" \
  http://localhost:8443/api/overview

部署 Guard Agent

在每台端點機器上:
1

安裝 Panguard

npm install -g @panguard-ai/panguard
2

啟動 Guard 並連線 Manager

panguard guard start \
  --manager-url "http://manager-host:8443" \
  --manager-token "your-secure-token" \
  --data-dir /var/panguard-guard
Agent 會:
  1. 啟動時向 Manager 註冊
  2. 每 30 秒送心跳
  3. 偵測到威脅即時回報
  4. 每 5 分鐘拉取策略更新

Agent 生命週期

階段端點間隔說明
註冊POST /api/agents/register一次(啟動時)Agent 送主機名稱、OS、版本;收到唯一 agentId
心跳POST /api/agents/:id/heartbeat每 30 秒CPU/記憶體用量、已處理事件數、模式、uptime
威脅回報POST /api/agents/:id/events即時偵測到的威脅立刻送出
策略拉取GET /api/policy/agent/:id每 5 分鐘Agent 檢查有沒有新策略
失效偵測每 30 秒(server 端)90 秒沒心跳的 agent 標記為失效
取消註冊DELETE /api/agents/:id手動從機群移除 agent

跨 Agent 威脅關聯

Manager 的威脅彙總即時關聯所有 agent 的威脅:
  • 來源 IP 關聯 — 多個端點看到同一個攻擊者 IP,觸發升級
  • 惡意軟體 hash 關聯 — 跨 agent 出現相同指紋,代表有進行中的攻擊活動
  • 攻擊模式關聯 — 5 分鐘窗口內出現相關 MITRE ATT&CK 模式
跨 agent 關聯用 5 分鐘滑動窗口,資料保留 24 小時。跨 3 個以上 agent 的威脅自動升級為 CRITICAL。

策略派發

策略引擎讓你集中控制所有 Guard agent:
# 設定全域策略
curl -X POST -H "Authorization: Bearer $MANAGER_TOKEN" \
  -H "Content-Type: application/json" \
  http://manager-host:8443/api/policy \
  -d '{
    "autoRespondThreshold": 85,
    "ipBlocklist": ["203.0.113.0/24"],
    "alertChannels": ["slack"]
  }'
策略變更會在下一個 5 分鐘拉取週期內同步到所有 agent。

即時監控

SSE 事件串流

即時串流所有 agent 的事件:
curl -N -H "Authorization: Bearer $MANAGER_TOKEN" \
  http://manager-host:8443/api/events/stream

機群概覽

curl -H "Authorization: Bearer $MANAGER_TOKEN" \
  http://manager-host:8443/api/overview

Manager 設定

環境變數

變數預設值說明
MANAGER_PORT8443HTTP server port
MANAGER_AUTH_TOKEN(無)API 認證用的 Bearer token
MANAGER_MAX_AGENTS500最大 agent 註冊數
MANAGER_HEARTBEAT_TIMEOUT_MS90000心跳逾時(超過就標失效)
MANAGER_HEARTBEAT_INTERVAL_MS30000失效檢查間隔
MANAGER_CORRELATION_WINDOW_MS300000跨 agent 威脅關聯窗口(5 分鐘)
MANAGER_THREAT_RETENTION_MS86400000威脅資料保留時間(24 小時)
CORS_ALLOWED_ORIGINS(無)逗號分隔的允許 CORS origin

可選 SQLite 持久化

大規模部署可以開 SQLite 做持久儲存:
panguard manager --port 8443 --auth-token "$MANAGER_TOKEN" --db /var/panguard-manager/data.db

正式環境部署

正式環境建議把 Manager 裝成 systemd 服務,前面擋 TLS 反向代理。詳見系統服務指南Docker 部署指南

安全檢查清單

  • 產生強力 token(openssl rand -hex 32
  • 用 TLS 終止(nginx/Caddy 反向代理)
  • Manager port(8443)只允許 Guard agent 網段存取
  • 用非 root 系統使用者跑
  • NODE_ENV=production 開啟強化模式
  • 密鑰存在 chmod 600 的環境檔裡

相關文件

架構

Manager-Agent 系統的完整技術架構。

系統服務

把 Manager 和 Guard 裝成 systemd/launchd 服務。

Docker 部署

用 Docker Compose 跑完整堆疊。

Threat Cloud

跨機群的集中式威脅情報。