龍蝦安全加固手冊:防止 AI Agent 權限濫用與系統入侵

AI Agent 安全加固完整指南:從使用者隔離、Telegram 身份驗證、API Key 限額、防火牆、檔案防護到日誌審計,搭配實際攻擊案例與驗證指令。

龍蝦OpenClaw安全防護AI AgentVPS安全權限管理防火牆UFW日誌審計API KeyTelegram資安監控進階

AI Agent 真正危險的地方,不是它能不能做事,而是你讓它做到哪裡。安全加固不是在安裝完之後補個防火牆就好,而是要從權限、金鑰、網路與監控一起思考。

你如果希望這篇不只是看完「大概知道」,而是真的能拿來安排自己的部署或排錯順序,那就把每一步都對照你現在的環境去看,效果會差很多。

你會學到什麼

  • 理解 AI Agent 最值得優先處理的風險面。
  • 每一層安全措施的「為什麼重要」和實際攻擊場景。
  • 建立最基本也最重要的權限與監控邊界。
  • 學會驗證每一層防護是否真的生效。
  • 避免把 AI 工具接進正式環境時留下過大的爆炸半徑。

什麼情況最適合先看這篇

  • 想在 VPS 上部署 AI Agent,並希望把權限與運維邊界一起管好的人
  • 你已經裝好龍蝦,準備讓它長期上線
  • 你希望做完後不只是功能可用,連驗證與風險也一起想進去

開始前先確認

  • 先盤點 Agent 目前有哪些能力與外部連線。
  • 整理所有 API Key、bot token 與本機憑證。
  • 確認你有可追查的 log 與備援登入方式。

先提醒你一件事

AI Agent 最大的風險常常不是安裝失敗,而是安裝成功之後權限過大、監控不足。

詳細教學與操作步驟

「養龍蝦」雖然方便,但其強大的指令執行能力也是雙面刃。本文將教你如何進行深度安全加固,確保你的龍蝦 AI Agent 只聽命於你,且不會危害系統安全。

一、 絕對不要使用 Root 帳號執行

這是最常見也最致命的錯誤。

為什麼這麼重要? Root 帳號擁有系統的最高權限,可以刪除任何檔案、修改任何設定、安裝任何軟體。如果龍蝦以 Root 身份執行,那麼 AI 產生的每一個指令都擁有毀掉整個伺服器的能力。

實際攻擊案例: 2025 年底有人分享了一個案例:他的 AI Agent 在處理一個清理任務時,模型產生了幻覺,把 rm -rf /tmp/old_cache/ 誤判為 rm -rf /。因為 Agent 用 Root 跑,整個伺服器的資料在幾秒內全部消失。如果用的是受限帳號,系統核心檔案根本刪不動。

操作步驟:

# 建立專用的 lobster 使用者
sudo adduser lobster

# 切換到該使用者
sudo su - lobster

# 在這個使用者環境下安裝和執行龍蝦
# 所有後續操作都在 lobster 帳號下進行

驗證方式:

# 確認目前是用哪個帳號執行
whoami
# 預期輸出: lobster(不是 root)

# 確認龍蝦程序的執行身份
ps aux | grep openclaw
# 預期看到 lobster 使用者,不是 root

# 確認無法存取系統關鍵檔案
cat /etc/shadow
# 預期輸出: Permission denied

二、 嚴格鎖定 Telegram User ID

為什麼這麼重要? Telegram Bot Token 只是一個字串,任何人只要知道你的 Bot Username,就能嘗試發訊息給它。如果沒有 User ID 白名單,陌生人可以直接操控你的龍蝦,等於把你伺服器的 shell 交給陌生人。

實際攻擊案例: 有人把 Bot Token 不小心 commit 到公開的 GitHub repo。攻擊者找到 Token 後,因為沒有設定 User ID 限制,直接透過 Telegram 對龍蝦下指令,把伺服器變成了挖礦機。

操作步驟:

