#!/bin/bash ############################################################################### # OpenClaw 配置安全修复脚本 (v2 - 精简版) # # 用途:仅修复真正有价值的安全问题 # 执行前请确认已备份:./deploy.sh backup # # 已排除的"误报"(用户确认无需修复): # - gateway.bind = "lan" → 实际绑定 Tailscale,安全 # - dangerouslyDisableDeviceAuth = true → 已知权衡,Tailscale 环境下可接受 # - 无 rateLimit → Tailscale 封闭网络 + 强 token,风险极低 # - MemoryLimit 废弃 → 实际 service 文件不存在此参数 ############################################################################### set -e WORKSPACE="/root/.openclaw/workspace" CONFIG_FILE="/root/.openclaw/workspace/openclaw-config.json" TIMESTAMP=$(date +%Y%m%d-%H%M%S) echo "🔧 OpenClaw 配置安全修复脚本 (精简版)" echo "======================================" echo "" echo "📋 仅修复以下问题:" echo " 1. 添加 plugins.allow 白名单(良好安全习惯)" echo "" echo "⚠️ 已排除(用户确认无需修复):" echo " - gateway.bind (Tailscale 环境安全)" echo " - dangerouslyDisableDeviceAuth (已知权衡)" echo " - rateLimit (威胁模型不匹配)" echo " - MemoryLimit (实际不存在)" echo "" read -p "确认继续?(y/N): " confirm if [[ ! $confirm =~ ^[Yy]$ ]]; then echo "❌ 已取消" exit 0 fi # 备份当前配置 echo "" echo "📦 备份当前配置..." cp "$CONFIG_FILE" "${CONFIG_FILE}.backup.${TIMESTAMP}" echo "✅ 备份完成:${CONFIG_FILE}.backup.${TIMESTAMP}" echo "" # 修复:设置 plugins.allow echo "🔒 修复:配置插件白名单" node -e " const fs = require('fs'); const config = JSON.parse(fs.readFileSync('$CONFIG_FILE', 'utf8')); config.plugins.allow = ['telegram', 'qwen-portal-auth', 'memos-cloud-openclaw-plugin']; fs.writeFileSync('$CONFIG_FILE', JSON.stringify(config, null, 2)); " echo "✅ 完成" echo "" echo "======================================" echo "✅ 修复完成!" echo "" echo "📋 下一步操作:" echo "1. 检查配置变更:git diff $CONFIG_FILE" echo "2. 重启服务:./deploy.sh restart" echo "3. 验证状态:./deploy.sh health" echo "4. 安全审计:openclaw security audit --deep" echo "" echo "⚠️ 如需回滚:" echo "cp ${CONFIG_FILE}.backup.${TIMESTAMP} $CONFIG_FILE" echo "./deploy.sh restart" echo ""