version python license lang

補強 Wazuh Agent
管理能力

補強 Wazuh Dashboard 的網頁工具 — 涵蓋 Agent、群組、叢集節點、規則、API 使用者與記錄。不是取代,而是互補。

安裝於 Wazuh Manager · 預設 HTTPS · 英文 / 繁體中文 / 日文

開始使用

一行安裝、升級與移除

請以 root 在 Wazuh Manager(叢集模式為 Master 節點)執行,接著開啟 https://你的Manager_IP:5000

安裝
curl -fsSL https://raw.githubusercontent.com/jasoncheng7115/jt-wazuh-mgr/main/install.sh | sudo bash
升級
curl -fsSL https://raw.githubusercontent.com/jasoncheng7115/jt-wazuh-mgr/main/install.sh | sudo bash
與安裝相同 — 重新執行即原地更新,並保留你的 config.yaml。
移除
curl -fsSL https://raw.githubusercontent.com/jasoncheng7115/jt-wazuh-mgr/main/uninstall.sh | sudo bash
已安裝?本機執行:sudo bash /opt/jt-wazuh-mgr/uninstall.sh

manager 沒有對外網路? 離線安裝與升級的作業程序 →

能力

Dashboard 不好做的,這裡都好做

Agent 管理

即時狀態、進階篩選、多選批次重啟/重連/刪除/升級。

分布圖與統計

依狀態/作業系統/版本/群組/節點/同步視覺化分布,點選即篩選,並自動更新。

群組操作

加入/移出/合併/改名,CSV 匯入匯出(含預覽),編輯群組 agent.conf。

叢集節點

服務狀態、編輯 ossec.conf、重啟服務、下載 cluster.key、WPK 檔案、SSH 遠端操作。

同步監控

Master/Worker 對 Rules、Decoders、Groups、Keys、Lists、SCA 的同步,清楚看出差異檔案。

電子郵件警示

以表單管理 <email_alerts>,免手改 XML。一鍵同步到所有 Worker,自動備份。

規則檢視器

瀏覽、搜尋、篩選所有規則;可收合的父子階層;XML 語法上色。

Agent 升級

上傳 WPK 檔升級 Agent,即時追蹤進度並支援批次。

Queue DB 工具

跨節點檢查 Agent queue DB 用量,批次清除並自動重啟。

API 使用者與記錄

建立/管理 Wazuh API 使用者與角色;檢視並下載操作記錄與稽核事件。

內建安全

Wazuh API 登入(JWT)、HTTPS、輸入驗證、防路徑穿越與注入、IP 鎖定。

三語介面

英文、繁體中文與日文,從標題列的選單切換,偏好依瀏覽器記住。你輸入的值永遠不會被翻譯。

附 CLI

agent / group / node / stats 子指令,支援 table、JSON、CSV 輸出與 --dry-run。

偵測內容

規則套件,安裝與移除都乾淨

有些實際在跑的產品,Wazuh 根本沒有對應規則。這些套件為它們補上解碼器、規則與 CDB 清單,並以整包為單位安裝:先偵測規則 ID 衝突、備份原檔、驗證規則集,任何一步失敗就整包回滾。移除時會還原被覆蓋的原檔,且拒絕刪除安裝後被你改過的檔案。

IP 威脅情資

jt-ioc

多來源的 IP 威脅清單,另有高信心清單(兩個獨立來源都列出,或來自 Spamhaus DROP 等精選來源),比對登入、對外連線、Suricata 連線與網站請求。由套件自行安裝的更新程式每六小時重建。

惡意程式雜湊比對

jt-malware-hash

比對已知惡意程式的雜湊:檔案完整性事件、Sysmon 的程序/驅動程式/下載事件、Suricata、VirusTotal 與 osquery。不需要 key 時使用 Neo23x0 signature-base、CIRCL OSINT 與 LOLDrivers,每天更新、只增不減地併入清單;有 abuse.ch 的 key 時再加上 MalwareBazaar(約 110 萬筆 SHA-256)與 ThreatFox。清單停止更新會寄信通知。

免安裝程式偵測

