|
|
|
|
|
#!/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 ""
|