Mini-HIDS:用 Agent Skill 把单机防火墙与入侵检测接到对话里

前言

小型 Linux 服务器上,SSH 爆破和可疑 Web 请求往往靠人工翻日志、手写 iptables 规则处理。完整 SIEM 或重型 EDR 对 VPS、个人节点来说成本偏高;纯脚本又难和日常用的 AI Agent 工作流对齐。下面介绍 SkillHub 上的 Mini-HIDS:把轻量主机检测与封禁能力封装成通用 Skill,让 Agent 通过本地 MCP 查询状态、读告警、执行封禁。

这是什么

Mini-HIDS 在 SkillHub 上的坐标为 @user_9a8108cb/minihids,当前版本 v1.2.6,来源为社区(community),分类 it-ops-security(子类含服务器运维、安全扫描),发布者为 user_9a8108cb(页面展示作者 netkr)。官方一句话说明是:使用 Agent 来接管您的服务器防火墙(将链接发给 Agent 封装为 skill)。

Skill 包内基于标准 SKILL.md 格式,底层对应 GitHub 项目 netkr/mini-hids:用 Python 标准库实现的轻量 Linux 主机入侵检测,侧重单机、可审计、Agent 原生集成。SkillHub 标签标明 requires_api_key=false,安装 Skill 本身不依赖额外 API Key。

核心功能

以下能力均来自 Skill 包内 SKILL.md 与模块划分说明,仅列已写明的能力。

  1. 日志与检测:滑动时间窗口统计 SSH 登录失败;从 Web 访问日志识别明显攻击载荷;对常见脚本目录做增量 Webshell 启发式扫描。
  2. 封禁与持久化:封禁状态写入 SQLite;支持 iptables、nftables、fail2ban 等防火墙后端(可自动检测或显式配置)。
  3. Agent / MCP:mcp_server.py 以 stdio 暴露 MCP 工具,供 Agent 调用,而非面向人的 CLI 主入口。
  4. MCP 工具(当前暴露列表):
    - mini_hids_status
    - mini_hids_get_alerts
    - mini_hids_get_blacklist
    - mini_hids_ban_ip
    - mini_hids_unban_ip
    - mini_hids_scan_webshell

主要代码角色:mini_hids.py 守护进程;hids_core.py 控制面 API;hids_common.py 配置、持久化与防火墙逻辑;config.json 为 daemon 与 MCP 共用配置。

SkillHub 页面侧栏显示该 Skill 约 1168 次下载;腾讯安全相关扫描结论在页面元数据中为「安全,无风险」(具体报告链见 SkillHub 详情页)。

安装与启用

通过 SkillHub 安装到 Agent

官方页面给出的安装提示为:先阅读 SkillHub 安装文档,再安装本 Skill。

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_9a8108cb/minihids。

若已安装 skillhub CLI,需把 Skill 装到当前 Agent 的 skills 目录(文档要求使用 --dir,否则默认 ./skills/ 可能不被识别)。示例:

command -v skillhub && skillhub --version
skillhub install @user_9a8108cb/minihids --dir <你的 Agent skills 目录>

常见路径(摘自 SkillHub 安装文档):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下 .agents/skills/

也可从 SkillHub 下载 Zip(页面链接形如 https://api.skillhub.cn/api/v1/download?slug=@user_9a8108cb/minihids,包名对应 v1.2.6),解压后把 Skill 目录放到上述 skills 路径。页面还提供「安装到本地 Agent」入口(标注支持 WorkBuddy 等客户端)。

在目标服务器上跑检测与 MCP

Skill 说明中的典型服务器侧步骤如下。

  1. 按环境修改 config.json(日志路径、Web 根目录、封禁时长、TRUSTED_IPS 等)。
  2. 启动守护进程(需要读日志、写防火墙时通常需 root):
sudo python3 mini_hids.py
  1. 启动本地 MCP 服务:
python3 mcp_server.py
  1. 在 MCP 客户端中配置 stdio 启动方式,例如:
{
  "mcpServers": {
    "mini-hids": {
      "command": "python3",
      "args": ["/absolute/path/to/mini-hids/mcp_server.py"]
    }
  }
}

Skill 包内另有 examples/claude_desktop_mcp.json 可作路径替换参考。

另一种入门方式(Skill 内写明):把 https://github.com/netkr/mini-hids 发给 Agent,并要求「帮我把这个项目封装成 skill」,由 Agent 完成克隆与 MCP 封装。这与 SkillHub 已封装版本可二选一,以你实际工作流为准。

典型用法

封装后首次部署:编辑 config.json 中的 LOG_PATHS、WEB_ROOT、MAX_FAILURES、WINDOW_SECONDS、BAN_TIME 等,再 sudo python3 mini_hids.py 拉起 daemon。

Agent 查状态:通过 MCP 调用 mini_hids_status,返回结构化 JSON,例如:

{
  "success": true,
  "data": {
    "is_running": true,
    "pid": 12345,
    "firewall_backend": "iptables"
  }
}

响应安全事件:Agent 可读 mini_hids_get_alerts、查 mini_hids_get_blacklist,再按需 mini_hids_ban_ip / mini_hids_unban_ip;需要即时扫 Web 目录时可调 mini_hids_scan_webshell。

配置项应只改 config.json,勿手改 Python 源码。TRUSTED_IPS 中的 IP 不会被 daemon 或 MCP 封禁;FIREWALL_BACKEND 留空表示自动检测。

适用场景与注意

适合:VPS、小型业务机、个人运维节点;希望检测逻辑简单可读;希望 AI Agent 在本地高权限环境下通过 MCP 做查询与封禁编排。

不适合(Skill 内明确写出):多主机关联分析、内核级遥测、对误报率要求极高的生产级安全平台。

注意:

  • 误封风险:TRUSTED_IPS 维护不当可能把自己锁在机器外;封禁类操作应视为高权限。
  • Web 攻击与 Webshell 检测为启发式规则,告警宜作信号而非最终裁决。
  • MCP 与 daemon 应部署在能访问本地日志与防火墙的同一侧;远程 Agent 需自行解决 SSH 与权限边界,Skill 文档强调本地或服务器侧 MCP 才是合理接入方式。

结尾

Mini-HIDS Skill 把单机日志检测、SQLite 黑名单与防火墙动作收敛成 Agent 可调用的 MCP 工具集,适合在 SkillHub 一键安装进 Cursor、Claude Code 等客户端,再在目标 Linux 主机上按 config.json 启动 daemon 与 mcp_server.py。

官方入口:

  • SkillHub 页面:https://www.skillhub.cn/skills/user_9a8108cb/minihids
  • API 坐标:https://api.skillhub.cn/user_9a8108cb/minihids
  • 上游项目:https://github.com/netkr/mini-hids
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye