feat: MeshSafe 文件摆渡安全卫士 v1.0 初始提交
核心功能: - 6 层检测管线: L0 结构分析 → L1 ClamAV → L2 文档深度检测 → L3 关键词匹配 → L4 YARA → L5 PE/二进制 - FastAPI + PostgreSQL + Redis + Docker Compose 架构 - 客户端 HMAC-SHA256 签名鉴权 + 限流 + 幂等性 - 控制台 UI (登录/Dashboard/诊断中心/策略管理/任务列表/测试中心/产品介绍页) - 三层诊断定时器 (error_scan 30s / db_aggregate 30s / container_check 5min) 并发与稳定性修复: - 诊断定时器 Redis 时间槽位锁 (多 worker 同一槽位只有一个执行) - JSONL 存储 fcntl 跨进程排他锁 + 容错解码 + 原子重写 - 移除 SQLite fallback, 统一 PostgreSQL - API_CLIENTS 脱敏为环境变量, .env 已 .gitignore
This commit is contained in:
37
scripts/init_clamav.sh
Normal file
37
scripts/init_clamav.sh
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
# =============================================================================
|
||||
# ClamAV 容器入口脚本(POSIX sh 兼容,Alpine/Debian slim 通用)
|
||||
# =============================================================================
|
||||
#
|
||||
# 逻辑:
|
||||
# 1) 检查 /var/lib/clamav 是否有 .cvd/.cld 签名库文件
|
||||
# - 有 → 直接启动 clamd
|
||||
# - 没有 → 尝试 freshclam 拉取(外网场景),失败则静默降级(内网正常)
|
||||
# 2) 光闸摆渡导入:用户把 clamav-db-*.tar.gz 解压到 ./data/clamav/ 后
|
||||
# 下次 docker restart meshsafe-clamav 会自动加载
|
||||
# =============================================================================
|
||||
set -eu
|
||||
|
||||
DATA_DIR="/var/lib/clamav"
|
||||
CVD_COUNT=$(ls -1 "$DATA_DIR"/*.cvd "$DATA_DIR"/*.cld 2>/dev/null | wc -l || true)
|
||||
|
||||
echo "[init_clamav] ClamAV 签名库检查..."
|
||||
echo "[init_clamav] 数据目录: $DATA_DIR 已有签名文件: $CVD_COUNT"
|
||||
|
||||
if [ "$CVD_COUNT" -eq 0 ]; then
|
||||
echo "[init_clamav] 签名库为空,尝试 freshclam 拉取(外网环境)..."
|
||||
if freshclam --stdout 2>&1 | tail -20; then
|
||||
NEW_COUNT=$(ls -1 "$DATA_DIR"/*.cvd 2>/dev/null | wc -l || true)
|
||||
echo "[init_clamav] freshclam 成功,新签名文件数: $NEW_COUNT"
|
||||
else
|
||||
echo "[init_clamav] freshclam 失败(内网光闸环境正常,等离线导入)"
|
||||
echo "[init_clamav] 离线导入步骤:"
|
||||
echo " 1. 外网: bash scripts/sync_clamav_db.sh → 生成 clamav-db-*.tar.gz"
|
||||
echo " 2. 光闸: 把 tar.gz 摆渡到内网"
|
||||
echo " 3. 内网: tar -xzf clamav-db-*.tar.gz -C ./data/clamav/"
|
||||
echo " 4. 内网: docker restart meshsafe-clamav"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "[init_clamav] 启动 clamd..."
|
||||
exec clamd --foreground
|
||||
Reference in New Issue
Block a user