Linux Security Guardian

通过SSH MCP自动执行多客户端Linux服务器安全审计与修复,每日凌晨1点定时运行。

已扫描
适合谁
IT安全运维人员、云服务器管理员
不适合谁
无SSH MCP环境的用户、不熟悉命令行操作的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
中等(★★☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @cyber-bye/linux-security-guardian

Skill 说明

命令、参数、文件名以原文为准

Core-Extra 配置系统

所有管理员专属数据均存储于 core-extra/config/ 目录中——绝不硬编码于钩子或模块中。

配置文件说明

文件内容字段
core-extra/config/profile.md管理员身份 + 域名 + 邮箱Owner.name, Domain.primary, Email.noreply

代理如何使用配置

会话启动时 → 加载 core-extra/config/profile.md
→ Owner.name  → 用于 SOUL.md [WORKSPACE OWNER]
→ Email.noreply → 作为 mail-sender.md 中的发件人
→ Domain.primary → 用于配置生成

修改方式:仅编辑 core-extra/config/profile.md 即可。

规则

  • 钩子、模块或根目录中不得出现硬编码的姓名、域名或邮箱
  • 所有个人/管理员数据均来自 core-extra/config/profile.md
  • core-extra 目录是技能的一部分(发布至 ClawHub 时包含占位符)
  • 管理员在安装后只需填写一次 profile.md

多客户端架构

该守护程序管理多个客户端,每个客户端拥有独立的服务器集群。

SERVER_PROFILE.md 中定义 ## Client: 分组,审计将遍历全部客户端。

SERVER_PROFILE.md
├── ## Client: client-1 (7 台服务器)
│   ├── server-01
│   ├── server-02
│   └── ... server-07
├── ## Client: client-2 (N 台服务器) ← 可按需添加
│   └── ...
└── ## Client: [NEXT-CLIENT]

所有路径均以 <client>/<server>/ 为前缀:

  • 发现项:audit/results/<client>/<server>/<severity>/
  • 操作记录:actions/<client>/<server>/auto-done/
  • CVE 通告:cve/<client>/<server>/advisories/
  • 报告文件:reports/<client>/<server>/daily/

用途

该代理通过 SSH MCP 实现对 Linux 服务器的全自动化安全管理。

每天凌晨 1 点 IST:

  • 遍历所有客户端及服务器
  • 通过 SSH MCP 执行完整安全审计
  • 对已安装软件进行 CVE 检测
  • 对安全问题自动修复
  • 关键问题进入管理员确认队列
  • 向每台服务器、每个客户端及主管理员发送邮件报告

操作决策矩阵

核心原则:代理执行动作 vs 需要先请求确认

问题类型CVSS / 严重等级动作
CVE — 严重≥ 9.0立即发送邮件警报 + 队列待确认
CVE — 高7.0–8.9队列待确认 + 包含在报告中
CVE — 中4.0–6.9报告中包含 + 提供建议
CVE — 低< 4.0报告中仅作信息提示
CVE — KEV(CISA)任意视为严重 — 立即警报 + 必须在截止日期前确认
CVE — KEV + 勒索软件任意🔥 最高优先级 — 立即警报,尽快确认
内核更新可用任意更新前必须确认
安全类包更新任意更新前必须确认
SSH:PermitRootLogin yes严重警报 + 确认修复
SSH:PasswordAuth yes警报 + 确认修复
SSH:端口 22仅建议
空密码账户严重立即自动锁定
未知 root-uid 账户严重警报 + 确认锁定
长期未使用账户 > 90 天警报 + 确认锁定
/tmp 全局可写自动修复(chmod)
系统目录全局可写警报 + 确认修复
未知 SUID 二进制文件仅警报(由管理员决定)
登录失败激增 > 20 次/小时立即警报
新发现未知 cron 任务立即警报
需要更改防火墙规则任意必须确认
开放意外端口警报 + 确认关闭
无需运行的服务警报 + 确认停止
SSL 证书将在 30 天内过期警告警报
SSL 证书已过期严重立即警报
磁盘使用率 > 85%警告警报
磁盘使用率 > 95%严重立即警报
auditd 未运行自动启动 + 警报
fail2ban 未运行自动启动 + 警报
日志文件存在可疑条目警报并附上片段提取

审计模块

模块检查内容SSH MCP 命令
01-system操作系统、内核版本、运行时间、最近重启、硬件信息ssh_exec(op="run", sessionId, command="uname -a; cat /etc/*release")
02-users用户账户、root 权限、sudo 使用、空密码、长期未使用账户ssh_exec(op="run", sessionId, command="cat /etc/passwd; cat /etc/shadow; ...")
03-sshsshd_config 完整审计 — 20+ 检查项 + 弱加密算法/消息认证码/密钥交换(CIS 标准)`ssh_exec(op="run", sessionId, command="cat /etc/ssh/sshd_config; sshd -T 2>/dev/null
04-auth登录历史、失败登录、PAM 配置、fail2ban 自动安装 + SSH 封锁规则、密码策略强制ssh_exec(op="run", sessionId, command="last; cat /var/log/auth.log")
05-services正在运行的服务、不必要的服务、失败的 systemd 单元ssh_exec(op="run", sessionId, command="systemctl list-units ...")
06-packages待更新包、安全更新数量、unattended-upgrades 是否启用(仅安全更新)ssh_exec(op="run", sessionId, command="apt list --upgradable 2>/dev/null")
07-cveCVE 检测 — 通过 SSH MCP 远程执行 + API 接口获取ssh_exec(op="run", sessionId, command="dpkg-query -W ...; curl ...")
08-network开放端口、监听服务、活跃连接ssh_exec(op="run", sessionId, command="ss -tulpn; netstat -tulpn")
09-firewalliptables/nftables/ufw 规则审计ssh_exec(op="run", sessionId, command="iptables-save 2>/dev/null")
10-filesystemSUID/SGID、全局可写、/tmp、粘滞位ssh_exec(op="run", sessionId, command="find / -perm -4000 ...")
11-kernelsysctl 安全参数 — 15+ 检查项 + BPF 限制(unprivileged_bpf_disabled, bpf_jit_enable)ssh_exec(op="run", sessionId, command="sysctl -a 2>/dev/null")
12-logsauth.log、syslog、kern.log — 异常行为扫描ssh_exec(op="run", sessionId, command="tail -100 /var/log/syslog")
13-crons系统及用户 cron 任务 — 未知任务标记ssh_exec(op="run", sessionId, command="cat /etc/crontab; ls -la /var/spool/cron/")
14-ssl所有域名/服务的证书到期时间检查ssh_exec(op="run", sessionId, command="openssl x509 -in ... -noout -dates")
15-docker若运行中 — 镜像漏洞、容器配置、daemon.json 安全默认值(userns-remap、no-new-privileges、seccomp)ssh_exec(op="run", sessionId, command="docker ps; docker images; cat /etc/docker/daemon.json")
16-disk磁盘使用率、inode 使用率ssh_exec(op="run", sessionId, command="df -h; df -i")
17-integrity若安装 AIDE/tripwire 则执行完整性检查ssh_exec(op="run", sessionId, command="aide --check")
18-rootkit若安装 rkhunter/chkrootkit 则执行检测ssh_exec(op="run", sessionId, command="rkhunter --check --skip-keypress")
19-cis-scoringCIS 基准符合度评分(跨模块聚合)(从所有模块汇总)
20-systemd-analyzesystemd 服务沙箱 — 每个服务 80+ 安全指令ssh_exec(op="run", sessionId, command="systemd-analyze security --json=short 2>/dev/null")
21-mount-hardening挂载点安全 — /tmp、/dev/shm、/var/tmp 上禁用 exec、setuid、device 访问`ssh_exec(op="run", sessionId, command="mount
22-apparmor-selinuxAppArmor/SELinux MAC 状态 — 强制模式、受限进程`ssh_exec(op="run", sessionId, command="aa-status 2>/dev/null
23-proc-hidepid/proc hidepid 强制 — 进程可见性隔离`ssh_exec(op="run", sessionId, command="mount
24-swap-encryption交换分区加密 — LUKS/dm-crypt 检查ssh_exec(op="run", sessionId, command="swapon --show 2>/dev/null")
25-usbguardUSB 设备授权 — USBGuard 策略与守护进程状态ssh_exec(op="run", sessionId, command="systemctl is-active usbguard")
26-ipv6-auditIPv6 安全 — RA 接受、重定向、隐私扩展、NDP 加固ssh_exec(op="run", sessionId, command="sysctl net.ipv6.conf.all.disable_ipv6")

执行规则:所有命令均通过 ssh_exec(op="run", sessionId, command="<command>")ssh_exec(op="logs", commandId=cmdId) 执行。禁止本地执行。


发现项严重等级

等级颜色含义
CRITICAL🔴紧急风险,需立即处理
HIGH🟠显著风险,本周内修复
MEDIUM🟡中等风险,本月内修复
LOW🔵轻微问题,可择机处理
INFO信息提示,无需操作
PASS🟢检查通过,一切正常

确认流程

当需要管理员确认时:

发现项被检测到(需确认)在 <client>/<server>
    ↓
写入 actions/<client>/<server>/pending-confirm/<client>-<server>-<id>-<slug>.md
    ↓
包含在邮件报告中的“需要您决策”部分,并附带 <client>/<server> 上下文
    ↓
管理员回复:APPROVE <id> / DENY <id> / SKIP <id>
(完整 ID 格式:<client>-<server>-<type>-<NNN>,如:client-1-server-01-ACT-20260529-001)
    ↓
搜索所有 actions/*/*/pending-confirm/ 中匹配的 ID
    ↓
APPROVE → 代理通过 SSH MCP 连接至 <client>/<server> → 执行操作 → 记录至 history/
DENY    → 操作跳过,记录备注
SKIP    → 延迟至下次审计

邮件报告结构

报告按服务器、客户端汇总及主报告分别发送,通过邮件插件/技能实现。

每台服务器报告

主题:[Linux Guardian] <client>/<server> — YYYY-MM-DD | 评分:N/100 | 严重:N 高:N

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LINUX SECURITY GUARDIAN — 夜间报告
客户: <client> | 服务器: <server> | <IP> | YYYY-MM-DD 01:00 IST
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

执行摘要
安全评分:N/100 | 等级:X
严重:N | 高:N | 中:N | 低:N
自动修复:N | 待确认:N | 通过:N

━━ 🔴 严重(需立即处理)
[发现详情]

━━ 🟠 高
[发现详情]

━━ ⚡ 自动操作(安全,非破坏性)
[已自动修复的内容]

━━ 🔑 需要您的决策(回复 APPROVE/DENY/SKIP <id>)
[待确认项,含 ID — 包含 <client>/<server> 前缀]

━━ 📦 CVE 报告
[按严重程度列出的 CVE]

━━ 🌐 网络与防火墙
[端口/防火墙状态]

━━ 🟡 中 / 低
[非紧急发现]

━━ 🟢 全部通过
[通过的检查项]

━━ 下次审计:明天 01:00 IST

客户端汇总报告

主题:[Linux Guardian] <client> 汇总报告 — YYYY-MM-DD | 服务器:N/N | 严重:N 高:N

客户: <client>
已审计服务器:N / 总数 N
平均评分:N/100

| 服务器 | 评分 | 严重 | 高 | 评分等级 |
|--------|------|------|----|----------|
| ...    | ...  | ...  | ...| ...      |

跨服务器模式:[多个服务器发现相同漏洞]

安全评分公式

score = 100
score -= (critical_count × 20)
score -= (high_count × 10)
score -= (medium_count × 3)
score -= (low_count × 1)
score = max(0, score)

等级划分:90-100 = A | 75-89 = B | 60-74 = C | < 60 = F

文件夹结构

linux-security-guardian/
  audit/
    modules/                     ← 01-system.md ... 26-ipv6-audit.md
    results/
      <client>/<server>/
        critical/  high/  warning/  info/  pass/
          YYYY-MM-DD-<check>.md  ← 每客户端每服务器的发现记录

  actions/
    <client>/<server>/
      auto-done/                 ← 自动修复记录(已记录)
        YYYY-MM-DD-<slug>.md
      pending-confirm/           ← 等待确认
        <id>-<slug>.md
      history/                   ← 所有批准/拒绝的操作记录

  cve/
    cve-scan.sh                  ← 外部 CVE 扫描脚本(接受 --client --server)
    external-sources.md          ← 所有 API 地址、查询参数、示例
    .cache/                      ← 共享缓存的 API 响应(6 小时 TTL)
    <client>/<server>/
      scan-results/              ← YYYY-MM-DD.md
      advisories/                ← <cve-id>.md

  reports/
    <client>/<server>/
      daily/YYYY-MM-DD.md
      weekly/YYYY-WNN.md

  network/
    <client>/<server>/
      firewall-snapshots/        ← YYYY-MM-DD-rules.txt
      port-scans/                ← YYYY-MM-DD.md
      proposed-changes/          ← <id>-<change>.md

  hooks/
    audit-runner.md              ← 主审计调度器(1 AM 审计循环,支持多客户端)
    on-critical.md               ← 任一严重发现触发(含客户端/服务器上下文)
    on-confirm-reply.md          ← 处理管理员 APPROVE/DENY/SKIP 回复
    pre-action.md                ← 执行任何操作前的安全检查
    post-action.md               ← 验证操作是否成功
    mail-sender.md               ← 使用邮件插件/技能发送报告

  crons/
    active/
      nightly-audit.md           ← 每日凌晨 1 点 IST 的永久任务
    completed/

  core-extra/
    config/
      profile.md                 ← 管理员姓名、域名、邮箱(安装后填写一次,不硬编码)
    hooks/                       ← 共享钩子(镜像 hooks/ 结构)
    templates/                   ← 共享模板

  errors/
    raw/                         ← 原始错误日志

  memory/
    schema.json
    index.json

  SOUL.md                        ← 代理上下文(多角色)
CB
@cyber-bye

已收录 2 个 Skill

相关推荐