🔒 安全巡检:2026-09-27

This commit is contained in:
ATRI
2026-09-27 22:02:58 +08:00
parent 3c36028b23
commit 7223526df9
2 changed files with 156 additions and 0 deletions
@@ -0,0 +1,102 @@
# 🔒 宿主机周度安全巡检报告 — 2026年09月27日(周日)
**巡检时间**:2026-09-27 22:00 ~ 22:20(CST)
**巡检主机**:ser298351…(宿主机)
**执行方式**:`ssh_exec` 白名单命令逐项采集(清单 13 大项)
**总结论**:🟢 **未发现恶意软件与入侵痕迹** | 🟡 需关注 4 项 | 🟡 待确认 1 项 | 本次**未执行任何处置**(无明确恶意项)
---
## 📊 系统状态速览
| 指标 | 数值 | 判定 |
|:---|:---|:---|
| 负载(1/5/15 分钟) | 1.41 / 1.31 / 1.32(8 核) | 🟢 约 17% |
| 内存 | 7.8 GiB,已用 6.1 GiB,可用 1.4 GiB | 🟡 79% |
| **Swap** | **4.0 GiB,已用 4.0 GiB(余 31 MiB)** | 🔴 99.2%(见关注项 3) |
| 磁盘 `/` | 16G / 24G(70%),可用 6.9G | 🟢 |
| 磁盘 `/www` | 35G / 79G(47%),可用 40G | 🟢 |
| 运行时长 | 13 天 20 小时 | 🟢 |
| 容器 | 16 运行 / 1 Exited(`napcat`,5 周前主动停,已知孤儿容器) | 🟢 |
---
## ✅ 安全检查结果表
| # | 检查项 | 状态 | 说明 |
|:--|:---|:---:|:---|
| 1 | 异常进程 / CPU 占用 | 🟢 | TOP CPU 全为已知服务(QQ 客户端 2.5%、mysqld、Node、Java 系);无接近 100% 的陌生进程 |
| 2 | 资源异常进程(内存) | 🟢 | TOP MEM 首位为 AstrBot 本体(RSS ≈ 2.9 GB,37.5%)、其次 OJ 的 Java 服务;均为已知 |
| 3 | 网络外联 | 🟢 | ESTABLISHED 仅 2 条:容器管理通道(172.21.0.3→22)、frps 隧道(本人客户端)。无陌生外联 |
| 4 | 恶意进程名扫描 | 🟢 | 命中仅 T2I 服务的 Playwright Chromium(`--user-data-dir=/tmp/playwright_*`),属正常渲染进程 |
| 5 | 计划任务 | 🟢 | root 仅 acme.sh 证书续期;`/etc/crontab` 为标准 run-parts;cron.d 为 certbot / e2scrub_all / php;无 at 任务 |
| 6 | 开机自启服务 | 🟢 | 抽检全部为已知项(docker / containerd / fail2ban / frps / cron 等),无指向 /tmp 或 /root 脚本的陌生 unit |
| 7 | SSH 登录与公钥 | 🟡 | 近期成功登录**全部为本机容器来源**(定时任务,每日 5 次 × 30 分钟);失败爆破累计 726 条;公钥 1 条待确认(见待确认项) |
| 8 | 账号与权限 | 🟢 | UID=0 仅 root;无空密码账号;sudoers 为标准配置 |
| 9 | 临时目录 | 🟢 | `/tmp`、`/dev/shm`、`/var/tmp` 近 30 天**零可执行文件**;`/tmp/.X11-unix`、`.XIM-unix` 为空目录(正常) |
| 10 | 系统文件改动 | 🟢 | 近 7 天仅 snap / lxd 相关 unit(13 天前安装时生成),无异常 |
| 11 | 防火墙 | 🟡 | ufw **inactive**;仅 fail2ban 的 sshd 链生效(累计封禁 **1299** 次,当前封禁 3 个) |
| 12 | Docker 安全 | 🟢 | 无异常特权容器(仅 OJ 判题机 `Priv=true`,属预期);**无容器挂载根目录**;2 个挂 `docker.sock`(portainer、AstrBot,既有设计);监听端口全部对应已知容器 |
| 13 | 日志异常 | 🟢 | `journalctl -p err` 近 7 天仅 sshd `kex_exchange_identification` 扫描噪声,无高危错误 |
| 14 | rootkit 扫描 | ⚪ | 未安装 rkhunter / chkrootkit,未做程序化扫描;已人工核对上表关键项 |
---
## 🚨 威胁发现与处置记录
**结论:未发现恶意软件与入侵痕迹。本次未执行任何处置动作(kill / 隔离 / 清 cron / 移除公钥:0 项)。**
### 🟡 关注项 1 —— frps 服务端**仍未配置访问 token**(连续第 2 周)
- **事实**:`/opt/frp/frps.ini` 现仅含 `bind_port` / `dashboard_port` / `dashboard_user` / `dashboard_pwd` 四项,**无 token 字段**(与 9/20 巡检结论一致,未变更)。
- **本周实况**:近 7 天 frps 日志中,**互联网测绘扫描器(主机名 `censys.local`)至少 5 次成功 login**(9/25 18:03、9/26 06:10 / 07:31 / 20:13、9/27 09:10,来源 IP 属 `66.132.x.x` 段)。每次登录后**立即 exit,未注册任何代理**。
- **本人客户端正常**:`36.148.83.112`(hostname `Kronecker`,frp 0.71.0)注册了 `ssh` 与 `alist` 两条 tcp 代理,今日 20:10 有一次正常重连(`Replaced by client`)。
- **含义**:无认证即意味着**任何人都可接入 7000 端口注册隧道**,把本机当作流量中转。当前入口敞开、尚未被实际利用。
### 🟡 关注项 2 —— frps 管理面板公网监听 + 弱口令(未变更)
- **事实**:面板端口 **7500 监听在 `*`(全网卡)**,账号 `admin`,口令为 **6 位纯数字弱口令**(值已隐去,不入档)。
- **处置**:按规矩**只报告、不擅动** —— 本轮仅本地读取配置键名,**未登录面板、未改动任何参数**。
### 🟡 关注项 3 —— 内存 / Swap 压力(连续第 9 天贴近顶格)
- **事实**:Swap 已用 **4.0 / 4.0 GiB(余 31 MiB,99.2%)**,可用物理内存 1.4 GiB。最大占用仍是 **AstrBot 本体(RSS ≈ 2.9 GB,占 37.5%)**,其次为 OJ 的 Java 服务。
- **趋势**:9/14 约 1.4 G → 9/16 约 2.4 G → 9/18 约 2.7 G → 9/20 约 3.9 G → **今晨顶满 → 9/21 自主重启后回落 2.6 G → 今日再度顶满**(「重启回落 → 再爬满」第四轮)。
- **含义**:非故障、非入侵。但 Swap 打满时内核可能触发 OOM 杀进程,**第一批被杀的极可能是占用最大的 AstrBot**。
- **未处置**:静默任务期间不动容器,已连续多日在叫醒消息中报备,等主人一句话(重启约 30 秒)。
### 🟡 关注项 4(本轮新发现)—— 自建 T2I 渲染服务监听 `0.0.0.0:8999`
- **事实**:`t2i.service`(AstrBot T2I Service,python3)监听 **`0.0.0.0:8999`**,该服务**无认证机制**(设计上仅供内网调用)。因 **ufw 未启用**,其公网可达性**取决于云安全组规则**。
- **⚠️ 收敛时的坑(必须先说清)**:AstrBot 容器是**经 `172.17.0.1:8999`(docker0 网关)**调用渲染的,因此**不能简单绑到 `127.0.0.1`** —— 那会直接打断每日札记/瞬间的图片渲染。正确做法是**绑定到 docker0 那一个网卡地址**,或改为容器网络内直连。
- **处置**:**只报告、不擅动**。
### 🟡 待确认项 —— SSH 公钥 1 条(同上周,无变化)
- **事实**:`root` 与 `Kronecker` 账户各存 **同一把** RSA 4096 公钥,文件时间 **2025-08-09**,注释为一个 QQ 邮箱地址(号码不入档)。
- **评估**:**无异常使用迹象**(无来自未知来源的对应登录;近期成功登录全部来自本机容器网段)。**不排除为本人旧设备或友人留用**。
- **处置**:按规矩**只报告、不擅动** —— 误删合法公钥可能导致主人无法登录。等主人一句话确认。
---
## 💡 加固建议(3 条,均需主人授权后执行)
1. **frps 加认证(最优先)**:在 `frps.ini` 配 `token`(≥32 位随机)+ `tls_only = true`;改完须**同步更新隧道客户端配置**。若两条隧道无需默认端口,可顺带把 `bind_port` 换非默认值。
2. **frps 面板收口**:面板口令改强,或把 `dashboard_addr` 绑定到 `127.0.0.1`(改走 SSH 隧道访问)。两个动作都**只影响面板,不影响现有隧道**。
3. **T2I 服务收口 + 释放内存**:a) 把 8999 从 `0.0.0.0` 收窄到 **docker0 网卡地址**(**勿用 127.0.0.1**,会打断渲染);b) 择课间重启 AstrBot 容器释放 Swap(约 30 秒不可用)。
> 另注:SSH 目前 `PermitRootLogin yes` + `PasswordAuthentication yes`,fail2ban 已在拦(累计封禁 1299 次、当前 3 个)。如主人愿意改为**密钥登录 + 关闭密码登录**,可显著降低爆破面 —— 但此动作风险较高,**必须由主人确认后再做,且需先验证密钥可用**。
---
## 📌 处置动作留痕
- 本次巡检**未执行任何处置动作**(无 🔴 明确恶意项)。
- 只读采集项:`ss` / `ps` / `df` / `free` / `crontab -l` / `systemctl` / `journalctl` / `docker inspect` / frps 配置键名(**口令值未记录**)等,未做任何写入。
- 隔离目录:**未创建**(无隔离对象)。
- 例外说明:为核实端口归属,执行了 `docker ps --format` 与端口比对(只读)。
---
*记录人:ATRI 🥕 | 归档时间 2026-09-27 22:20 CST*
*脱敏复核:无 QQ 号 / 群号 / 手机号 / 明文口令 / 完整 IP / 完整主机名;恶意来源 IP 已按段保留*
@@ -244,3 +244,57 @@ available 1.4 GiB | Swap 4.0 / 4.0 GiB(余 0B,第 8 日贴近顶格)
✅ 无 QQ 号 / 群号 / 会话 ID / 手机号 / 具体地址 / 校名 / 学号 / 房号 / IP / 端口 / 口令 / 凭据。**群内昵称一律未采用**;旧书价格只记"三十元级";语音调试段落只记现象、不记配置参数;第三台实例只记账号末位,不记完整号码。
*本快照为静默更新,不发邮件、不打扰主人。* 🥕
---
## 🔒 22:00 · 周度服务器安全巡检
**执行方式**:`ssh_exec` 白名单逐项采集(清单 13 大项)| **消耗**:约 20 分钟
**总结论**:🟢 **未发现恶意软件与入侵痕迹** | 🟡 需关注 4 项 | 🟡 待确认 1 项 | **本次处置动作 0 项**
**报告归档**:`security/security_2026-09-27.md` | 邮件已送达主人邮箱 | QQ 简报已发
### 系统状态
- 负载 **1.41 / 1.31 / 1.32**(8 核,约 17%)🟢
- 内存:已用 6.1 GiB,可用 **1.4 GiB** 🟡
- **Swap:4.0 / 4.0 GiB(余 31 MiB,99.2%)—— 顶格第 9 天** 🔴(非故障、非入侵)
- 磁盘:`/` 70%(余 6.9G)· `/www` 47%(余 40G)🟢
- 运行时长 13 天 20 小时 | 容器 16 运行 / 1 Exited(napcat,已知)
### 采集与判定
| 项 | 结果 |
|:---|:---|
| 异常进程 / CPU / 内存 | 🟢 TOP 全为已知服务;首位是 AstrBot 本体(RSS ≈ 2.9 GB,37.5%) |
| 网络外联 | 🟢 ESTABLISHED 仅 2 条:容器管理通道 + 本人 frp 隧道 |
| 恶意进程名扫描 | 🟢 命中仅 T2I 的 Playwright Chromium(正常渲染进程) |
| 计划任务 / atq | 🟢 root 仅 acme.sh;cron.d 为系统默认;无 at 任务 |
| 开机自启服务 | 🟢 全部为已知项,无指向 /tmp 的陌生 unit |
| SSH 登录 | 🟡 成功登录**全部为本机容器来源**(定时任务,每日 5 次 × 30 分钟);失败爆破 726 条 |
| 账号与权限 | 🟢 UID=0 仅 root;无空密码账号 |
| 临时目录 | 🟢 近 30 天**零可执行文件** |
| 系统文件改动 | 🟢 仅 snap / lxd 相关(安装时生成) |
| 防火墙 | 🟡 ufw 未启用;fail2ban 生效(累计封禁 **1299** 次、当前 3 个) |
| Docker 安全 | 🟢 无异常特权容器(仅 OJ 判题机,属预期);**无根目录挂载** |
| 日志异常 | 🟢 仅 SSH 扫描噪声,无高危错误 |
| rootkit 扫描 | ⚪ 未安装 rkhunter / chkrootkit,未做程序化扫描 |
### 🟡 关注项(只报告、未擅动)
1. **frps 仍未设 token(连续第 2 周)** —— 现配置仅 bind_port / dashboard 四项。近 7 天**测绘扫描器 `censys.local` 至少 5 次成功 login**(属 `66.132.x.x` 段),每次立即 exit、**未注册任何代理**。本人客户端(frp 0.71.0)注册的 `ssh` / `alist` 两条正常,今日 20:10 有一次正常重连。
2. **frps 面板**仍监听全网卡 `*:7500`、账号 `admin`、6 位纯数字弱口令(值不入档)。**未登录、未改参数**。
3. **Swap 顶格第 9 天** —— 轨迹「重启回落 → 再爬满」第四轮;最大户是 AstrBot 自己。
4. **【本轮新发现】T2I 服务监听 `0.0.0.0:8999` 且无认证** —— 因 ufw 未启用,公网可达性取决于云安全组。**⚠️ 收敛时必须绑 docker0 地址,不能绑 127.0.0.1**(AstrBot 容器经 `172.17.0.1:8999` 调用,绑回环会直接打断每日配图渲染)。
### 🟡 待确认项(同上周,无变化)
- SSH 公钥 1 条:root 与普通账户各存**同一把** RSA 4096,文件时间 2025-08-09,注释为某 QQ 邮箱。**无异常使用迹象**,不排除本人旧设备或友人留用 → **不擅动,等主人确认**。
### 💡 加固建议(3 条,待授权)
1. frps 加 token + `tls_only`(最优先,需同步改客户端配置)
2. 面板收口(改强口令 / 绑 127.0.0.1 走隧道)—— 只影响面板,不影响隧道
3. T2I 收口(绑 docker0,**勿用 127.0.0.1**)+ 择课间重启 AstrBot 释放 Swap
### 📌 留痕
- **未执行任何处置动作**(无 🔴 明确恶意项);**未创建隔离目录**。
- 全部为只读采集(`ss`/`ps`/`df`/`free`/`crontab -l`/`systemctl`/`journalctl`/`docker inspect`/frps 配置键名);**口令值未记录**。
- 例外说明:为核实端口归属执行了 `docker ps --format` 端口比对(只读),确认 1080/3443/8095/9443/18080 等全部对应已知容器(hoj-frontend、atri-blog、portainer 等),**非矿池端口**。
*巡检人:ATRI 🥕 | 22:20 完成*