~/.openclaw/config.yaml.env 中設定:

channels:
  telegram:
    token: "YOUR_BOT_TOKEN"
    allowed_users:
      - 123456789    # 你的 Telegram User ID
      - 987654321    # 備用管理員的 ID

你可以透過 @userinfobot 取得自己的 Telegram User ID。

驗證方式:

# 用另一個 Telegram 帳號(不在白名單中的)發訊息給你的 Bot
# 預期結果: Bot 不回應,或回覆「未授權」

# 檢查龍蝦的日誌,確認有阻擋記錄
openclaw logs | grep "unauthorized"
# 預期看到: Unauthorized access attempt from user_id: XXXXXXX

建議:不要只填一個 ID。萬一你的主要 Telegram 帳號出問題,至少還有一個備用帳號可以管理龍蝦。

三、 API Key 的權限限制

為什麼這麼重要? AI Agent 會自動發送大量 API 請求。如果 AI 進入無窮迴圈或被惡意利用,一個沒有限額的 API Key 可能在幾小時內燒掉上萬元的費用。

實際攻擊案例: 一個常見的「帳單攻擊」模式:攻擊者不是要竊取你的資料,而是讓你的 AI Agent 不斷發送昂貴的 API 請求。曾有開發者因為 Agent 陷入重試迴圈,一個週末就收到 $2,000 美金的帳單。

操作步驟:

  1. 到 Anthropic Console 或 OpenAI Dashboard 建立一個專用的 API Key
  2. 設定每月使用上限(建議先從 $50 開始)
  3. 開啟用量通知(到達 80% 時發 email 警告)
# ~/.openclaw/config.yaml
brain:
  model: claude-3-5-sonnet
  api_key: "sk-ant-lobster-dedicated-key"
  # 龍蝦端也可以設定額外的限制
  rate_limit:
    max_requests_per_minute: 30
    max_tokens_per_hour: 500000

驗證方式:

# 查看目前的 API 使用量
openclaw usage

# 預期輸出類似:
# Today: 12,340 tokens ($0.15)
# This month: 1,245,000 tokens ($15.60)
# Monthly limit: $50.00

四、 網路層級的隔離

為什麼這麼重要? VPS 預設會開放所有連接埠,這意味著任何人都能嘗試連到你的龍蝦 Gateway(預設 port 18789)。如果 Gateway 有任何漏洞,攻擊者可以直接繞過 Telegram 身份驗證。

實際攻擊案例: 攻擊者用 Shodan 等工具掃描全網開放 18789 port 的伺服器,嘗試直接呼叫 Gateway API。如果你的 Gateway 沒有設 auth token,攻擊者等於拿到了一個免費的 AI Agent。

操作步驟:

# 設定防火牆:預設拒絕所有連入
sudo ufw default deny incoming

# 只允許 SSH(你自己要能連進來)
sudo ufw allow ssh

# 如果你需要從外部存取 Gateway API,限制來源 IP
# sudo ufw allow from YOUR_IP to any port 18789

# 啟用防火牆
sudo ufw enable

侃瑞科技 VPS 中,你也可以透過控制面板的安全組規則來設定,效果等同但更方便管理。

驗證方式:

# 查看目前的防火牆規則
sudo ufw status verbose

# 預期輸出:
# Status: active
# Default: deny (incoming), allow (outgoing)
# 22/tcp    ALLOW IN    Anywhere

# 從外部嘗試連接 18789 port(會被擋)
# 在另一台機器執行:
# curl http://YOUR_VPS_IP:18789
# 預期結果: Connection refused 或 timeout

額外建議: 如果你確定龍蝦只需要透過 Telegram 運作(不需要 API endpoint),可以完全關閉 Gateway 的外部監聽:

# ~/.openclaw/config.yaml
gateway:
  listen: "127.0.0.1:18789"  # 只監聽本機,外部完全無法連入

五、 關鍵檔案的防護

為什麼這麼重要? 龍蝦的 execfile_ops Skills 讓它能讀寫檔案和執行指令。如果沒有限制存取範圍,AI 可能讀取你的 SSH 私鑰、修改系統設定檔,甚至篡改龍蝦自己的設定來提升權限。

實際攻擊案例: 有人報告 AI Agent 在「幫忙檢查系統安全」的過程中,讀取了 ~/.ssh/id_ed25519 私鑰並輸出到聊天視窗。雖然 AI 沒有惡意,但聊天記錄如果被截圖或儲存在不安全的地方,私鑰就外洩了。

操作步驟:

# 確保 SSH 私鑰權限正確
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
chmod 700 ~/.ssh/

# 確保 lobster 帳號無法讀取系統核心設定
sudo chmod 640 /etc/shadow
sudo chmod 644 /etc/passwd

在龍蝦的 Skills 設定中限制存取範圍:

# ~/.openclaw/config.yaml
skills:
  file_ops:
    allowed_paths:
      - "/home/lobster/workspace/"
      - "/var/log/openclaw/"
    blocked_paths:
      - "/etc/"
      - "/root/"
      - "~/.ssh/"
      - "~/.openclaw/config.yaml"  # 防止 AI 修改自己的設定
  exec:
    blocked_commands:
      - "rm -rf *"
      - "chmod 777 *"
      - "shutdown"
      - "reboot"
      - "curl * | bash"    # 防止下載並執行未知腳本
      - "wget * | bash"

驗證方式:

# 透過 Telegram 要求龍蝦讀取敏感檔案
# 發送: 「幫我看一下 /etc/shadow 的內容」
# 預期結果: 龍蝦拒絕,顯示「此路徑不在允許範圍內」

# 要求執行危險指令
# 發送: 「執行 rm -rf /tmp」
# 預期結果: 龍蝦拒絕,顯示「此指令被安全過濾器攔截」

更多 Linux 安全設定,可參考我們的 系統維護手冊

六、 日誌與審計

光有防護還不夠,你還需要知道發生了什麼事。

為什麼這麼重要? 沒有日誌,你就無法知道龍蝦做了什麼、有誰嘗試過未授權存取、或者 AI 是否在你不知道的情況下執行了奇怪的指令。出了事之後如果沒有日誌,你連問題出在哪裡都無法確認。

操作步驟:

# 確認龍蝦的日誌目錄存在且有寫入權限
mkdir -p /var/log/openclaw
chown lobster:lobster /var/log/openclaw

# 在設定中開啟詳細日誌
# ~/.openclaw/config.yaml
logging:
  level: info              # debug / info / warn / error
  file: /var/log/openclaw/agent.log
  max_size: 100MB
  max_files: 10            # 保留最近 10 個日誌檔
  log_commands: true       # 記錄所有執行的指令
  log_api_calls: true      # 記錄所有 API 呼叫

設定日誌輪替,避免磁碟爆掉:

# /etc/logrotate.d/openclaw
/var/log/openclaw/*.log {
    daily
    rotate 30
    compress
    missingok
    notifempty
    create 0640 lobster lobster
}

定期檢查的指令:

# 查看最近的錯誤
openclaw logs --level error --last 24h

# 查看未授權的存取嘗試
openclaw logs | grep "unauthorized\|blocked\|denied"

# 查看執行過的所有指令
openclaw logs --type commands --last 7d

七、 日常維護檢查清單

安全不是一次設定就永遠安全。建議養成定期檢查的習慣:

每天(花 2 分鐘):

# 快速健康檢查
openclaw doctor

# 看有沒有異常的錯誤日誌
openclaw logs --level error --last 24h

每週(花 10 分鐘):

# 檢查系統更新
openclaw update --check

# 檢查 API 使用量是否正常
openclaw usage --last 7d

# 檢查磁碟空間
df -h

# 檢查未授權存取嘗試
openclaw logs | grep "unauthorized" | wc -l

每月(花 30 分鐘):

# 更新龍蝦和所有 Skills
openclaw update
openclaw skills update --all

# 審查 Skills 清單,移除不需要的
openclaw skills list

# 檢查 API Key 是否需要輪替
# 到 Anthropic/OpenAI Dashboard 查看 Key 的建立時間

# 備份設定檔
cp ~/.openclaw/config.yaml ~/.openclaw/config.yaml.bak.$(date +%Y%m%d)

常見問題

Q:龍蝦可以執行 sudo 指令嗎? 技術上可以(透過加入 sudoers),但極度不建議。如果真的需要,請限定特定的指令,而不是給予無限制的 sudo 權限:

# /etc/sudoers.d/lobster
# 只允許龍蝦重啟 nginx,其他 sudo 指令一律不行
lobster ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
lobster ALL=(ALL) NOPASSWD: /usr/bin/systemctl status nginx

驗證:

# 用 lobster 帳號測試
sudo systemctl restart nginx    # 應該成功
sudo systemctl restart sshd     # 應該被拒絕
sudo rm -rf /tmp                # 應該被拒絕

Q:如何監控龍蝦的操作記錄? 你可以定期檢查龍蝦產出的日誌檔案,或使用 pm2 logs lobster-ai。在侃瑞科技,我們建議進階用戶搭配 Fail2Ban 來自動封鎖嘗試掃描你龍蝦服務埠的惡意 IP。

Q:我用 Docker 跑龍蝦,還需要這些設定嗎? Docker 提供了額外的隔離層,但不代表可以跳過上面的設定。容器內的龍蝦仍然需要:

  • 非 Root 執行(在 Dockerfile 用 USER lobster
  • Telegram User ID 白名單
  • API Key 限額
  • 限制容器的 capabilities(--cap-drop ALL
docker run -d \
  --name lobster \
  --user lobster \
  --cap-drop ALL \
  --memory 1g \
  --read-only \
  -v lobster-data:/home/lobster/.openclaw \
  openclaw/agent:latest

Q:龍蝦被入侵了,怎麼做緊急處理?

  1. 立刻停止龍蝦:openclaw stopkill $(pgrep openclaw)
  2. 立刻到 Anthropic/OpenAI Dashboard 撤銷 API Key
  3. 到 Telegram @BotFather 用 /revoke 撤銷 Bot Token
  4. 檢查日誌確認被做了什麼:openclaw logs --last 48h
  5. 檢查是否有新增的使用者或 cron job:cat /etc/passwdcrontab -l
  6. 重新產生所有金鑰後,才重新設定和啟動

做完後怎麼確認自己真的有設對

  • 安裝完成後除了看服務有沒有啟動,也要檢查權限、日誌與實際任務是否正常。
  • 用一個不在白名單的 Telegram 帳號試著發指令給 Bot,確認會被擋。
  • 從使用者視角再跑一次實際流程,不要只看後台畫面。
  • 試著要求龍蝦存取被禁止的路徑或指令,確認安全過濾器有作用。
  • 如果你有改 DNS、Proxy、背景服務或權限,請逐層確認,不要一次判斷全部成功。

這一題最常踩的坑

  • 所有金鑰直接放在專案裡或 shell history。
  • Agent 以 root 權限常駐執行。
  • 出問題時完全沒有日誌與審計線索。
  • 設了防火牆但 Gateway 仍然監聽 0.0.0.0,外部還是連得到。
  • Telegram User ID 白名單只填了一個人,主帳號出問題就完全失控。

如果你要往下一步走

如果你還沒完成安裝本體,可以先回頭看 龍蝦 AI 官方安裝教學。 如果你要長期跑這類 AI 工作流,建議直接搭配侃瑞的 VPS 方案與價格

需要主機來實作?

侃瑞科技提供 cPanel 虛擬主機與 VPS,教學裡的操作開箱即用。

查看方案 →
LINE 諮詢