jt-portable-detect

偵測在 Windows、Linux、macOS 上從下載、暫存、壓縮檔與卸除式磁碟執行的程式,以及遠端控制與穿隧工具,並以實際流量調校以降低誤報。

Zimbra

jt-zimbra

Zimbra 的 web shell、SMTP 指令注入(CVE-2026-73570)、帳號接管(網頁、SMTP、IMAP 的密碼噴灑;新位址登入後設定轉寄、改密碼或關閉兩步驟驗證;整個信箱匯出)與檔案完整性。

Zenarmor

jt-zenarmor

依類別分級已封鎖與未封鎖的威脅、C2 與穿隧網域、挖礦池。原廠指南的解碼器在 4.14 不匹配,這份可以,且以實際流量驗證過。

ShareTech(眾至)防火牆

jt-sharetech

ShareTech(眾至)NU 系列防火牆的 CEF syslog:防火牆防護、IPS、WAF、門檻、應用程式控管、管理者登入、設定變更與 SSL VPN。依流量方向分級,內部主機做出網際網路上每天都在發生的事時會突顯;只會出現在已感染主機上的 IPS 簽章為 level 12;只被記錄、沒被擋下的 WAF 指令執行為 level 10。登入時把帳號輸入成「x outcome=Success」也無法讓失敗變成功。

AdGuard Home DNS

jt-adguard

DNS 過濾依清單分級,被封鎖的查詢能追溯到真正發出查詢的用戶端;另含登入、有漏洞的版本,以及轉送放行查詢時的 OAST 回呼與 DNS 通道偵測。

跨服務的帳號安全

jt-account-guard

每個套件都以同一種方式標記每一次登入嘗試,所以同一個位址對 SSO、郵件伺服器與 Nextcloud 噴灑密碼、緊接著登入成功,或帳號在一個服務被鎖定後在另一個服務登入,會是一則告警,而不是三則互不相干的告警。

網頁探測與外洩

jt-web

Wazuh 自己的網頁規則會抓注入與目錄穿越;這個套件補上其餘的部分。.env、.git、雲端憑證、金鑰與傾印檔、已知漏洞端點與 web shell 的請求,以及是否真的回應了內容:回 200 且不是 HTML 是 level 12,單頁應用的備援頁面是 level 3。掃描工具與同一來源大量探測會被關聯,內部監控不再吵。

PHP 版本與 Web Shell

jt-php

直接從套件清單與 php.net 的發行清單,找出 PHP 少了安全性版本、或所在分支已不再修補的每台主機:不必等 CVE 資料,deb.sury.org、Remi、FreeBSD 與 Windows 版都算在內。另外偵測 PHP 被攻擊的痕跡:PHP-FPM 工作程序被 SIGSEGV 終止、程式執行前就記憶體耗盡、php.ini 被加上 auto_prepend_file、上傳目錄出現 PHP 檔與 .user.ini、網頁伺服器的 PHP 啟動 shell、PHP-CGI 參數注入。

Wazuh 低估的弱點

jt-runtime-vuln

Wazuh 只依 CVSS 嚴重度為弱點分級:CISA 已確認遭利用的 CVE 若評為 High 只有 level 10,弱點資料還沒評分的則完全不告警(某台 manager 上有 2,265 個)。本套件把所有 KEV 弱點升為 level 12 並寄出、讓未評分的弱點看得到,並在安全性版本發布隔天就把每台主機的 Node.js、Python 與 nodejs.org、python.org 的發行資料比對;另外檢查以 pip 安裝、版本低於移除外洩 CA 的 certifi、pip、uv。

Linux 主機完整性

jt-linux-integrity

帳號檔、sudo、所有排程位置、systemd 單元、PAM、ld.so.preload 與 SSH 金鑰的變更,依「是誰改的」分級:編輯器或 shell 改 /etc/shadow 是高等級,passwd 或套件管理程式改的則低。新的 UID 0、免密碼的 sudo 規則、pam_permit 是 level 14。shadow 檔一律不記差異,密碼雜湊不會進到任何告警。

容器內的弱點

