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
羽毛球分组比赛记分
小程序二维码

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

小夜