Stanley-Git-Hub/ubuntu-watchdog

GitHub: Stanley-Git-Hub/ubuntu-watchdog

Ubuntu Watchdog 是一套基于 systemd timer 的 Ubuntu 健康与安全监控套件,整合 ClamAV、rkhunter、AIDE、SMART、Suricata 等工具并提供电源感知调度与 HTML 报告。

Stars: 0 | Forks: 0

# 🐕 Ubuntu Watchdog v6.0 为 Ubuntu 提供的综合健康与安全监控 — **同一项目 在笔记本电脑和 PC 上均可保持原样运行**。一切都会自动检测: 磁盘(NVMe 和 SATA)、用户、路径、机器类型(有电池 → 笔记本电脑)。 ![每日 HTML 报告示例](https://static.pigsec.cn/wp-content/uploads/repos/cas/19/19a2c4925caf682733a20a786e1c154e61c7388742fc8ba84251b21488cd953f.png) ## 安装说明(新机器 = PC 和笔记本电脑) ``` # 1) 将整个文件夹 ~/projekt (watchdog + *-gui) 复制到新机器 # 2) 安装依赖项 sudo apt install clamav clamav-daemon rkhunter aide smartmontools \ fail2ban suricata jq python3-flask curl # 3) 一个命令即可部署所有内容 (timers, udev, limits, GUI 控制台) sudo ~/projekt/watchdog/install.sh ``` 安装脚本是**幂等的** —— 可以重复运行(例如在修改 脚本之后)。同时它会从旧版本进行迁移:从 root 的 crontab 和 `/etc/cron.daily/daily-maintenance` 中移除旧行(已被 timers 取代)。 ## 时间表(systemd timers,全部设为 `Persistent=true`) 如果机器在特定时间未开机,错过的任务将在开机后**自动补齐** —— 因此当机器在指定时间未运行时,不会再出现任务被“静默”跳过的情况(这是 cron 之前的问题)。 | 时间 | Timer | 任务内容 | |--------------|-------------------------|--------------------------------------------| | 每天 19:00 | `watchdog-daily` | 维护:软件包、/tmp、日志轮转(周日:+ apt clean) | | 每天 19:15 | `watchdog-main-report` | 主 HTML 报告(root) | | 每天 19:30 | `watchdog-report` | 日常 cron 报告(用户) | | 周日 12:00 | `watchdog-clamav` | 病毒扫描(ClamAV) | | 周日 13:00 | `watchdog-rkhunter` | rootkit 检查 | | 周日 13:30 | `watchdog-smart` | **所有**物理磁盘的 SMART 健康状态 | | 周日 14:00 | `watchdog-aide` | 系统文件完整性校验 | | 每 10 分钟 | `watchdog-deferred` | 检查电源状态 + 执行被推迟的扫描 | ## 基于电源状态的行为(笔记本电脑) 配置文件:`etc/watchdog.conf` * 在**电池模式**下,繁重的扫描任务(ClamAV、rkhunter、AIDE)会被推迟,并在连接充电器后自动执行(udev 规则 + deferred timer)。 * 当电池电量低于 `SURICATA_BATTERY_MIN` 阈值(默认为 40%)时,**Suricata IDS** 将停止运行;并在充满电或重新连接电源后再次启动。 * 在**台式机**(无电池)上,这些都不适用 —— 一切都会正常运行。 ## 报告与 GUI * 报告:`reports/watchdog-YYYY-MM-DD.html`(主报告)和 `report-YYYY-MM-DD.html` (每日报告) —— 采用统一的深色主题设计,页眉显示主机名、机器类型和电池状态(在不同机器上很容易区分报告)。 * GUI 控制台(Flask,仅限 127.0.0.1;用户服务在登录后启动): * `:5000` Suricata 威胁控制台 + Fail2ban * `:5001` ClamAV 扫描控制台 * `:5002` 计划任务 * `:5003` Rkhunter 控制台 * `:5004` 更新控制台 * 主报告顶部的工具栏中提供了所有控制台的链接。 ## 结构 ``` watchdog/ ├── install.sh ← jednotná instalace na aktuální stroj ├── etc/watchdog.conf ← konfigurace (napájení, SCAN_DIRS, DISK_DEVICE…) ├── bin/ │ ├── common-functions.sh ← sdílené funkce + auto-detekce (disk, uživatel…) │ ├── ubuntu-watchdog.sh ← hlavní HTML report │ ├── cron-report.sh ← denní report │ ├── daily-maintenance.sh ← denní údržba │ ├── clamav-scan.sh / rkhunter-check.sh / aide-check.sh / smart-check.sh │ ├── power-handler.sh ← odložené skeny + Suricata dle napájení │ └── suricata-iface.sh ← af-packet rozhraní podle aktivní sítě └── reports/ ``` 子安装脚本 `install-resource-limits.sh`(由 `install.sh` 调用) 和 `install-suricata-iface.sh`(独立部署 iface-sync)被保留; 其他所有内容均由 `install.sh` 自行生成。生成的报告和早期 被替换的文件(`legacy/`)不纳入版本控制 —— 详见 `.gitignore`。 ## 诊断 ``` systemctl list-timers 'watchdog-*' # rozvrh a poslední běhy systemd-cgtop # limity prostředků za běhu cat /var/log/cron-jobs/power-handler.log # rozhodování podle napájení ls /var/lib/watchdog/deferred/ # aktuálně odložené skeny ``` ## 许可证 MIT —— 详见 [LICENSE](LICENSE)。
标签:Metaprompt, 健康监测, 应用安全, 数字取证, 系统维护, 自动化脚本, 运维监控, 逆向工具