jt-container-vuln

Wazuh 只看得到主機上的套件,看不到容器裡跑的東西。每天以 Trivy 掃描所有執行中容器的映像(掃描器本身也在鎖緊的容器裡跑,不掛 Docker socket),每個映像一則告警:嚴重弱點 level 10、已被實際利用(CISA KEV)level 12,只有內容變了才再告警;掃描或弱點資料庫失效時也會告警。

Proxmox VE

jt-proxmox

任務、高可用、叢集 quorum、Ceph 健康狀態、REST API 變更與 /etc/pve 檔案完整性;Wazuh 內建只解碼登入。

Proxmox Backup Server

jt-pbs

備份與驗證失敗、datastore 空間不足、備份被刪除或解除保護(勒索軟體的手法)、token、權限與雙因素變更。Wazuh 內建沒有對應規則。

Proxmox Mail Gateway

jt-pmg

登入與密碼噴灑、病毒、已投遞的釣魚信與 DMARC 失敗郵件、新的密件副本目標、外寄垃圾信與大量外寄、隔離區放行與漏洞利用嘗試。

OPNsense

jt-opnsense

防火牆本身的資安事件:網頁介面登入與暴力破解、誰改了什麼設定、記錄或偵測被關閉、VPN 認證、依內容分級的 Suricata 告警,以及列出有弱點套件的每日檢查。

Keycloak

jt-keycloak

登入失敗與暴力破解鎖定、憑證變更、被竊的 token 與授權碼,以及管理者變更;Wazuh 內建完全不解碼 Keycloak 的事件記錄。

Univention/Samba AD

jt-ucs

LDAP bind 失敗與密碼噴灑、特權群組變更、DNS 偽冒記錄、管理主控台登入與網域控制站服務失敗,並可選用 Samba 稽核。

Nextcloud

jt-nextcloud

依來源位址的暴力破解、雙因素失敗、新位址或公開位址的登入、以他人身分操作、安全 App 被關閉、削弱防護的 occ 指令、類勒索軟體的大量更名與刪除。把內建規則的數萬筆告警降到個位數。

LibreNMS

jt-librenms

登入失敗、被拒的 API token、帳號與告警設定變更、送不出去的通知,以及已知命令執行與 SQL 注入漏洞在存取記錄留下的跡象。

Synology DSM

jt-synology

暴力破解與自動封鎖、Hyper Backup 結果、快照與備份被刪除、記錄被清除、工作排程、硬碟健康與帳號變更,來源為記錄中心的 syslog。

Odoo ERP

jt-odoo

猜密碼與密碼噴灑、雙因素驗證、API 金鑰、資料庫管理員、模組上傳、匯出與被沙箱拒絕的程式碼,並附 odoo.conf 的組態評估。

Jitsi Meet

jt-jitsi

JWT 驗證失敗、被拒絕的主持人操作、錄影與直播、過舊或設定有誤的 Prosody,以及各 Jitsi 元件的健康狀態。

Z-Push(ActiveSync)

jt-zpush

密碼噴灑、帳號被接管(失敗後出現新裝置)、新裝置大量下載信箱、短時間大量寄信、遠端抹除與攻擊工具;Wazuh 內建完全不解碼它的記錄。

fail2ban

jt-fail2ban

依來源與重複程度分級的封鎖,以及 fail2ban 本身失靈:封鎖沒套用、服務停止、jail 失明。

Docker Engine

jt-docker

去除健康檢查洪流的 docker exec 偵測(shell、讀取機密、下載後執行、反向 shell、逃逸與挖礦程式仍會顯示)、未驗證的 TCP API、runc 逃逸嘗試,以及特權容器與主機掛載的狀態檢查。

jt-ipam

jt-ipam

jt-ipam 的登入與暴力破解、角色與 API token、顯示機密與完整匯出,以及遠端主控台工作階段(共用窺視、手動輸入的特權密碼、同一帳號連往多台主機)。

jt-vc-portal

jt-vc-portal

新位址或公開位址的登入、在其他位址使用的工作階段、暴力破解與撞庫、單一登入設定變更、大量下載與刪除錄影,以及入口的簽署金鑰。

