OpenClaw安全部署完整教學:8步加固,別讓你的電腦變成駭客的礦機
OpenClaw安全部署完整教學:8步加固,別讓你的電腦變成駭客的礦機
Counterintuitive Engineering | 2026年3月 完整教學影片:[YouTube連結待插入] 配套檔案下載:docker-compose.yaml + .env範本 + 8步檢查清單PDF
13萬台OpenClaw伺服器正在公網裸奔。你的是不是其中之一?
欸這不是嚇你齁。Shodan掃描顯示,135,000+ 台OpenClaw以預設配置暴露在網路上——沒有認證、沒有防火牆、什麼防護都沒有。ClawHub上 1,184個外掛被確認是木馬,佔總量的20%。
2026年3月8日和3月10日,中國國家資訊安全漏洞共享平台連續發了兩次安全警告。CVE-2026-25253(CVSS 8.8分)讓攻擊者零成本取得你的完整系統控制權。
這篇文章教你8步把OpenClaw從裸奔變成鐵桶。 每一步都有可以直接複製的指令。做完截圖發留言區,我幫你看。
目錄
- 你現在有多危險
- 第一步:關門 — 綁定本機
- 第二步:上鎖 — API Token認證
- 第三步:驗毒 — 外掛安全審查
- 第四步:隔離 — Docker容器化部署
- 第五步:選腦子 — LLM安全接入
- 第六步:備份 — 設定版本管理
- 第七步:監控 — 日誌稽核與警報
- 完整檢查清單
第1章:你現在有多危險
預設配置 = 完全裸奔
OpenClaw裝完之後的預設配置:
host: 0.0.0.0 # 監聽所有網路介面 = 公網可存取
port: 3000 # 預設埠號,駭客掃描的第一目標
auth: false # 沒有認證 = 任何人都可以直接操作
意思就是:只要你的機器有公網IP,全世界任何人打 http://你的IP:3000 就能完全控制你的OpenClaw。很可怕齁?
CVE-2026-25253 攻擊鏈
攻擊者用Shodan掃描port 3000
↓
找到你的OpenClaw(0.0.0.0沒認證)
↓
直接存取API,列舉已安裝外掛
↓
注入惡意workflow
↓
讀取.env檔 → 拿到你所有的API Key
↓
橫向移動到宿主機檔案系統
↓
資料外洩 / 挖礦 / 勒索加密
攻擊成本:零。 不需要任何漏洞利用技術,直接裸存取就好了。
自我檢查
# 檢查你的OpenClaw有沒有暴露在公網
# 如果看到 0.0.0.0:3000 → 你正在裸奔
ss -tlnp | grep 3000
# 看看誰在存取你的OpenClaw
journalctl -u openclaw --since "1 hour ago" | grep -v 127.0.0.1
第2章:第一步 — 關門
目標:讓OpenClaw只監聽本機,外網完全無法存取。
2.1 修改監聽位址
# 找到設定檔
find ~ -name "config.json" -path "*openclaw*" 2>/dev/null
# 把host改成127.0.0.1
# 改之前: "host": "0.0.0.0"
# 改之後: "host": "127.0.0.1"
或用環境變數:
export OC_HOST=127.0.0.1
2.2 防火牆規則
# Linux (iptables)
sudo iptables -A INPUT -p tcp --dport 3000 ! -s 127.0.0.1 -j DROP
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
# 或用ufw(比較簡單)
sudo ufw deny 3000
sudo ufw enable
2.3 驗證
# 從本機存取 — 應該成功
curl http://127.0.0.1:3000/healthz
# 從另一台電腦存取 — 應該失敗
curl http://你的IP:3000/healthz
# 預期結果: Connection refused 或 timeout
第3章:第二步 — 上鎖
目標:就算有人繞過防火牆,沒有Token也做不了事。
3.1 產生安全Token
openssl rand -hex 32
# 把輸出的那串東西存好
3.2 設定認證
在 .env 裡加:
OC_ENABLE_AUTH=true
OC_API_TOKEN=你產生的那串Token
3.3 .env檔案安全
# 設定檔案權限 — 只有你自己可以讀
chmod 600 .env
# 確認.gitignore有包含.env
echo ".env" >> .gitignore
# 千萬不要做的事:
# ✗ 不要在指令列直接打API Key(會記錄在~/.bash_history)
# ✗ 不要把.env commit到git
# ✗ 不要在docker-compose.yaml裡寫死密鑰
3.4 驗證
# 不帶Token — 預期401
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3000/api/workflows
# 帶Token — 預期200
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer 你的Token" \
http://127.0.0.1:3000/api/workflows
第4章:第三步 — 驗毒
目標:清除已安裝的惡意外掛,建立安全白名單。
4.1 為什麼要驗毒
ClawHub上有 1,184個已確認的木馬外掛,佔總量的20%。惡意外掛會:
- 偷你的
.env檔(裡面有你所有的API Key) - 偷瀏覽器Cookie和SSH金鑰
- 透過DNS隧道偷偷把資料傳出去(繞過防火牆)
- 裝挖礦程式吃你的CPU
4.2 審查已安裝外掛
# 列出所有已安裝外掛
ls -la ~/.openclaw/plugins/
# 檢查每個外掛
for plugin in ~/.openclaw/plugins/*/; do
echo "=== $(basename $plugin) ==="
cat "$plugin/package.json" 2>/dev/null | grep -E '"name"|"author"|"repository"'
stat -c '%y' "$plugin"
echo ""
done
4.3 木馬特徵辨識
cd ~/.openclaw/plugins/
# 特徵1: 讀取環境變數或.env檔
grep -rl "process\.env\|dotenv\|\.env" . --include="*.js"
# 特徵2: 可疑的網路請求
grep -rl "fetch\|axios\|http\.request\|net\.connect" . --include="*.js" \
| xargs grep -l "dns\|webhook\|ngrok\|burp"
# 特徵3: 檔案系統遍歷
grep -rl "readFileSync\|readdirSync\|\.ssh\|\.gnupg\|\.aws" . --include="*.js"
# 特徵4: 程式碼混淆
grep -rl "eval\|Function(\|atob\|Buffer\.from.*base64" . --include="*.js"
4.4 處置
# 刪除可疑外掛
rm -rf ~/.openclaw/plugins/可疑外掛名/
# 設定白名單
OC_PLUGIN_WHITELIST=plugin-a,plugin-b
OC_PLUGIN_NETWORK=false
OC_PLUGIN_ENV_ACCESS=false
第5章:第四步 — 隔離
目標:用Docker把OpenClaw關進沙盒,就算被打穿也影響不到你的電腦。
5.1 完整docker-compose.yaml
services:
openclaw:
image: openclaw/openclaw:latest
user: "1000:1000" # 非root執行
ports:
- "127.0.0.1:3000:3000" # 只綁本機
env_file: [.env]
volumes:
- openclaw_data:/home/openclaw/.openclaw # 資料(可寫)
- ./plugins:/home/openclaw/.openclaw/plugins:ro # 外掛(唯讀!)
- ./backups:/backups
cap_drop: [ALL]
cap_add: [NET_BIND_SERVICE]
read_only: true
tmpfs: ["/tmp:size=100M,noexec,nosuid"]
security_opt: ["no-new-privileges:true"]
deploy:
resources:
limits:
cpus: "2.0"
memory: 2G
5.2 部署指令
mkdir -p ~/openclaw-secure && cd ~/openclaw-secure
cp .env.example .env
nano .env # 填入你的Token和LLM API Key
mkdir -p plugins backups
chmod 600 .env
chown -R 1000:1000 plugins backups
docker compose up -d
docker compose logs -f --tail=50
第6章:第五步 — 選腦子(LLM設定)
目標:安全設定AI大語言模型API。
6.1 OpenAI(推薦)
OC_LLM_PROVIDER=openai
OC_LLM_API_KEY=sk-你的OpenAI-Key
OC_LLM_MODEL=gpt-4o
6.2 Anthropic Claude
OC_LLM_PROVIDER=anthropic
OC_LLM_API_KEY=sk-ant-你的Claude-Key
OC_LLM_MODEL=claude-sonnet-4-6-20250514
6.3 本機Ollama(完全離線)
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3:8b
OC_LLM_PROVIDER=ollama
OC_LLM_BASE_URL=http://host.docker.internal:11434
OC_LLM_MODEL=llama3:8b
Ollama好處:零成本、完全隱私、資料不會離開你的電腦。
6.4 混合方案(推薦)
主力用雲端(OpenAI/Claude),重要或機密工作用本機Ollama,兩全其美。
第7章:第六步 — 備份
cd ~/openclaw-secure
git init
cat > .gitignore << 'EOF'
.env
*.log
backups/
openclaw_data/
EOF
git add docker-compose.yaml .env.example plugins/ .gitignore
git commit -m "初始安全設定"
自動備份腳本
cat > backup.sh << 'SCRIPT'
#!/bin/bash
BACKUP_DIR=~/openclaw-secure/backups
DATE=$(date +%Y%m%d_%H%M%S)
docker compose exec openclaw tar czf /backups/data_${DATE}.tar.gz \
-C /home/openclaw .openclaw --exclude='.openclaw/plugins'
cp docker-compose.yaml ${BACKUP_DIR}/docker-compose_${DATE}.yaml
find ${BACKUP_DIR} -name "data_*.tar.gz" -mtime +7 -delete
SCRIPT
chmod +x backup.sh
# 每天凌晨3點自動備份
(crontab -l 2>/dev/null; echo "0 3 * * * ~/openclaw-secure/backup.sh >> ~/openclaw-secure/backups/backup.log 2>&1") | crontab -
第8章:第七步 — 監控
# 查看日誌
docker compose logs --tail=100
# 即時監控
docker compose logs -f
# 找可疑存取
docker compose logs | grep -v "127.0.0.1" | grep -E "GET|POST|PUT|DELETE"
# 找認證失敗
docker compose logs | grep -i "401\|unauthorized\|forbidden"
監控腳本
cat > monitor.sh << 'SCRIPT'
#!/bin/bash
LOG_FILE=~/openclaw-secure/backups/monitor.log
if ! docker compose ps | grep -q "running"; then
echo "[警報 $(date)] OpenClaw容器掛了!" | tee -a $LOG_FILE
exit 1
fi
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3000/healthz)
if [ "$HTTP_CODE" != "200" ]; then
echo "[警報 $(date)] 健康檢查失敗: HTTP $HTTP_CODE" | tee -a $LOG_FILE
fi
SUSPICIOUS=$(docker compose logs --since 5m 2>/dev/null | grep -cv "127.0.0.1")
if [ "$SUSPICIOUS" -gt 10 ]; then
echo "[警報 $(date)] 偵測到 $SUSPICIOUS 次非本機存取!" | tee -a $LOG_FILE
fi
SCRIPT
chmod +x monitor.sh
(crontab -l 2>/dev/null; echo "*/5 * * * * ~/openclaw-secure/monitor.sh") | crontab -
完整8步安全檢查清單
| # | 步驟 | 驗證指令 | 預期結果 | |
| 1 | 關門 | `ss -tlnp \ | grep 3000` | 只看到 127.0.0.1:3000 |
| 2 | 上鎖 | curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3000/api/workflows | 401 | |
| 3 | 驗毒 | `grep -rl "eval\ | atob" ~/.openclaw/plugins/ --include="*.js"` | 沒有輸出 |
| 4 | 隔離 | docker compose ps | running (healthy) | |
| 5 | 選腦子 | 在OpenClaw裡發測試訊息 | LLM正常回覆 | |
| 6 | 備份 | ls ~/openclaw-secure/backups/data_*.tar.gz | 至少1個備份檔 | |
| 7 | 監控 | `crontab -l \ | grep monitor` | 有排程任務 |
| 8 | 權限 | stat -c '%a' .env | 600 |
下載配套檔案
- docker-compose.yaml — 生產環境安全設定
- .env.example — 環境變數範本
- 8步安全檢查清單PDF — 一頁紙列印版
留言區留"安全指南"或私訊"OpenClaw"取得下載連結。
做完了嗎?
截圖發留言區,把你的檢查清單結果貼出來,我幫你看有沒有漏掉的。
完整教學影片 在YouTube搜尋"Counterintuitive Engineering OpenClaw",一步一步帶你做。
Counterintuitive Engineering — 用程式碼解決一切問題 資料來源:Shodan、NVD、CNCERT,截至2026年3月