可讀的告警摘要信

jt-alert-digest

把 wazuh-maild 的原始通知換成分組整理過、讀得完的摘要信,可同時發到 Zulip,並在主控台回報自己的故障。

裝上就安靜

不必先填站台清單就不會洗版。登入成功只在有意義時才告警:產品內建的管理帳號、公開位址、多次失敗之後,或某帳號第一次從某位址出現。

先看計畫再更新

清單並列 manager 上已安裝的版本與這裡提供的版本。更新前先列出每個檔案會怎麼處理,保留你改過的檔案與站台自己維護的清單,任何一步失敗就整包回滾。

主動回應,自己決定開不開

套件可以提供例如「封鎖暴力破解來源」的主動回應。開啟時寫入叢集每個節點並逐一驗證,任一節點不接受就全部還原;關閉時把檔案還原到原本的位元組。

老實說明範圍

套件在你按下安裝前就說清楚它會做什麼:寫入哪些檔案、加入哪個以 root 執行的排程工作、建立哪個 agent 群組。

Master 與 Worker

專為「叢集不會幫你做的事」而設計

熱重載,不重啟

叢集會同步規則檔,但每個節點仍跑著記憶體裡的舊規則集。一個按鈕重載所有節點,且不重啟 analysisd。

警告會顯示,不會被吞掉

載不進清單的重載仍然回應「ok」,只在一個多數工具會丟棄的欄位裡提到它剛剛停掉的規則。這個工具會讀那個欄位並顯示出來。

ossec.conf 不會被同步

規則、解碼器與 CDB 清單都會送到每台 worker,但讓清單真正生效的那行宣告不會。安裝套件時會把宣告寫進每個節點,並讀回確認。

設定漂移,看得見

比對節點之間「真正會影響偵測」的 ossec.conf 區段,而不是整檔比對後在雜訊裡找重點。

畫面預覽

螢幕截圖

每次發版之前

哪些會被檢查,哪些不會

這是一套能重啟節點、刪除代理程式、改寫 ossec.conf 的管理主控台,所以每次發版都當成資安部署看待,而不是單純的功能更新。

348 項離線測試

不需要 Wazuh Manager。認證測試由應用程式自己的路由表推導,日後新增的路由會自動被涵蓋,不必靠人記得補。

116 項瀏覽器檢查

23 條使用者旅程,在真實瀏覽器中對 mock 過的 API 執行:分頁、篩選、對話框、翻譯、標頭,以及任何靜默失敗的請求。

每次發版都跑 ZAP

OWASP ZAP 基線掃描,並逐 plugin 與既有紀錄比對——因為同樣的總數可能藏著「舊的消失、新的出現」。

機械式發版前檢查

共 21 項,其中包含「發佈內容不得含有內部主機名或位址」。靠記性維護的清單會靜默失效。

3,651 個套件案例

每個套件都裝進拋棄式的 Wazuh manager 容器逐案重放:每條規則都有必須命中的事件與不得命中的反例,包含檔案完整性事件與跨主機關聯。

尚未涵蓋的部分

沒有負載測試、沒有跨版本升級測試;套件沙箱在發版前執行,而不是在 CI 中;Windows 事件通道規則仍需在主機上以真實事件驗證。測試計畫裡白紙黑字寫著。

AGPL-3.0

可自由執行、研究、修改與散布。若你以網路服務形式提供修改版,使用者有權取得其原始碼——介面中即附有連結。

開始之前

系統需求

  • Python 3.8+ (Ubuntu 22.04 內建 3.10)
  • Wazuh Manager 4.x
  • 必須安裝在 Wazuh Manager 上 — 叢集模式安裝在 Master 節點。
  • 使用 Wazuh API 帳號登入:建議為本工具建立專用帳號(「API 使用者」分頁或 create_api_user.py),也可以用 wazuh;請避免使用 Dashboard 自己的 wazuh-wui。Web UI 模式不儲存密碼。
  • 請置於受信任的管理網段,勿將 5000 埠對外暴露於網際網路。
×